From b43ea73651a4a5dd43421db0f14977d632175fa0 Mon Sep 17 00:00:00 2001 From: Enzo Evers Date: Sat, 7 Dec 2024 10:17:14 +0100 Subject: [PATCH] dev: add nullptr check in RaiiStringClean --- CoDeLib/RaiiString/src/RaiiString.c | 4 ++++ CoDeLib/Test/src/TestRaiiString.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/CoDeLib/RaiiString/src/RaiiString.c b/CoDeLib/RaiiString/src/RaiiString.c index aabc9a0a..6a412de3 100644 --- a/CoDeLib/RaiiString/src/RaiiString.c +++ b/CoDeLib/RaiiString/src/RaiiString.c @@ -33,6 +33,10 @@ RaiiString RaiiStringCreateFromCString(const char *pCString) { } void RaiiStringClean(RaiiString *pThis) { + if (pThis == NULL) { + return; + } + if (pThis->pString != NULL) { free(pThis->pString); pThis->pString = NULL; diff --git a/CoDeLib/Test/src/TestRaiiString.c b/CoDeLib/Test/src/TestRaiiString.c index 64e1ebd7..af4fe5d5 100644 --- a/CoDeLib/Test/src/TestRaiiString.c +++ b/CoDeLib/Test/src/TestRaiiString.c @@ -104,6 +104,10 @@ TEST( // RaiiStringClean(...) //============================== +TEST(TestRaiiString, test_RaiiStringClean_DoesNotCrashIfObjectIsNull) { + RaiiStringClean(NULL); +} + TEST(TestRaiiString, test_RaiiStringClean_SetsNullptrInObject) { raiiString = RaiiStringCreateFromCString("Hello, world!"); RaiiStringClean(&raiiString); @@ -296,6 +300,8 @@ TEST_GROUP_RUNNER(TestRaiiString) { test_RaiiStringCreateFromCString_SetsLengthOfZeroAndNullptrIfProvidedEmptyString); // RaiiStringClean() + RUN_TEST_CASE(TestRaiiString, + test_RaiiStringClean_DoesNotCrashIfObjectIsNull); RUN_TEST_CASE(TestRaiiString, test_RaiiStringClean_SetsNullptrInObject); RUN_TEST_CASE(TestRaiiString, test_RaiiStringClean_SetsLengthZeroInObject);