Module Name:    src
Committed By:   salazar
Date:           Thu Sep  8 02:55:50 UTC 2016

Modified Files:
        src/external/mit/lua/dist/src: loslib.c

Log Message:
fix bug 2 (for Lua.5.3.3) reported on www.lua.org/bugs.html


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/mit/lua/dist/src/loslib.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/mit/lua/dist/src/loslib.c
diff -u src/external/mit/lua/dist/src/loslib.c:1.6 src/external/mit/lua/dist/src/loslib.c:1.7
--- src/external/mit/lua/dist/src/loslib.c:1.6	Thu Sep  8 02:21:31 2016
+++ src/external/mit/lua/dist/src/loslib.c	Thu Sep  8 02:55:50 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: loslib.c,v 1.6 2016/09/08 02:21:31 salazar Exp $	*/
+/*	$NetBSD: loslib.c,v 1.7 2016/09/08 02:55:50 salazar Exp $	*/
 
 /*
 ** Id: loslib.c,v 1.64 2016/04/18 13:06:55 roberto Exp 
@@ -262,8 +262,9 @@ 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) {
-    if (*option == '|')  /* next block? */
+  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? */
       memcpy(buff, conv, oplen);  /* copy valid option to buffer */

Reply via email to