| --- lua-5.1.4.orig/src/lstrlib.c 2008/07/11 17:27:21 1.132.1.4 |
| +++ lua-5.1.4/src/lstrlib.c 2010/05/14 15:12:53 |
| @@ -754,6 +754,7 @@ |
| |
| |
| static int str_format (lua_State *L) { |
| + int top = lua_gettop(L); |
| int arg = 1; |
| size_t sfl; |
| const char *strfrmt = luaL_checklstring(L, arg, &sfl); |
| @@ -768,7 +769,8 @@ |
| else { /* format item */ |
| char form[MAX_FORMAT]; /* to store the format (`%...') */ |
| char buff[MAX_ITEM]; /* to store the formatted item */ |
| - arg++; |
| + if (++arg > top) |
| + luaL_argerror(L, arg, "no value"); |
| strfrmt = scanformat(L, strfrmt, form); |
| switch (*strfrmt++) { |
| case 'c': { |