commit 2d4debc
sewn
·
2026-10-04 20:07:51 +0000 UTC
parent d6f85bf
free namelist after choosing path
1 files changed,
+4,
-3
M
wawa.c
M
wawa.c
+4,
-3
1@@ -433,7 +433,7 @@ mode:
2 else if (!strcmp(mode, "fill")) image_modify = image_fill;
3 else if (!strcmp(mode, "tile")) image_modify = image_tile;
4 else if (!strcmp(mode, "spread")) image_modify = image_spread;
5- else if (!namelist) goto usage;
6+ else if (!dirn) goto usage;
7 else goto prescan;
8
9 file:
10@@ -443,10 +443,11 @@ file:
11 srand((intptr_t)path | (unsigned int)time(NULL));
12 scan:
13 if (chdir(path) < 0) die("chdir:"); // slower & easier than strncpy PATH_MAX
14- if (namelist) free(namelist);
15 if ((dirn = scandir(".", &namelist, NULL, alphasort)) < 0) die("scandir:");
16 if (dirn < 3) die("no images");
17 name = namelist[2 + rand() % (dirn - 2)];
18+ while (dirn--) if (namelist[dirn] != name) free(namelist[dirn]);
19+ free(namelist);
20 mode = basename((path = name->d_name));
21 if (argc == 2) goto mode;
22 prescan:
23@@ -454,7 +455,7 @@ prescan:
24 }
25
26 if (!(image.fp = fopen(path, "rb"))) die("fopen %s:", path);
27- if (namelist) free(namelist);
28+ if (dirn) free(path);
29 break;
30 default:
31 goto usage;