diff --git a/bugs b/bugs index 64bc69d7..bd5806e5 100644 --- a/bugs +++ b/bugs @@ -48,3 +48,7 @@ Mon May 18 19:20:00 EST 1998 Mon Sep 7 15:57:02 EST 1998 >> function "luaL_argerror" prints wrong argument number (from a user's point of view) when functions have upvalues. + +** lstrlib.c +Tue Nov 10 17:29:36 EDT 1998 +>> gsub/strfind do not check whether captures are properly finished. diff --git a/lstrlib.c b/lstrlib.c index bd0f0296..fdb90deb 100644 --- a/lstrlib.c +++ b/lstrlib.c @@ -1,5 +1,5 @@ /* -** $Id: lstrlib.c,v 1.18 1998/07/01 14:21:57 roberto Exp roberto $ +** $Id: lstrlib.c,v 1.19 1998/07/12 16:13:45 roberto Exp roberto $ ** Standard library for strings and pattern-matching ** See Copyright Notice in lua.h */ @@ -138,8 +138,11 @@ struct Capture { static void push_captures (struct Capture *cap) { int i; - for (i=0; ilevel; i++) - lua_pushlstring(cap->capture[i].init, cap->capture[i].len); + for (i=0; ilevel; i++) { + int l = cap->capture[i].len; + if (l == -1) lua_error("unfinished capture"); + lua_pushlstring(cap->capture[i].init, l); + } }