mirror of
https://github.com/troglobit/libite.git
synced 2026-10-28 12:20:45 +00:00
libite: Fix memory leak in dir()
Signed-off-by: Mattias Walström <lazzer@gmail.com> Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
1 parent
ddf5ecc907
commit
cd63f8a73d
1 file changed
+5
-4
@@ -94,7 +94,7 @@ int dir(const char *dir, const char *type, int (*filter) (const char *file), cha
|
|||||||
n = scandir(dir, &namelist, matcher, alphasort);
|
n = scandir(dir, &namelist, matcher, alphasort);
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
perror("scandir");
|
perror("scandir");
|
||||||
} else {
|
} else if (n > 0) {
|
||||||
files = (char **)malloc(n * sizeof(char *));
|
files = (char **)malloc(n * sizeof(char *));
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
if (files) {
|
if (files) {
|
||||||
@@ -109,11 +109,12 @@ int dir(const char *dir, const char *type, int (*filter) (const char *file), cha
|
|||||||
}
|
}
|
||||||
free(namelist[i]);
|
free(namelist[i]);
|
||||||
}
|
}
|
||||||
free(namelist);
|
if (num)
|
||||||
|
*list = files;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (num)
|
if (namelist)
|
||||||
*list = files;
|
free(namelist);
|
||||||
|
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user