diff options
Diffstat (limited to 'csv.c')
| -rw-r--r-- | csv.c | 8 |
1 files changed, 5 insertions, 3 deletions
| @@ -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 | ||
| 26 | static void | 27 | static void |
| 27 | csv_mem_free(void *ptr, void *cb_arg) | 28 | csv_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 | } |
