aboutsummaryrefslogtreecommitdiffstats
path: root/epan/wslua
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2018-01-24 03:06:06 +0100
committerAnders Broman <a.broman58@gmail.com>2018-01-24 08:34:32 +0000
commitd672ee93724999d93763fa513dcefef5858e919c (patch)
treea72bf4550beefcbdcb79442bf3e954b884c216f5 /epan/wslua
parentcde023c3c5a08131495eb2574c00ff1f34cdce55 (diff)
wslua: fix nstime memory leak after passing unknown encoding to TvbRange_nstime()
Move checking of encoding before allocating nstime. Found by clang. Change-Id: I3c1de5fae6fcf52393cc38302359f21f17808087 Reviewed-on: https://code.wireshark.org/review/25442 Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/wslua')
-rw-r--r--epan/wslua/wslua_tvb.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/epan/wslua/wslua_tvb.c b/epan/wslua/wslua_tvb.c
index d1819b70a8..0a63520694 100644
--- a/epan/wslua/wslua_tvb.c
+++ b/epan/wslua/wslua_tvb.c
@@ -883,6 +883,11 @@ WSLUA_METHOD TvbRange_nstime(lua_State* L) {
return 0;
}
+ if (encoding & ~ENC_STR_TIME_MASK) {
+ WSLUA_OPTARG_ERROR(TvbRange_nstime, ENCODING, "invalid encoding value");
+ return 0;
+ }
+
nstime = g_new(nstime_t,1);
if (encoding == 0) {
@@ -900,9 +905,6 @@ WSLUA_METHOD TvbRange_nstime(lua_State* L) {
pushNSTime(L, nstime);
lua_pushinteger(L, tvbr->len);
}
- else if (encoding & ~ENC_STR_TIME_MASK) {
- WSLUA_OPTARG_ERROR(TvbRange_nstime, ENCODING, "invalid encoding value");
- }
else {
gint endoff = 0;
nstime_t *retval = tvb_get_string_time(tvbr->tvb->ws_tvb, tvbr->offset, tvbr->len,