input/csv: Fix a false negative after successful import
The input module runs receive() and end() invocations which end up calling process_buffer(). It's perfectly legal to call the process routine with an empty accumulation buffer, especially when the process routine was called from end(). This fixes a condition where PulseView raised a fatal error at the end of a completed successful import. Reported-By: Sergey Alirzaev <zl29ah@gmail.com>
This commit is contained in:
parent
f9b7486154
commit
4555d3bda0
|
@ -644,11 +644,18 @@ static int process_buffer(struct sr_input *in)
|
|||
else
|
||||
max_columns = 1;
|
||||
|
||||
/*
|
||||
* Consider empty input non-fatal. Keep accumulating input until
|
||||
* at least one full text line has become available. Grab the
|
||||
* maximum amount of accumulated data that consists of full text
|
||||
* lines, and process what has been received so far, leaving not
|
||||
* yet complete lines for the next invocation.
|
||||
*/
|
||||
if (!in->buf->len)
|
||||
return SR_OK;
|
||||
p = g_strrstr_len(in->buf->str, in->buf->len, inc->termination);
|
||||
if (!p)
|
||||
/* Don't have a full line. */
|
||||
return SR_ERR;
|
||||
|
||||
*p = '\0';
|
||||
g_strstrip(in->buf->str);
|
||||
|
||||
|
|
Loading…
Reference in New Issue