X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Finput%2Fvcd.c;h=b9e9497dc8baf07b65370329179a615d2c175531;hp=7614ba68a6f7bc192dab8c4f85cddccb91c34954;hb=ed367d68203593224af3c9593cfef0662b56007c;hpb=e6104296c29f31e812c964da53093bdc6292efcd diff --git a/src/input/vcd.c b/src/input/vcd.c index 7614ba68..b9e9497d 100644 --- a/src/input/vcd.c +++ b/src/input/vcd.c @@ -408,6 +408,10 @@ static void parse_contents(const struct sr_input *in, char *data) inc->prev_timestamp = inc->skip; } else if (timestamp == inc->prev_timestamp) { /* Ignore repeated timestamps (e.g. sigrok outputs these) */ + } else if (timestamp < inc->prev_timestamp) { + sr_err("Invalid timestamp: %" PRIu64 " (smaller than previous timestamp).", timestamp); + inc->skip_until_end = TRUE; + break; } else { if (inc->compress != 0 && timestamp - inc->prev_timestamp > inc->compress) { /* Compress long idle periods */