mirror of
https://github.com/lunarmodules/luasocket.git
synced 2025-07-13 14:14:30 +02:00
Fix HORRIBLE but in b64/qp code.
Bug was caught by user moteus. Code was checking if arguments was nil after using luaL_Buffer code, which messes with the stack. Simple to fix, though.
This commit is contained in:
@ -263,6 +263,8 @@ static int mime_global_b64(lua_State *L)
|
||||
lua_pushnil(L);
|
||||
return 2;
|
||||
}
|
||||
/* make sure we don't confuse buffer stuff with arguments */
|
||||
lua_settop(L, 2);
|
||||
/* process first part of the input */
|
||||
luaL_buffinit(L, &buffer);
|
||||
while (input < last)
|
||||
@ -307,6 +309,8 @@ static int mime_global_unb64(lua_State *L)
|
||||
lua_pushnil(L);
|
||||
return 2;
|
||||
}
|
||||
/* make sure we don't confuse buffer stuff with arguments */
|
||||
lua_settop(L, 2);
|
||||
/* process first part of the input */
|
||||
luaL_buffinit(L, &buffer);
|
||||
while (input < last)
|
||||
@ -458,6 +462,8 @@ static int mime_global_qp(lua_State *L)
|
||||
lua_pushnil(L);
|
||||
return 2;
|
||||
}
|
||||
/* make sure we don't confuse buffer stuff with arguments */
|
||||
lua_settop(L, 3);
|
||||
/* process first part of input */
|
||||
luaL_buffinit(L, &buffer);
|
||||
while (input < last)
|
||||
@ -531,6 +537,8 @@ static int mime_global_unqp(lua_State *L)
|
||||
lua_pushnil(L);
|
||||
return 2;
|
||||
}
|
||||
/* make sure we don't confuse buffer stuff with arguments */
|
||||
lua_settop(L, 2);
|
||||
/* process first part of input */
|
||||
luaL_buffinit(L, &buffer);
|
||||
while (input < last)
|
||||
|
Reference in New Issue
Block a user