diff --git a/src/basic/io-util.c b/src/basic/io-util.c index f642beca3a9..6f6fb8068c4 100644 --- a/src/basic/io-util.c +++ b/src/basic/io-util.c @@ -362,3 +362,13 @@ size_t iovw_size(struct iovec_wrapper *iovw) { return n; } + +void iovec_array_free(struct iovec *iov, size_t n) { + if (!iov) + return; + + for (size_t i = 0; i < n; i++) + free(iov[i].iov_base); + + free(iov); +} diff --git a/src/basic/io-util.h b/src/basic/io-util.h index 3afb134266a..e7e78e91215 100644 --- a/src/basic/io-util.h +++ b/src/basic/io-util.h @@ -105,3 +105,5 @@ int iovw_put_string_field(struct iovec_wrapper *iovw, const char *field, const c int iovw_put_string_field_free(struct iovec_wrapper *iovw, const char *field, char *value); void iovw_rebase(struct iovec_wrapper *iovw, char *old, char *new); size_t iovw_size(struct iovec_wrapper *iovw); + +void iovec_array_free(struct iovec *iov, size_t n);