diff options
-rw-r--r-- | src/lj_bcread.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_bcread.c b/src/lj_bcread.c index 9f025500..940db9dd 100644 --- a/src/lj_bcread.c +++ b/src/lj_bcread.c | |||
@@ -446,7 +446,8 @@ GCproto *lj_bcread(LexState *ls) | |||
446 | setprotoV(L, L->top, pt); | 446 | setprotoV(L, L->top, pt); |
447 | incr_top(L); | 447 | incr_top(L); |
448 | } | 448 | } |
449 | if (ls->p < ls->pe || L->top-1 != bcread_oldtop(L, ls)) | 449 | if ((int32_t)(2*(uint32_t)(ls->pe - ls->p)) > 0 || |
450 | L->top-1 != bcread_oldtop(L, ls)) | ||
450 | bcread_error(ls, LJ_ERR_BCBAD); | 451 | bcread_error(ls, LJ_ERR_BCBAD); |
451 | /* Pop off last prototype. */ | 452 | /* Pop off last prototype. */ |
452 | L->top--; | 453 | L->top--; |