mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-17 17:04:35 +00:00
BUG/MINOR: hlua: Don't strip last non-LWS char in hlua_pushstrippedstring()
hlua_pushstrippedstring() function strips leading and trailing LWS characters. But the result length it too short by 1 byte. Thus the last non-LWS character is stripped. Note that a string containing only LWS characters resulting to a stipped string with an invalid length (-1). This leads to a lua runtime error. This bug was reported in the issue #1155. It must be backported as far as 1.7.
This commit is contained in:
parent
a47dfab673
commit
2ec4e3c1ac
@ -172,12 +172,13 @@ int hlua_fcn_pushfield(lua_State *L, struct field *field)
|
||||
const char *hlua_pushstrippedstring(lua_State *L, const char *str)
|
||||
{
|
||||
const char *p;
|
||||
const char *e;
|
||||
int l;
|
||||
|
||||
for (p = str; HTTP_IS_LWS(*p); p++);
|
||||
for (e = p + strlen(p) - 1; e > p && HTTP_IS_LWS(*e); e--);
|
||||
|
||||
return lua_pushlstring(L, p, e - p);
|
||||
for (l = strlen(p); l && HTTP_IS_LWS(p[l-1]); l--);
|
||||
|
||||
return lua_pushlstring(L, p, l);
|
||||
}
|
||||
|
||||
/* The three following functions are useful for adding entries
|
||||
|
Loading…
Reference in New Issue
Block a user