diff options
| author | Mattias Andrée <maandree@kth.se> | 2016-04-27 00:43:30 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2016-04-27 00:43:30 +0200 |
| commit | 54a9d9a38a6fd9c4ee7c508a168c1f78391644cb (patch) | |
| tree | 391c61cc6537a90bf29bca0a9cde31de014db546 /src/internals.h | |
| parent | zstr: add new parameter, n: the known limit out the length of the output (diff) | |
| download | libzahl-54a9d9a38a6fd9c4ee7c508a168c1f78391644cb.tar.gz libzahl-54a9d9a38a6fd9c4ee7c508a168c1f78391644cb.tar.bz2 libzahl-54a9d9a38a6fd9c4ee7c508a168c1f78391644cb.tar.xz | |
Fix possible memory in zstr on failure
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/internals.h')
| -rw-r--r-- | src/internals.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/internals.h b/src/internals.h index 40dd74d..225d64c 100644 --- a/src/internals.h +++ b/src/internals.h @@ -92,6 +92,7 @@ extern size_t libzahl_pool_alloc[sizeof(size_t) * 8]; extern struct zahl **libzahl_temp_stack; extern struct zahl **libzahl_temp_stack_head; extern struct zahl **libzahl_temp_stack_end; +extern void *libzahl_temp_allocation; #define likely(expr) ZAHL_LIKELY(expr) #define unlikely(expr) ZAHL_UNLIKELY(expr) @@ -131,6 +132,8 @@ libzahl_failure(int error) if (libzahl_temp_stack) while (libzahl_temp_stack_head != libzahl_temp_stack) zfree(*--libzahl_temp_stack_head); + free(libzahl_temp_allocation); + libzahl_temp_allocation = 0; longjmp(libzahl_jmp_buf, 1); } |
