mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
augment-properties: fix a memory leak
If the desktop file is not found, fn was not being freed after the last loop iteration. CID: 1462477
This commit is contained in:
parent
c8bd93c5a7
commit
e5588e08a1
1 changed files with 9 additions and 4 deletions
|
|
@ -137,10 +137,13 @@ static char * find_desktop_file_in_dir(struct rule *r, const char *desktop_file_
|
||||||
pa_assert(st);
|
pa_assert(st);
|
||||||
|
|
||||||
fn = pa_sprintf_malloc("%s" PA_PATH_SEP "%s.desktop", desktop_file_dir, r->process_name);
|
fn = pa_sprintf_malloc("%s" PA_PATH_SEP "%s.desktop", desktop_file_dir, r->process_name);
|
||||||
if (stat(fn, st) == 0) {
|
if (stat(fn, st) == 0)
|
||||||
return fn;
|
return fn;
|
||||||
} else {
|
|
||||||
|
pa_xfree(fn);
|
||||||
|
|
||||||
#ifdef DT_DIR
|
#ifdef DT_DIR
|
||||||
|
{
|
||||||
DIR *desktopfiles_dir;
|
DIR *desktopfiles_dir;
|
||||||
struct dirent *dir;
|
struct dirent *dir;
|
||||||
|
|
||||||
|
|
@ -152,18 +155,20 @@ static char * find_desktop_file_in_dir(struct rule *r, const char *desktop_file_
|
||||||
|| pa_streq(dir->d_name, ".."))
|
|| pa_streq(dir->d_name, ".."))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pa_xfree(fn);
|
|
||||||
fn = pa_sprintf_malloc("%s" PA_PATH_SEP "%s" PA_PATH_SEP "%s.desktop", desktop_file_dir, dir->d_name, r->process_name);
|
fn = pa_sprintf_malloc("%s" PA_PATH_SEP "%s" PA_PATH_SEP "%s.desktop", desktop_file_dir, dir->d_name, r->process_name);
|
||||||
|
|
||||||
if (stat(fn, st) == 0) {
|
if (stat(fn, st) == 0) {
|
||||||
closedir(desktopfiles_dir);
|
closedir(desktopfiles_dir);
|
||||||
return fn;
|
return fn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pa_xfree(fn);
|
||||||
}
|
}
|
||||||
closedir(desktopfiles_dir);
|
closedir(desktopfiles_dir);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue