This is a static archive of our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

Multiple “Lua: Error during loading” issues reported after install of Win64 version 2.4.0

0

Prior to install and launch of Wireshark 2.4.0 for Windows 64, I had none of the problems described below. However, after the install, I am getting the following 2 errors reported in a dialog:

  1. Lua: Error during loading: [string "C:\Program Files\Wireshark\plugins\2.4.0\dsmc..."]:40: bad argument #3 to 'bytes' (Display must be either base.NONE, base.DOT, base.DASH, base.COLON or base.SPACE) --

  2. Lua: Error during loading: [string "C:\Program Files\Wireshark\plugins\2.4.0\twcs..."]:426: bad argument #3 to 'new' (ProtoField_new: Unsupported ProtoField field type) --

The first error

References a dissector named dsmcc_dissector.lua, and line 40 has the following lua code:
ServerInteractiveSessionRequest.fields.sessionId = ProtoField.bytes("dsmcc.sessionId", "sessionId", base.HEX, nil, nil)

https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Proto.html

2. The second error

References a dissector named twcssp.lua, and line 426 has the following lua code: local pf_stb_address = ProtoField.new("Unique STB MAC Address", "dsmcc_ssp.stb_address", ftypes.ETHER)

https://wiki.wireshark.org/LuaAPI/Proto#ProtoField

Any help on how to resolve this would be greatly appreciated!

Thanks,

Mike

asked 04 Aug '17, 16:48

mfbaker's gravatar image

mfbaker
16448
accept rate: 0%

FYI, I just downgraded Win64 wireshark v2.4.0 to Win64 wireshark v2.2.8. Wireshark now launches, and there are no more "LUA: Error during loading" messages.

(04 Aug '17, 17:41) mfbaker

One Answer:

0

Referencing the following LUA API link, base.HEX appears to be valid

The documentation needs updating; FT_BYTES fields are always displayed as hex, you just get to choose what separates the hex digit pairs for the bytes, if anything. Choose one of base.NONE, base.DOT, base.DASH, base.COLON or base.SPACE, depending on whether you want no separator between bytes, a "." between bytes, a "-" between bytes, a ":" between bytes, or a pace between bytes. I don't know whether any other than base.NONE will work on all versions of Wireshark, but base.NONE should work on all versions.

Referencing the follwing LUA API link, ftypes.ETHER appears also to be valid

That looks like a bug; please file a bug on the Wireshark Bugzilla, and attach your Lua script.

answered 04 Aug '17, 23:10

Guy%20Harris's gravatar image

Guy Harris ♦♦
17.4k335196
accept rate: 19%

Just as a possible workaround, you use

ServerInteractiveSessionRequest.fields.sessionId = ProtoField.bytes("dsmcc.sessionId", "sessionId", base.HEX, nil, nil)

in one case, but in the other one, you use

local pf_stb_address = ProtoField.new("Unique STB MAC Address", "dsmcc_ssp.stb_address", ftypes.ETHER) rather than local pf_stb_address = ProtoField.ether("Unique STB MAC Address", "dsmcc_ssp.stb_address")

Maybe the latter syntax is accepted? If it is, it doesn't mean that you should not file the bug as @Guy Harris asked you to.

(04 Aug '17, 23:42) sindy

Thanks, Guy! I just filed Bug 13950 - Multiple "Lua: Error during loading" issues reported after install of Win64 version 2.4.0, https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=13950

(06 Aug '17, 13:43) mfbaker