aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/wslua/wslua_tvb.c11
-rw-r--r--test/lua/field.lua2
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)