summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-12-30 01:44:04 +0900
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-02-02 17:32:49 +0100
commit9bade4195fddf485286bc488e92bc3e4dba7ec6f (patch)
tree946a12f7ed196cba3ca2dfe71d2e5897f5d21680
parentc5c6dbf389c4b04ad19ec024e316d874714264e9 (diff)
downloadsystemd-9bade4195fddf485286bc488e92bc3e4dba7ec6f.tar.gz
siphash: introduce siphash24_compress_safe()
(cherry picked from commit 0b71a7e01d8d04a3668c349e2320c42c786f2382) (cherry picked from commit 9401ed294dd491c10fb7e8b4e9097c86d02227ad)
-rw-r--r--src/basic/siphash24.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/basic/siphash24.h b/src/basic/siphash24.h
index fe43256882..c89cce5694 100644
--- a/src/basic/siphash24.h
+++ b/src/basic/siphash24.h
@@ -3,9 +3,9 @@
#include <inttypes.h>
#include <stddef.h>
#include <stdint.h>
-#include <string.h>
#include <sys/types.h>
+#include "string-util.h"
#include "time-util.h"
struct siphash {
@@ -31,11 +31,15 @@ static inline void siphash24_compress_usec_t(usec_t in, struct siphash *state) {
siphash24_compress(&in, sizeof in, state);
}
-static inline void siphash24_compress_string(const char *in, struct siphash *state) {
- if (!in)
+static inline void siphash24_compress_safe(const void *in, size_t inlen, struct siphash *state) {
+ if (inlen == 0)
return;
- siphash24_compress(in, strlen(in), state);
+ siphash24_compress(in, inlen, state);
+}
+
+static inline void siphash24_compress_string(const char *in, struct siphash *state) {
+ siphash24_compress_safe(in, strlen_ptr(in), state);
}
uint64_t siphash24_finalize(struct siphash *state);