From 7276bf471db53c105afbb48ff531429dcb4df35d Mon Sep 17 00:00:00 2001 From: NikSchew Date: Sun, 2 Jun 2024 13:42:47 +0200 Subject: [PATCH] Added guard for some object inits to prevent memory leak by misuse (#662) Co-authored-by: Nik Schewtschuk --- src/bacnet/basic/object/ao.c | 4 +++- src/bacnet/basic/object/blo.c | 4 +++- src/bacnet/basic/object/bo.c | 4 +++- src/bacnet/basic/object/bv.c | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/bacnet/basic/object/ao.c b/src/bacnet/basic/object/ao.c index 34b664a1..22bef07a 100644 --- a/src/bacnet/basic/object/ao.c +++ b/src/bacnet/basic/object/ao.c @@ -1279,5 +1279,7 @@ void Analog_Output_Cleanup(void) */ void Analog_Output_Init(void) { - Object_List = Keylist_Create(); + if (!Object_List) { + Object_List = Keylist_Create(); + } } diff --git a/src/bacnet/basic/object/blo.c b/src/bacnet/basic/object/blo.c index 6cafef62..415afafe 100644 --- a/src/bacnet/basic/object/blo.c +++ b/src/bacnet/basic/object/blo.c @@ -1554,5 +1554,7 @@ void Binary_Lighting_Output_Cleanup(void) */ void Binary_Lighting_Output_Init(void) { - Object_List = Keylist_Create(); + if (!Object_List) { + Object_List = Keylist_Create(); + } } diff --git a/src/bacnet/basic/object/bo.c b/src/bacnet/basic/object/bo.c index 92014da5..e70b24cc 100644 --- a/src/bacnet/basic/object/bo.c +++ b/src/bacnet/basic/object/bo.c @@ -1231,5 +1231,7 @@ bool Binary_Output_Delete(uint32_t object_instance) */ void Binary_Output_Init(void) { - Object_List = Keylist_Create(); + if (!Object_List) { + Object_List = Keylist_Create(); + } } diff --git a/src/bacnet/basic/object/bv.c b/src/bacnet/basic/object/bv.c index 132e989e..28cd5309 100644 --- a/src/bacnet/basic/object/bv.c +++ b/src/bacnet/basic/object/bv.c @@ -1006,5 +1006,7 @@ bool Binary_Value_Delete(uint32_t object_instance) */ void Binary_Value_Init(void) { - Object_List = Keylist_Create(); + if (!Object_List) { + Object_List = Keylist_Create(); + } }