diff options
author | Mike Pall <mike> | 2020-01-13 14:28:43 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2020-01-13 14:28:43 +0100 |
commit | 820339960123dc78a7ce03edf53fcf4fdae0e55d (patch) | |
tree | 5be584eb5d8cf65ce8d48a0e43d97f3f2b72d873 /src/lj_lex.c | |
parent | 45a7e5073ce0a59465fef0b80bb08bd4e76b7979 (diff) | |
download | luajit-820339960123dc78a7ce03edf53fcf4fdae0e55d.tar.gz luajit-820339960123dc78a7ce03edf53fcf4fdae0e55d.tar.bz2 luajit-820339960123dc78a7ce03edf53fcf4fdae0e55d.zip |
Fix embedded bytecode loader.
Diffstat (limited to 'src/lj_lex.c')
-rw-r--r-- | src/lj_lex.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lj_lex.c b/src/lj_lex.c index 1d063f8f..ecfcc015 100644 --- a/src/lj_lex.c +++ b/src/lj_lex.c | |||
@@ -49,6 +49,10 @@ static int fillbuf(LexState *ls) | |||
49 | size_t sz; | 49 | size_t sz; |
50 | const char *buf = ls->rfunc(ls->L, ls->rdata, &sz); | 50 | const char *buf = ls->rfunc(ls->L, ls->rdata, &sz); |
51 | if (buf == NULL || sz == 0) return END_OF_STREAM; | 51 | if (buf == NULL || sz == 0) return END_OF_STREAM; |
52 | if (sz >= LJ_MAX_MEM) { | ||
53 | if (sz != ~(size_t)0) lj_err_mem(ls->L); | ||
54 | ls->endmark = 1; | ||
55 | } | ||
52 | ls->n = (MSize)sz - 1; | 56 | ls->n = (MSize)sz - 1; |
53 | ls->p = buf; | 57 | ls->p = buf; |
54 | return char2int(*(ls->p++)); | 58 | return char2int(*(ls->p++)); |
@@ -382,6 +386,7 @@ int lj_lex_setup(lua_State *L, LexState *ls) | |||
382 | ls->lookahead = TK_eof; /* No look-ahead token. */ | 386 | ls->lookahead = TK_eof; /* No look-ahead token. */ |
383 | ls->linenumber = 1; | 387 | ls->linenumber = 1; |
384 | ls->lastline = 1; | 388 | ls->lastline = 1; |
389 | ls->endmark = 0; | ||
385 | lj_str_resizebuf(ls->L, &ls->sb, LJ_MIN_SBUF); | 390 | lj_str_resizebuf(ls->L, &ls->sb, LJ_MIN_SBUF); |
386 | next(ls); /* Read-ahead first char. */ | 391 | next(ls); /* Read-ahead first char. */ |
387 | if (ls->current == 0xef && ls->n >= 2 && char2int(ls->p[0]) == 0xbb && | 392 | if (ls->current == 0xef && ls->n >= 2 && char2int(ls->p[0]) == 0xbb && |