From 2efccb3d0153d21737fdc9d292f0b2fe83bbb603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Fri, 23 Jun 2023 22:43:09 +0200 Subject: [PATCH] pipewire: impl-metadata: replace open-coded vasprintf() Simply use `vasprintf()` instead of manual `vsnprintf()` and `malloc()` calls. --- src/pipewire/impl-metadata.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/src/pipewire/impl-metadata.c b/src/pipewire/impl-metadata.c index efebbaa37..53811e664 100644 --- a/src/pipewire/impl-metadata.c +++ b/src/pipewire/impl-metadata.c @@ -577,31 +577,17 @@ int pw_impl_metadata_set_propertyf(struct pw_impl_metadata *metadata, const char *fmt, ...) { va_list args; - int n = 0, res; - size_t size = 0; - char *p = NULL; + char *value; + int res; va_start(args, fmt); - n = vsnprintf(p, size, fmt, args); + res = vasprintf(&value, fmt, args); va_end(args); - if (n < 0) + if (res < 0) return -errno; - size = (size_t) n + 1; - p = malloc(size); - if (p == NULL) - return -errno; - - va_start(args, fmt); - n = vsnprintf(p, size, fmt, args); - va_end(args); - - if (n < 0) { - free(p); - return -errno; - } - res = pw_impl_metadata_set_property(metadata, subject, key, type, p); - free(p); + res = pw_impl_metadata_set_property(metadata, subject, key, type, value); + free(value); return res; }