X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Fcsv.c;h=000599a8d305bf9140fa78679aefb1b5cad72174;hb=2355d2291925ace0bd9c85b21f2ce7e2c6606c7f;hp=ad18e32293cde662cedbc55994dc84ce5350b9ae;hpb=f027208ea7c058d482620af39be38835c045895f;p=libsigrok.git diff --git a/src/input/csv.c b/src/input/csv.c index ad18e322..000599a8 100644 --- a/src/input/csv.c +++ b/src/input/csv.c @@ -784,6 +784,7 @@ static int process_buffer(struct sr_input *in, gboolean is_eof) columns = parse_line(line, inc, max_columns); if (!columns) { sr_err("Error while parsing line %zu.", inc->line_number); + g_strfreev(lines); return SR_ERR; } num_columns = g_strv_length(columns); @@ -791,6 +792,7 @@ static int process_buffer(struct sr_input *in, gboolean is_eof) sr_err("Column %u in line %zu is out of bounds.", inc->first_column, inc->line_number); g_strfreev(columns); + g_strfreev(lines); return SR_ERR; } /* @@ -801,6 +803,7 @@ static int process_buffer(struct sr_input *in, gboolean is_eof) sr_err("Not enough columns for desired number of channels in line %zu.", inc->line_number); g_strfreev(columns); + g_strfreev(lines); return SR_ERR; } @@ -810,6 +813,7 @@ static int process_buffer(struct sr_input *in, gboolean is_eof) ret = parse_single_column(columns[0], inc); if (ret != SR_OK) { g_strfreev(columns); + g_strfreev(lines); return SR_ERR; } @@ -818,6 +822,7 @@ static int process_buffer(struct sr_input *in, gboolean is_eof) if (ret != SR_OK) { sr_err("Sending samples failed."); g_strfreev(columns); + g_strfreev(lines); return SR_ERR; }