From: Lennart Poettering Date: Mon, 6 Nov 2023 10:33:51 +0000 (+0100) Subject: string-util: add strdup_or_null() helper X-Git-Tag: v255-rc2~96^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a20a9d2862d27bb91424419c641acc3f1cd5667;p=thirdparty%2Fsystemd.git string-util: add strdup_or_null() helper --- diff --git a/src/basic/string-util.h b/src/basic/string-util.h index 6b6a5746fe6..b6d8be30834 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -301,3 +301,24 @@ bool version_is_valid(const char *s); bool version_is_valid_versionspec(const char *s); ssize_t strlevenshtein(const char *x, const char *y); + +static inline int strdup_or_null(const char *s, char **ret) { + char *c; + + assert(ret); + + /* This is a lot like strdup(), but is happy with NULL strings, and does not treat that as error, but + * copies the NULL value. */ + + if (!s) { + *ret = NULL; + return 0; + } + + c = strdup(s); + if (!c) + return -ENOMEM; + + *ret = c; + return 1; +}