OSDN Git Service

src/pcm/pcm_mmap.c: add missing free
authorJulia Lawall <julia@diku.dk>
Thu, 22 Sep 2011 11:59:31 +0000 (13:59 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 22 Sep 2011 12:11:10 +0000 (14:11 +0200)
The mmap_channels and running_areas fields are allocated using calloc, but
are not freed on an error path.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Suman Saha <sumsaha@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/pcm/pcm_mmap.c

index 4621fe6..6b44050 100644 (file)
@@ -320,8 +320,13 @@ int snd_pcm_mmap(snd_pcm_t *pcm)
                snd_pcm_channel_info_t *i = &pcm->mmap_channels[c];
                i->channel = c;
                err = snd_pcm_channel_info(pcm, i);
-               if (err < 0)
+               if (err < 0) {
+                       free(pcm->mmap_channels);
+                       free(pcm->running_areas);
+                       pcm->mmap_channels = NULL;
+                       pcm->running_areas = NULL;
                        return err;
+               }
        }
        for (c = 0; c < pcm->channels; ++c) {
                snd_pcm_channel_info_t *i = &pcm->mmap_channels[c];