diff options
Diffstat (limited to 'src')
| -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 ; } |
