summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-06-30 10:33:48 -0300
committerEuAndreh <eu@euandre.org>2024-06-30 10:33:48 -0300
commit57a51f4b77977a0392e499fa61f9284df9c9c02a (patch)
tree3bee1e5204d80b5e6725aa9a1b35ec0edf7d03f4
parentsrc/vector.h: Remove const markers that do not influence the interface (diff)
downloadpindaiba-57a51f4b77977a0392e499fa61f9284df9c9c02a.tar.gz
pindaiba-57a51f4b77977a0392e499fa61f9284df9c9c02a.tar.xz
src/util.c: Tolerate be given a NULL pointer
-rw-r--r--src/util.c4
-rw-r--r--tests/util.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c
index c0498aa..7e62755 100644
--- a/src/util.c
+++ b/src/util.c
@@ -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: