lua/lua-5.3.3-upstream-bug-2.patch

14 lines
727 B
Diff

diff -up lua-5.3.3/src/loslib.c.readpast lua-5.3.3/src/loslib.c
--- lua-5.3.3/src/loslib.c.readpast 2016-07-25 16:04:13.916465061 -0400
+++ lua-5.3.3/src/loslib.c 2016-07-25 16:04:19.756423878 -0400
@@ -260,7 +260,8 @@ static int getfield (lua_State *L, const
static const char *checkoption (lua_State *L, const char *conv, char *buff) {
const char *option;
int oplen = 1;
- for (option = LUA_STRFTIMEOPTIONS; *option != '\0'; option += oplen) {
+ int convlen = (int)strlen(conv);
+ for (option = LUA_STRFTIMEOPTIONS; *option != '\0' && oplen <= convlen; option += oplen) {
if (*option == '|') /* next block? */
oplen++; /* next length */
else if (memcmp(conv, option, oplen) == 0) { /* match? */