diff options
-rw-r--r-- | src/util.c | 4 | ||||
-rw-r--r-- | tests/util.c | 10 |
2 files changed, 14 insertions, 0 deletions
@@ -21,6 +21,10 @@ EXIT_USAGE = 2; void freeit(const void **const ptr) { + if (ptr == NULL) { + return; + } + free((void *)*ptr); *ptr = NULL; } diff --git a/tests/util.c b/tests/util.c index bc85b70..a720123 100644 --- a/tests/util.c +++ b/tests/util.c @@ -41,6 +41,16 @@ test_freeit(void) { test_ok(); } + { + testing("tolerate be given a NULL pointer"); + + void *p = NULL; + freeit(NULL); + freeit(p); + freeit((void *)&p); + + test_ok(); + } rc = 0; out: |