aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstddjb
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-08-06 10:34:13 +0000
committerLaurent Bercot <ska@appnovation.com>2025-08-06 10:34:13 +0000
commit4e30b6899578bae9343bacf8840a80bf1ada0f2a (patch)
tree95c2cd92e824a77a9cffbd568c149aec0fa51201 /src/libstddjb
parent24629a6da66019db9aab610d20c3bcf3fde76196 (diff)
downloadskalibs-4e30b6899578bae9343bacf8840a80bf1ada0f2a.tar.gz
Don't leak on empty sals
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libstddjb')
-rw-r--r--src/libstddjb/sals.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libstddjb/sals.c b/src/libstddjb/sals.c
index f6b2aa1..f3b2e08 100644
--- a/src/libstddjb/sals.c
+++ b/src/libstddjb/sals.c
@@ -12,6 +12,7 @@ int sals (char const *fn, stralloc *sa, size_t *x)
int n = 0 ;
size_t sabase = sa->len ;
size_t maxlen = 0 ;
+ int wasnull = !sa->s ;
DIR *dir = opendir(fn) ;
if (!dir) return -1 ;
for (;;)
@@ -36,6 +37,7 @@ int sals (char const *fn, stralloc *sa, size_t *x)
err:
dir_close(dir) ;
- sa->len = sabase ;
+ if (wasnull) stralloc_free(sa) ;
+ else sa->len = sabase ;
return -1 ;
}