From: Lennart Poettering Date: Tue, 21 Nov 2023 12:12:08 +0000 (+0100) Subject: iovec-util: add new iovec_memdup() helper X-Git-Tag: v256-rc1~1263^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4cc467b67cae6fa5856a2a6468016fac87b44c13;p=thirdparty%2Fsystemd.git iovec-util: add new iovec_memdup() helper --- diff --git a/src/basic/iovec-util.h b/src/basic/iovec-util.h index 3b843e2594a..abfa8c07dab 100644 --- a/src/basic/iovec-util.h +++ b/src/basic/iovec-util.h @@ -69,3 +69,19 @@ static inline int iovec_memcmp(const struct iovec *a, const struct iovec *b) { b ? b->iov_base : NULL, b ? b->iov_len : 0); } + +static inline struct iovec *iovec_memdup(const struct iovec *source, struct iovec *ret) { + assert(ret); + + if (!iovec_is_set(source)) + *ret = (struct iovec) {}; + else { + void *p = memdup(source->iov_base, source->iov_len); + if (!p) + return NULL; + + *ret = IOVEC_MAKE(p, source->iov_len); + } + + return ret; +}