OSDN Git Service

alsactl init - fix memory leaks (valgrind helped)
authorJaroslav Kysela <perex@perex.cz>
Tue, 19 Aug 2008 11:28:22 +0000 (13:28 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 19 Aug 2008 11:28:22 +0000 (13:28 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
alsactl/alsactl.c
alsactl/init_parse.c

index 6c62ffc..6728fbc 100644 (file)
@@ -174,5 +174,6 @@ int main(int argc, char *argv[])
                res = -ENODEV;
        }
 
+       snd_config_update_free_global();
        return res < 0 ? res : 0;
 }
index 57f9a92..ab6a6f9 100644 (file)
@@ -124,13 +124,16 @@ static void free_space(struct space *space)
                space->ctl_card_info = NULL;
        }
        if (space->ctl_handle) {
-               free(space->ctl_handle);
+               snd_hctl_close(space->ctl_handle);
                space->ctl_handle = NULL;
        }
        if (space->rootdir)
                free(space->rootdir);
        if (space->program_result)
                free(space->program_result);
+       if (space->go_to)
+               free(space->go_to);
+       free(space);
 }
 
 struct pair *value_find(struct space *space, const char *key)
@@ -1680,6 +1683,7 @@ static int parse(struct space *space, const char *filename)
                linenum += linenum_adj;
        }
 
+       free(line);
        space->filename = NULL;
        space->linenum = -1;
        file_unmap(buf, bufsize);