tmpfiles: refactor code into new is_dir_empty function

The existing implementation seemed useful enough to warrant a new
helper function. Care was taken to ensure the revised code no longer
suffers any memory leaks.
This commit is contained in:
Aaron Andersen committed 2025-06-05 20:53:25 -04:00
1 parent 2957246092
commit 5993b4bb5d
2 files changed
+19 -12

No files matched your search

+2 -12
View File
@@ -23,7 +23,6 @@
#include "config.h" /* Generated by configure script */
#include <dirent.h>
#include <ftw.h>
#include <getopt.h>
#include <glob.h>
@@ -394,17 +393,8 @@ static void tmpfiles(char *line)
paste(buf, sizeof(buf), "/usr/share/factory", path);
arg = buf;
}
if (!strc) {
struct dirent **namelist;
int num;
if (!S_ISDIR(st.st_mode))
break;
num = scandir(path, &namelist, NULL, NULL);
free(namelist);
if (num >= 3)
break; /* not empty */
}
if (fisdir(path) && !is_dir_empty(path))
break;
if (fisdir(arg) && !fisslashdir(arg)) {
size_t len = strlen(arg) + 2;