summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2024-03-01 00:34:19 +0800
committerMole Shang <[email protected]>2024-03-01 22:30:12 +0800
commit6d9c1c8396ef374dce59d4c95199d0155a6fdfa3 (patch)
treea3f661195ccbf01c04aa322ea6b8193c72f66539 /src/utils
parent749d02bb3474592613d22736615f7530fa420b78 (diff)
downloadhinata-6d9c1c8396ef374dce59d4c95199d0155a6fdfa3.tar.gz
hinata-6d9c1c8396ef374dce59d4c95199d0155a6fdfa3.tar.bz2
hinata-6d9c1c8396ef374dce59d4c95199d0155a6fdfa3.zip
tree-wide: fix uaf bugs
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/types.c7
-rw-r--r--src/utils/utils.c8
-rw-r--r--src/utils/utils.h2
3 files changed, 9 insertions, 8 deletions
diff --git a/src/utils/types.c b/src/utils/types.c
index f986ba3..e414f92 100644
--- a/src/utils/types.c
+++ b/src/utils/types.c
@@ -15,7 +15,7 @@ generic_array_t create_array(size_t elem_size, size_t n) {
}
void free_array(generic_array_t *array) {
- free_and_nullify((void **)&array->data);
+ free_and_nullify(array->data);
array->n = 0;
}
@@ -49,11 +49,12 @@ str_array_t create_str_array(size_t n) {
return array;
}
+// NOTE: would free both the array and all its elements
void free_str_array(str_array_t *array) {
for (size_t i = 0; i < array->n; i++) {
free(array->str[i]);
}
- free_and_nullify((void **)&array->str);
+ free_and_nullify(array->str);
array->n = 0;
}
@@ -115,7 +116,7 @@ data_t dequeue(queue_t *queue) {
node_t *temp = queue->front;
data_t data = temp->data;
queue->front = temp->next;
- free_and_nullify((void **)&temp);
+ free_and_nullify(temp);
if (queue->front == NULL) {
queue->rear = NULL;
diff --git a/src/utils/utils.c b/src/utils/utils.c
index f7de635..ae60eee 100644
--- a/src/utils/utils.c
+++ b/src/utils/utils.c
@@ -170,9 +170,9 @@ int repchr(char *str, char t, char r) {
return c;
}
-void free_and_nullify(void **p) {
- if (*p) {
- free(*p);
- *p = NULL;
+void free_and_nullify(void *p) {
+ if (p) {
+ free(p);
+ p = NULL;
}
}
diff --git a/src/utils/utils.h b/src/utils/utils.h
index a96ab70..5a26cf2 100644
--- a/src/utils/utils.h
+++ b/src/utils/utils.h
@@ -14,6 +14,6 @@ const char *mimeType2ext(const char *mimeType);
int repchr(char *str, char t, char r);
/* NOTICE: pass a pointer-to-pointer to free the original pointer. */
-void free_and_nullify(void **p);
+void free_and_nullify(void *p);
#endif