From Evan Huus: Fix memory leaks in wslua_tvb.c fix typos in wslu_proto.c https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7202

svn path=/trunk/; revision=42281
This commit is contained in:
Anders Broman 2012-04-27 06:02:45 +00:00
parent 48fc51f835
commit 7d17553acc
2 changed files with 14 additions and 8 deletions

View File

@ -694,7 +694,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
return 0;
}
f = g_new((wslua_field_t,1);
f = g_new(wslua_field_t,1);
f->hfid = -2;
f->ett = -1;
@ -853,7 +853,7 @@ static int ProtoField_boolean(lua_State* L, enum ftenum type) {
return 0;
}
f = g_new((wslua_field_t,1);
f = g_new(wslua_field_t,1);
f->hfid = -2;
f->ett = -1;
@ -906,7 +906,7 @@ static int ProtoField_time(lua_State* L,enum ftenum type) {
}
}
f = g_new((wslua_field_t,1);
f = g_new(wslua_field_t,1);
f->hfid = -2;
f->ett = -1;
@ -955,7 +955,7 @@ static int ProtoField_other(lua_State* L,enum ftenum type) {
return 0;
}
f = g_new((wslua_field_t,1);
f = g_new(wslua_field_t,1);
f->hfid = -2;
f->ett = -1;

View File

@ -1017,11 +1017,11 @@ WSLUA_METHOD TvbRange_ether(lua_State* L) {
return 0;
}
addr = g_malloc(sizeof(address));
if (tvbr->len != 6)
WSLUA_ERROR(TvbRange_ether,"The range must be 6 bytes long");
addr = g_new(address,1);
buff = tvb_memdup(tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len);
SET_ADDRESS(addr, AT_ETHER, 6, buff);
@ -1033,7 +1033,7 @@ WSLUA_METHOD TvbRange_ether(lua_State* L) {
WSLUA_METHOD TvbRange_nstime(lua_State* L) {
/* Obtain a nstime from a TvbRange */
TvbRange tvbr = checkTvbRange(L,1);
NSTime nstime = g_malloc (sizeof(nstime_t));
NSTime nstime;
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@ -1041,6 +1041,8 @@ WSLUA_METHOD TvbRange_nstime(lua_State* L) {
return 0;
}
nstime = g_new(nstime_t,1);
if (tvbr->len == 4) {
nstime->secs = tvb_get_ntohl(tvbr->tvb->ws_tvb, tvbr->offset);
nstime->nsecs = 0;
@ -1048,6 +1050,7 @@ WSLUA_METHOD TvbRange_nstime(lua_State* L) {
nstime->secs = tvb_get_ntohl(tvbr->tvb->ws_tvb, tvbr->offset);
nstime->nsecs = tvb_get_ntohl(tvbr->tvb->ws_tvb, tvbr->offset + 4);
} else {
g_free(nstime);
WSLUA_ERROR(TvbRange_nstime,"The range must be 4 or 8 bytes long");
return 0;
}
@ -1060,7 +1063,7 @@ WSLUA_METHOD TvbRange_nstime(lua_State* L) {
WSLUA_METHOD TvbRange_le_nstime(lua_State* L) {
/* Obtain a nstime from a TvbRange */
TvbRange tvbr = checkTvbRange(L,1);
NSTime nstime = g_malloc (sizeof(nstime_t));
NSTime nstime;
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@ -1068,6 +1071,8 @@ WSLUA_METHOD TvbRange_le_nstime(lua_State* L) {
return 0;
}
nstime = g_new(nstime_t,1);
if (tvbr->len == 4) {
nstime->secs = tvb_get_letohl(tvbr->tvb->ws_tvb, tvbr->offset);
nstime->nsecs = 0;
@ -1075,6 +1080,7 @@ WSLUA_METHOD TvbRange_le_nstime(lua_State* L) {
nstime->secs = tvb_get_letohl(tvbr->tvb->ws_tvb, tvbr->offset);
nstime->nsecs = tvb_get_letohl(tvbr->tvb->ws_tvb, tvbr->offset + 4);
} else {
g_free(nstime);
WSLUA_ERROR(TvbRange_nstime,"The range must be 4 or 8 bytes long");
return 0;
}