X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Fcsv.c;h=000599a8d305bf9140fa78679aefb1b5cad72174;hb=2355d2291925ace0bd9c85b21f2ce7e2c6606c7f;hp=a9e5f91ff30af3525751935b15759ffa88ffc697;hpb=cd59e6eca13632f8fc749a63fb8ccbadbb77e21b;p=libsigrok.git diff --git a/src/input/csv.c b/src/input/csv.c index a9e5f91f..000599a8 100644 --- a/src/input/csv.c +++ b/src/input/csv.c @@ -625,7 +625,6 @@ static int initial_parse(const struct sr_input *in, GString *buf) */ inc->sample_unit_size = (inc->num_channels + 7) / 8; inc->datafeed_buf_size = DATAFEED_MAX_SAMPLES; - inc->datafeed_buf_size /= inc->sample_unit_size; inc->datafeed_buf_size *= inc->sample_unit_size; inc->datafeed_buffer = g_malloc(inc->datafeed_buf_size); inc->datafeed_buf_fill = 0; @@ -785,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); @@ -792,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; } /* @@ -802,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; } @@ -811,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; } @@ -819,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; }