From "temp4746":

wslua TvbRange:le_ustring/ustring buffer overflow's.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8175

svn path=/trunk/; revision=47012
This commit is contained in:
Anders Broman 2013-01-10 06:55:16 +00:00
parent 84a94842a8
commit 68160dac5c
1 changed files with 3 additions and 1 deletions

View File

@ -1106,6 +1106,7 @@ WSLUA_METHOD TvbRange_string(lua_State* L) {
static int TvbRange_ustring_any(lua_State* L, gboolean little_endian) {
/* Obtain a UTF-16 encoded string from a TvbRange */
TvbRange tvbr = checkTvbRange(L,1);
gchar * str;
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@ -1113,7 +1114,8 @@ static int TvbRange_ustring_any(lua_State* L, gboolean little_endian) {
return 0;
}
lua_pushlstring(L, (gchar*)tvb_get_ephemeral_unicode_string(tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,(little_endian ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN)), tvbr->len );
str = (gchar*)tvb_get_ephemeral_unicode_string(tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,(little_endian ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN));
lua_pushlstring(L, str, strlen(str));
return 1; /* The string */
}