diff --git a/cram/cram_codecs.c b/cram/cram_codecs.c index a72419e1c..fe454f794 100644 --- a/cram/cram_codecs.c +++ b/cram/cram_codecs.c @@ -3613,7 +3613,10 @@ int cram_byte_array_stop_decode_block(cram_slice *slice, cram_codec *c, cp = b->data + b->idx; cp_end = b->data + b->uncomp_size; - stop = c->u.byte_array_stop.stop; + // STOP byte is hard-coded as zero by our name tokeniser decoder + // implementation, so we may ignore what was requested. + stop = b->orig_method == TOK3 ? 0 : c->u.byte_array_stop.stop; + if (cp_end - cp < out->alloc - out->byte) { unsigned char *out_cp = BLOCK_END(out); while (cp != cp_end && *cp != stop)