diff --git a/src/parsers/bits.c b/src/parsers/bits.c index be8f13f10a65f67e50d134c5f3557a1a7a209d62..288e3e95a45a7709e942d9987cda37c7e55819b5 100644 --- a/src/parsers/bits.c +++ b/src/parsers/bits.c @@ -29,7 +29,7 @@ static HParsedToken *reshape_bits(const HParseResult *p, void* signedp_p) { HParsedToken *ret = h_arena_malloc(p->arena, sizeof(HParsedToken)); ret->token_type = TT_UINT; - if(signedp && (seq->elements[0]->uint & 128)) + if(signedp && seq->used > 0 && (seq->elements[0]->uint & 128)) ret->uint = -1; // all ones for(size_t i=0; i<seq->used; i++) {