summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--csv.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/csv.c b/csv.c
index f154c12..a4f9b51 100644
--- a/csv.c
+++ b/csv.c
@@ -25,28 +25,22 @@ csv_mem_allocate(size_t n, size_t sz, void *cb_arg)
25static void * 25static void *
26csv_mem_reallocate(void *ptr, size_t n, size_t sz, void *cb_arg) 26csv_mem_reallocate(void *ptr, size_t n, size_t sz, void *cb_arg)
27{ 27{
28 size_t len;
29
30 (void) cb_arg; 28 (void) cb_arg;
31 29
32 if ( !__builtin_mul_overflow(n, sz, &len) ) { 30 size_t len;
33 return realloc(ptr, len); 31 if ( __builtin_mul_overflow(n, sz, &len) ) {
32 return NULL;
34 } 33 }
35 return NULL; 34 return realloc(ptr, len);
36} 35}
37 36
38static void 37static void
39csv_mem_free(void *ptr, size_t n, size_t sz, void *cb_arg) 38csv_mem_free(void *ptr, size_t n, size_t sz, void *cb_arg)
40{ 39{
41 size_t len; 40 (void) n;
42 41 (void) sz;
43 void explicit_bzero(void *b, size_t len);
44
45 (void) cb_arg; 42 (void) cb_arg;
46 43
47 if ( !__builtin_mul_overflow(n, sz, &len) ) {
48 explicit_bzero(ptr, len);
49 }
50 free(ptr); 44 free(ptr);
51} 45}
52 46