diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-08-06 10:34:13 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska@appnovation.com> | 2025-08-06 10:34:13 +0000 |
| commit | 4e30b6899578bae9343bacf8840a80bf1ada0f2a (patch) | |
| tree | 95c2cd92e824a77a9cffbd568c149aec0fa51201 /src/libstddjb | |
| parent | 24629a6da66019db9aab610d20c3bcf3fde76196 (diff) | |
| download | skalibs-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.c | 4 |
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 ; } |
