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);