diff options
Diffstat (limited to 'epan/wslua/wslua_field.c')
-rw-r--r-- | epan/wslua/wslua_field.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/epan/wslua/wslua_field.c b/epan/wslua/wslua_field.c index 6abbd1ccad..7712f0e2c7 100644 --- a/epan/wslua/wslua_field.c +++ b/epan/wslua/wslua_field.c @@ -175,11 +175,13 @@ WSLUA_METAMETHOD FieldInfo__call(lua_State* L) { return 1; } case FT_NONE: - if (fi->ws_fi->length == 0) { - lua_pushnil(L); - return 1; + if (fi->ws_fi->length > 0 && fi->ws_fi->rep) { + /* it has a length, but calling fvalue_get() on an FT_NONE asserts, + so get the label instead (it's a FT_NONE, so a label is what it basically is) */ + lua_pushstring(L, fi->ws_fi->rep->representation); + return 1; } - /* FALLTHROUGH */ + return 0; case FT_BYTES: case FT_UINT_BYTES: case FT_REL_OID: |