From 49d31414b768910e83b74b349a252c18da691486 Mon Sep 17 00:00:00 2001 From: Paulo Matos Date: Fri, 21 Sep 2018 17:00:20 +0200 Subject: [PATCH] Fix condition to avoid undef behaviour Coverity scan uncovered an issue where by if `p == 31`, the following shift `1 << (p + 1)` will cause undefined behaviour. --- racket/src/racket/src/validate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racket/src/racket/src/validate.c b/racket/src/racket/src/validate.c index 8830e55b3a..90b3d76e52 100644 --- a/racket/src/racket/src/validate.c +++ b/racket/src/racket/src/validate.c @@ -1210,7 +1210,7 @@ static int validate_expr(Mz_CPort *port, Scheme_Object *expr, if (tl_use_map) { if ((uintptr_t)tl_use_map & 0x1) { - if (p > 31) + if (p >= 31) scheme_ill_formed_code(port); if (!((uintptr_t)tl_use_map & ((unsigned int)1 << (p + 1)))) scheme_ill_formed_code(port);