diff options
-rw-r--r-- | epan/wslua/wslua_tvb.c | 11 | ||||
-rw-r--r-- | test/lua/field.lua | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/epan/wslua/wslua_tvb.c b/epan/wslua/wslua_tvb.c index 4b91a3ffdb..4647d7d1e3 100644 --- a/epan/wslua/wslua_tvb.c +++ b/epan/wslua/wslua_tvb.c @@ -1399,10 +1399,13 @@ WSLUA_METAMETHOD TvbRange__tostring(lua_State* L) { return 0; } - str = tvb_bytes_to_str(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len); - - lua_pushstring(L,str); - wmem_free(NULL, str); + if (tvbr->len == 0) { + lua_pushstring(L, "<EMPTY>"); + } else { + str = tvb_bytes_to_str(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len); + lua_pushstring(L,str); + wmem_free(NULL, str); + } WSLUA_RETURN(1); /* A Lua hex string of the first 24 binary bytes in the `TvbRange`. */ } diff --git a/test/lua/field.lua b/test/lua/field.lua index 008a9bc942..9d542cf8e9 100644 --- a/test/lua/field.lua +++ b/test/lua/field.lua @@ -59,6 +59,7 @@ test("Field.new-3",not pcall(makeField,"")) test("Field.new-4",not pcall(makeField,"IP.SRC")) -- declare some field extractors +local f_frame_encap_type = Field.new("frame.encap_type") local f_frame_proto = Field.new("frame.protocols") local f_eth_src = Field.new("eth.src") local f_eth_dst = Field.new("eth.dst") @@ -138,6 +139,7 @@ function tap.packet(pinfo,tvb) test("FieldInfo.range-1", eth_src1 == eth_src2) test("FieldInfo.range-2", eth_src1 == eth_src3) test("FieldInfo.range-3",not pcall(setFieldInfo,fi_eth_src,"range",3)) + test("FieldInfo.range-4", tostring(f_frame_encap_type().range) == "<EMPTY>") test("FieldInfo.generated-1", f_frame_proto().generated == true) test("FieldInfo.generated-2", eth_macs[2].generated == false) |