X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fbasic%2Fstring-util.h;h=aa007242663240f0f79d08e4455788bdbac8464d;hb=9b8ff18319965c7e599a70c2a1fab65823b53536;hp=5a10eeabfe90371f1fbd4a2ed13b32dfcb900dd3;hpb=e6ebebbe6aef5830793af515c2e3a998bde920b9;p=thirdparty%2Fsystemd.git diff --git a/src/basic/string-util.h b/src/basic/string-util.h index 5a10eeabfe9..aa007242663 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -209,3 +209,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; +}