diff options
| author | @syxhe <https://t.me/syxhe> | 2025-04-17 15:36:28 -0500 |
|---|---|---|
| committer | @syxhe <https://t.me/syxhe> | 2025-04-17 15:36:28 -0500 |
| commit | ed4a91bcc1d68c26cd533c4432f93c799b1771c2 (patch) | |
| tree | 4df6d665ecc83706c9837d4a832b18fac505f229 /src/scanner.c | |
| parent | 9d3c8770ec63fe3e02f82bdc244e63d701492322 (diff) | |
Slight improvement to scandirlist function to properly free memory on error
Diffstat (limited to 'src/scanner.c')
| -rw-r--r-- | src/scanner.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/scanner.c b/src/scanner.c index 7c65df4..1c4d2b1 100644 --- a/src/scanner.c +++ b/src/scanner.c | |||
| @@ -22,6 +22,10 @@ dlinkedlist * scandirlist(const char * const dir, int (*selector)(const struct d | |||
| 22 | for(int i = 0; i < numentries; i++) | 22 | for(int i = 0; i < numentries; i++) |
| 23 | if(dlinkedlist_append(list, (void *)(namelist[i]), free) < 0) { | 23 | if(dlinkedlist_append(list, (void *)(namelist[i]), free) < 0) { |
| 24 | dlinkedlist_free(list); | 24 | dlinkedlist_free(list); |
| 25 | for(int j = i; j < numentries; j++) | ||
| 26 | free(namelist[j]); | ||
| 27 | |||
| 28 | free(namelist); | ||
| 25 | RETURNWERR(errno, NULL); | 29 | RETURNWERR(errno, NULL); |
| 26 | } | 30 | } |
| 27 | free(namelist); | 31 | free(namelist); |
