xfree86: plug a memory leak in xf86LoadModules.
LoadModule() returns the only reference to a fresh piece of memory (a ModuleDescPtr). Sadly, xf86LoadModules dropped the return value on the floor leaking memory for each module it loaded. Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
This commit is contained in:
parent
6dc71f6b2c
commit
3abce3ea2b
|
@ -1922,6 +1922,7 @@ xf86LoadModules(char **list, pointer *optlist)
|
|||
int i;
|
||||
char *name;
|
||||
Bool failed = FALSE;
|
||||
ModuleDescPtr desc;
|
||||
|
||||
if (!list)
|
||||
return TRUE;
|
||||
|
@ -1945,11 +1946,15 @@ xf86LoadModules(char **list, pointer *optlist)
|
|||
else
|
||||
opt = NULL;
|
||||
|
||||
if (!LoadModule(name, NULL, NULL, NULL, opt, NULL, &errmaj, &errmin)) {
|
||||
desc = LoadModule(name, NULL, NULL, NULL, opt, NULL, &errmaj,
|
||||
&errmin);
|
||||
if (!desc) {
|
||||
LoaderErrorMsg(NULL, name, errmaj, errmin);
|
||||
failed = TRUE;
|
||||
}
|
||||
xfree(name);
|
||||
xfree(desc->name);
|
||||
xfree(desc);
|
||||
}
|
||||
return !failed;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user