wslua: Initialize Proto members on creation
Set all pointers in Proto to NULL and check for valid pointers when wslua_deregister_protocols(). Fixes #17668
This commit is contained in:
parent
763247c2b3
commit
cfe33625a0
|
@ -109,7 +109,7 @@ WSLUA_CONSTRUCTOR Proto_new(lua_State* L) { /* Creates a new <<lua_class_Proto,`
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
proto = g_new(wslua_proto_t, 1);
|
proto = g_new0(wslua_proto_t, 1);
|
||||||
|
|
||||||
proto->name = hiname;
|
proto->name = hiname;
|
||||||
proto->loname = loname;
|
proto->loname = loname;
|
||||||
|
@ -652,7 +652,7 @@ int wslua_deregister_protocols(lua_State* L) {
|
||||||
}
|
}
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
|
||||||
if (proto->hfa->len) {
|
if (proto->hfa && proto->hfa->len) {
|
||||||
proto_add_deregistered_data(g_array_free(proto->hfa,FALSE));
|
proto_add_deregistered_data(g_array_free(proto->hfa,FALSE));
|
||||||
} else {
|
} else {
|
||||||
g_array_free(proto->hfa,TRUE);
|
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 */
|
/* No need for deferred deletion of subtree indexes */
|
||||||
g_array_free(proto->etta,TRUE);
|
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));
|
proto_add_deregistered_data(g_array_free(proto->eia,FALSE));
|
||||||
} else {
|
} else {
|
||||||
g_array_free(proto->eia,TRUE);
|
g_array_free(proto->eia,TRUE);
|
||||||
|
|
Loading…
Reference in New Issue