From d88be29380c987f130a7abaa007e998f0e5c8413 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 30 May 2018 13:07:37 +0200 Subject: string-util: add new memory_startswith() helper We have code like this at various placer, let's make things shorter and more readable with a helper for it. --- src/basic/string-util.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/basic/string-util.h') diff --git a/src/basic/string-util.h b/src/basic/string-util.h index 56a64d7f5..52a1d7f2b 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -217,3 +217,21 @@ static inline size_t strlen_ptr(const char *s) { return strlen(s); } + +/* Like startswith(), but operates on arbitrary memory blocks */ +static inline void *memory_startswith(const void *p, size_t sz, const char *token) { + size_t n; + + assert(token); + + n = strlen(token); + if (sz < n) + return NULL; + + assert(p); + + if (memcmp(p, token, n) != 0) + return NULL; + + return (uint8_t*) p + n; +} -- cgit v1.2.3