chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7c9bebf
)
tree-wide: add bsearch_safe and use where appropriate
author
Zbigniew Jędrzejewski-Szmek
<zbyszek@in.waw.pl>
Sun, 25 Mar 2018 20:43:43 +0000
(22:43 +0200)
committer
Sven Eden
<yamakuzure@gmx.net>
Fri, 24 Aug 2018 14:47:08 +0000
(16:47 +0200)
Should fix #8557.
src/basic/util.h
patch
|
blob
|
history
diff --git
a/src/basic/util.h
b/src/basic/util.h
index c24fd6c63f43c7783154308838304d235650580d..6ffc54f9854b31ba286f630491e37ea350899069 100644
(file)
--- a/
src/basic/util.h
+++ b/
src/basic/util.h
@@
-99,6
+99,19
@@
void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
void *arg);
#endif // 0
+/**
+ * Normal bsearch requires base to be nonnull. Here were require
+ * that only if nmemb > 0.
+ */
+static inline void* bsearch_safe(const void *key, const void *base,
+ size_t nmemb, size_t size, comparison_fn_t compar) {
+ if (nmemb <= 0)
+ return NULL;
+
+ assert(base);
+ return bsearch(key, base, nmemb, size, compar);
+}
+
/**
* Normal qsort requires base to be nonnull. Here were require
* that only if nmemb > 0.