Fix potential memory leak when creating config items fails

This commit is contained in:
Maschell 2022-09-18 22:05:44 +02:00
parent bf8d300588
commit 7b9868bd0e
5 changed files with 6 additions and 0 deletions

View File

@ -5,6 +5,8 @@
extern "C" int32_t WUPSConfigItem_Create(WUPSConfigItemHandle *out, const char *configID, const char *displayName, WUPSConfigCallbacks_t callbacks, void *context);
extern "C" int32_t WUPSConfigItem_Destroy(WUPSConfigItemHandle handle);
extern "C" int32_t WUPSConfig_Destroy(WUPSConfigHandle handle);
extern "C" int32_t WUPSConfigItem_SetDisplayName(WUPSConfigItemHandle handle, const char *displayName);

View File

@ -90,6 +90,7 @@ WUPSConfigItemBoolean_AddToCategoryEx(WUPSConfigCategoryHandle cat, const char *
}
if (WUPSConfigCategory_AddItem(cat, item->handle) < 0) {
WUPSConfigItem_Destroy(item->handle);
return false;
}
return true;

View File

@ -98,6 +98,7 @@ extern "C" bool WUPSConfigItemIntegerRange_AddToCategory(WUPSConfigCategoryHandl
};
if (WUPSConfigCategory_AddItem(cat, item->handle) < 0) {
WUPSConfigItem_Destroy(item->handle);
return false;
}
return true;

View File

@ -127,6 +127,7 @@ WUPSConfigItemMultipleValues_AddToCategory(WUPSConfigCategoryHandle cat, const c
}
if (WUPSConfigCategory_AddItem(cat, item->handle) < 0) {
WUPSConfigItem_Destroy(item->handle);
return false;
}
return true;

View File

@ -2,6 +2,7 @@
:TEXT
WUPSConfigItem_Create
WUPSConfigItem_Destroy
WUPSConfigItem_SetDisplayName
WUPSConfigItem_GetDisplayName
WUPSConfigItem_SetConfigID