[PATCH] shared: fix warning reported by UBSan

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fix the following warning reported by UBSan (as of gcc-13.1.1):

shared/hash.c:244:35: runtime error: null pointer passed as
argument 2, which is declared to never be null

i.e. avoid passing {NULL, 0} array to bsearch().

Signed-off-by: Dmitry Antipov <dmantipov@xxxxxxxxx>
---
 shared/hash.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/shared/hash.c b/shared/hash.c
index 7fe3f80..0e09c99 100644
--- a/shared/hash.c
+++ b/shared/hash.c
@@ -241,12 +241,12 @@ void *hash_find(const struct hash *hash, const char *key)
 		.key = key,
 		.value = NULL
 	};
-	const struct hash_entry *entry = bsearch(
-		&se, bucket->entries, bucket->used,
-		sizeof(struct hash_entry), hash_entry_cmp);
-	if (entry == NULL)
-		return NULL;
-	return (void *)entry->value;
+	const struct hash_entry *entry =
+		(bucket->entries ?
+		 bsearch(&se, bucket->entries, bucket->used,
+			 sizeof(struct hash_entry), hash_entry_cmp) :
+		 NULL);
+	return entry ? (void *)entry->value : NULL;
 }
 
 int hash_del(struct hash *hash, const char *key)
-- 
2.40.1




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux