summaryrefslogtreecommitdiff
path: root/lib/csv.c
diff options
context:
space:
mode:
authorVincent JARDIN <vincent.jardin@6wind.com>2017-10-09 12:42:11 +0200
committerVincent JARDIN <vincent.jardin@6wind.com>2017-10-09 12:42:11 +0200
commit43b798b7dd149782d9dbad58c1a849d6d528b1d2 (patch)
treea28e982c1c01ed393e35f1e720007117ecbc5710 /lib/csv.c
parent3f58e1b3e79090f29f8b4b75bb529d54ba719c26 (diff)
lib: fix NULL->field_len access
Currenlty, this function is used only by: - unit test of csv.c (see its main() section) - ptm_lib.c In case of ptm, it is safe to return NULL because: csv_encode_record() -> return NULL _ptm_lib_encode_header() -> return NULL the only consumer of the return value is: ptm_lib_init_msg() that checks the NULL return. Warning: Access to field 'field_len' results in a dereference of a null pointer (loaded from variable 'fld') Signed-off-by: Vincent Jardin <vincent.jardin@6wind.com>
Diffstat (limited to 'lib/csv.c')
-rw-r--r--lib/csv.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/csv.c b/lib/csv.c
index 0ad5c74be3..45582e3092 100644
--- a/lib/csv.c
+++ b/lib/csv.c
@@ -284,6 +284,8 @@ csv_record_t *csv_encode_record(csv_t *csv, csv_record_t *rec, int count, ...)
va_start(list, count);
str = csv_field_iter(rec, &fld);
+ if (!fld)
+ return NULL;
for (tempc = 0; tempc < count; tempc++) {
col = va_arg(list, char *);
for (i = 0; i < fld->field_len; i++) {