summaryrefslogtreecommitdiff
path: root/csv.c
diff options
context:
space:
mode:
Diffstat (limited to 'csv.c')
-rw-r--r--csv.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/csv.c b/csv.c
index 4d48f01..9782fe3 100644
--- a/csv.c
+++ b/csv.c
@@ -1,6 +1,7 @@
1#include <stdio.h> 1#include <stdio.h>
2#include <stdlib.h> 2#include <stdlib.h>
3#include <assert.h> 3#include <assert.h>
4#include <string.h>
4#include "csv.h" 5#include "csv.h"
5 6
6#define INLINE static inline 7#define INLINE static inline
@@ -24,10 +25,11 @@ csv_mem_reallocate(void *ptr, size_t n, size_t sz, void *cb_arg)
24} 25}
25 26
26static void 27static void
27csv_mem_free(void *ptr, void *cb_arg) 28csv_mem_free(void *ptr, size_t sz, void *cb_arg)
28{ 29{
29 (void) cb_arg; 30 (void) cb_arg;
30 31
32 explicit_bzero(ptr, sz);
31 free(ptr); 33 free(ptr);
32} 34}
33 35
@@ -121,7 +123,7 @@ csv_string_free(csv_string_t *csv_string, const csv_options_t * const csv_option
121 assert(csv_string != NULL); 123 assert(csv_string != NULL);
122 assert(csv_options != NULL); 124 assert(csv_options != NULL);
123 125
124 csv_options->cb_free(csv_string->str, csv_options->cb_arg); 126 csv_options->cb_free(csv_string->str, csv_string->cap, csv_options->cb_arg);
125 127
126 /* call *_init() for sane default values; prevent possible double-free */ 128 /* call *_init() for sane default values; prevent possible double-free */
127 csv_string_init(csv_string); 129 csv_string_init(csv_string);
@@ -185,7 +187,7 @@ csv_field_free(csv_field_t *csv_field, const csv_options_t * const csv_options)
185 assert(csv_field != NULL); 187 assert(csv_field != NULL);
186 assert(csv_options != NULL); 188 assert(csv_options != NULL);
187 189
188 csv_options->cb_free(csv_field->fields, csv_options->cb_arg); 190 csv_options->cb_free(csv_field->fields, csv_field->cap, csv_options->cb_arg);
189 191
190 csv_field_init(csv_field); 192 csv_field_init(csv_field);
191} 193}