From 12c01d0d424abe7495cf7f8b988bf2d98c0653f1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 2 Jun 2019 14:26:25 -0400 Subject: [PATCH] Ensured calls to bsearch() have a length of at least 1; UndefinedBehaviorSanitizer will warn otherwise. Also included qsort(), to be safe. --- sharedbits/array_impl.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sharedbits/array_impl.h b/sharedbits/array_impl.h index 55e04c62..a47302f5 100644 --- a/sharedbits/array_impl.h +++ b/sharedbits/array_impl.h @@ -77,12 +77,15 @@ void sharedbitsPrefixName(ArrayDeleteItem)(sharedbitsPrefixName(Array) *arr, voi void *sharedbitsPrefixName(ArrayBsearch)(const sharedbitsPrefixName(Array) *arr, const void *key, int (*compare)(const void *, const void *)) { + if (arr->len == 0) + return NULL; return bsearch(key, arr->buf, arr->len, arr->elemsize, compare); } void sharedbitsPrefixName(ArrayQsort)(sharedbitsPrefixName(Array) *arr, int (*compare)(const void *, const void *)) { - qsort(arr->buf, arr->len, arr->elemsize, compare); + if (arr->len != 0) + qsort(arr->buf, arr->len, arr->elemsize, compare); } #include "end.h"