]> sigrok.org Git - libsigrok.git/commitdiff
input/binary: align sr_session_send() chunks to unit size
authorGerhard Sittig <redacted>
Thu, 23 Jul 2020 19:55:30 +0000 (21:55 +0200)
committerGerhard Sittig <redacted>
Thu, 23 Jul 2020 19:59:29 +0000 (21:59 +0200)
The input/binary module chops raw input data into chunks and sends these
to the session feed. The total size of input chunks got aligned to the
unit size, the session feed output didn't. Make sure to align session
packets with the input data's unit size, too.

This fixes bug #1582.

src/input/binary.c

index da664a85e6f140d14de0c8796a6adc76e3034e8c..51a64d099039c6ac859e3e6868f39c71e8ff0cbb 100644 (file)
@@ -103,6 +103,8 @@ static int process_buffer(struct sr_input *in)
        for (i = 0; i < chunk_size; i += chunk) {
                logic.data = in->buf->str + i;
                chunk = MIN(CHUNK_SIZE, chunk_size - i);
+               chunk /= logic.unitsize;
+               chunk *= logic.unitsize;
                logic.length = chunk;
                sr_session_send(in->sdi, &packet);
        }