lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 7e425be975c7c5bedff234a0daeb803131ddfc60
parent 0705e7b39f29ad140c2c0deb01ee5d4706f77636
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Mon,  9 Feb 2015 15:57:20 -0200

bug (in 5.2): Chunk with too many lines can seg. fault

Diffstat:
Mbugs | 28++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/bugs b/bugs @@ -1880,8 +1880,8 @@ patch = [[ +++ lundump.c 2008/04/04 19:51:41 2.7.1.4 @@ -1,5 +1,5 @@ /* --** $Id: bugs,v 1.132 2014/05/07 16:57:27 roberto Exp roberto $ -+** $Id: bugs,v 1.132 2014/05/07 16:57:27 roberto Exp roberto $ +-** $Id: bugs,v 1.133 2014/09/01 16:56:01 roberto Exp roberto $ ++** $Id: bugs,v 1.133 2014/09/01 16:56:01 roberto Exp roberto $ ** load precompiled Lua chunks ** See Copyright Notice in lua.h */ @@ -3248,6 +3248,30 @@ patch = [[ ]] } +Bug{ +what = [[Chunk with too many lines can seg. fault]], +report = [[Roberto, 2014/11/14]], +since = [[5.1 (at least)]], +fix = nil, +example = [[ +-- the cause of the bug is the use of an unitialized variable, so +-- it cannot be reproduced reliably +local s = string.rep("\n", 2^24) +print(load(function () return s end)) +]], +patch = [[ +--- llex.c 2013/08/30 15:49:41 2.63.1.2 ++++ llex.c 2015/02/09 17:05:31 +@@ -153,5 +153,5 @@ + next(ls); /* skip `\n\r' or `\r\n' */ + if (++ls->linenumber >= MAX_INT) +- luaX_syntaxerror(ls, "chunk has too many lines"); ++ lexerror(ls, "chunk has too many lines", 0); + } + +]] +} + --[=[ Bug{