lxc_dir_cb callback, void *data)
{
struct dirent **namelist;
- int n;
+ int n, ret = 0;
n = scandir(directory, &namelist, dir_filter, alphasort);
if (n < 0) {
}
while (n--) {
- if (callback(name, directory, namelist[n]->d_name, data)) {
+ if (!ret &&
+ callback(name, directory, namelist[n]->d_name, data)) {
ERROR("callback failed");
- free(namelist[n]);
- return -1;
+ ret = -1;
}
free(namelist[n]);
}
+ free(namelist);
- return 0;
+ return ret;
}
int lxc_file_for_each_line(const char *file, lxc_file_cb callback,