From 4cc467b67cae6fa5856a2a6468016fac87b44c13 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 21 Nov 2023 13:12:08 +0100 Subject: [PATCH] iovec-util: add new iovec_memdup() helper --- src/basic/iovec-util.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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; +} -- 2.47.3