diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2021-10-19 20:17:52 +0200 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2021-10-20 05:57:11 +0000 |
commit | dc42fd4ff9cc3267fdf62a83e0c66f8dd9612b76 (patch) | |
tree | 18415819ad51d96d9e0e769e171ec37a4f555489 | |
parent | b600434639e5ec4263c663baaeeb2c4cf94ea123 (diff) | |
download | wireshark-dc42fd4ff9cc3267fdf62a83e0c66f8dd9612b76.tar.gz wireshark-dc42fd4ff9cc3267fdf62a83e0c66f8dd9612b76.tar.bz2 wireshark-dc42fd4ff9cc3267fdf62a83e0c66f8dd9612b76.zip |
wslua: Initialize Proto members on creation
Set all pointers in Proto to NULL and check for valid pointers when
wslua_deregister_protocols().
Fixes #17668
(cherry picked from commit cfe33625a07472189a5b17190ca348108c8911cf)
-rw-r--r-- | epan/wslua/wslua_proto.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c index 1e9ee99784..af0881ceda 100644 --- a/epan/wslua/wslua_proto.c +++ b/epan/wslua/wslua_proto.c @@ -109,7 +109,7 @@ WSLUA_CONSTRUCTOR Proto_new(lua_State* L) { /* Creates a new <<lua_class_Proto,` return 0; } - proto = g_new(wslua_proto_t, 1); + proto = g_new0(wslua_proto_t, 1); proto->name = hiname; proto->loname = loname; @@ -652,7 +652,7 @@ int wslua_deregister_protocols(lua_State* L) { } lua_pop(L, 1); - if (proto->hfa->len) { + if (proto->hfa && proto->hfa->len) { proto_add_deregistered_data(g_array_free(proto->hfa,FALSE)); } else { g_array_free(proto->hfa,TRUE); @@ -661,7 +661,7 @@ int wslua_deregister_protocols(lua_State* L) { /* No need for deferred deletion of subtree indexes */ g_array_free(proto->etta,TRUE); - if (proto->eia->len) { + if (proto->eia && proto->eia->len) { proto_add_deregistered_data(g_array_free(proto->eia,FALSE)); } else { g_array_free(proto->eia,TRUE); |