mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-14 20:26:41 +00:00
free struct dirent **namelist
Correct the way the struct dirent **namelist structure is freed. Signed-off-by: Clement Calmels <clement.calmels@fr.ibm.com> Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
This commit is contained in:
parent
226a18d671
commit
8eec72f75d
@ -43,7 +43,7 @@ int lxc_dir_for_each(const char *name, const char *directory,
|
|||||||
lxc_dir_cb callback, void *data)
|
lxc_dir_cb callback, void *data)
|
||||||
{
|
{
|
||||||
struct dirent **namelist;
|
struct dirent **namelist;
|
||||||
int n;
|
int n, ret = 0;
|
||||||
|
|
||||||
n = scandir(directory, &namelist, dir_filter, alphasort);
|
n = scandir(directory, &namelist, dir_filter, alphasort);
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
@ -52,15 +52,16 @@ int lxc_dir_for_each(const char *name, const char *directory,
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (n--) {
|
while (n--) {
|
||||||
if (callback(name, directory, namelist[n]->d_name, data)) {
|
if (!ret &&
|
||||||
|
callback(name, directory, namelist[n]->d_name, data)) {
|
||||||
ERROR("callback failed");
|
ERROR("callback failed");
|
||||||
free(namelist[n]);
|
ret = -1;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
free(namelist[n]);
|
free(namelist[n]);
|
||||||
}
|
}
|
||||||
|
free(namelist);
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int lxc_file_for_each_line(const char *file, lxc_file_cb callback,
|
int lxc_file_for_each_line(const char *file, lxc_file_cb callback,
|
||||||
|
Loading…
Reference in New Issue
Block a user