summaryrefslogtreecommitdiff
path: root/src/basic
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2018-08-08 16:22:55 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2018-08-08 17:11:50 +0900
commitf30faf854b9bf01da294547a1bc3660506d750db (patch)
treef8f954d248504347907e54d89289d471055c3eab /src/basic
parent7e8d494b33cf593e332f3c710c9c26aee4b88dd9 (diff)
downloadsystemd-f30faf854b9bf01da294547a1bc3660506d750db.tar.gz
util: introduce memcmp_safe()
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/util.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/basic/util.h b/src/basic/util.h
index 42c262f598..308933ac90 100644
--- a/src/basic/util.h
+++ b/src/basic/util.h
@@ -112,9 +112,7 @@ static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, int (*com
qsort_r(base, nmemb, size, compar, userdata);
}
-/**
- * Normal memcpy requires src to be nonnull. We do nothing if n is 0.
- */
+/* Normal memcpy requires src to be nonnull. We do nothing if n is 0. */
static inline void memcpy_safe(void *dst, const void *src, size_t n) {
if (n == 0)
return;
@@ -122,6 +120,15 @@ static inline void memcpy_safe(void *dst, const void *src, size_t n) {
memcpy(dst, src, n);
}
+/* Normal memcmp requires s1 and s2 to be nonnull. We do nothing if n is 0. */
+static inline int memcmp_safe(const void *s1, const void *s2, size_t n) {
+ if (n == 0)
+ return 0;
+ assert(s1);
+ assert(s2);
+ return memcmp(s1, s2, n);
+}
+
int on_ac_power(void);
#define memzero(x,l) (memset((x), 0, (l)))