From: Frantisek Sumsal Date: Wed, 29 Apr 2026 09:50:01 +0000 (+0200) Subject: sd-bus: store the strv size when extending it X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0d71d58da084a5548bcb762aa4b0fad9dc49fac9;p=thirdparty%2Fsystemd.git sd-bus: store the strv size when extending it So strv_push_with_size() doesn't have to recalculate the size every time. --- diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c index 94be969f7f4..017ffb7a612 100644 --- a/src/libsystemd/sd-bus/bus-message.c +++ b/src/libsystemd/sd-bus/bus-message.c @@ -4331,6 +4331,7 @@ int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz) { _public_ int sd_bus_message_read_strv_extend(sd_bus_message *m, char ***l) { char type; const char *contents, *s; + size_t n; int r; assert(m); @@ -4347,9 +4348,10 @@ _public_ int sd_bus_message_read_strv_extend(sd_bus_message *m, char ***l) { if (r <= 0) return r; + n = strv_length(*l); /* sd_bus_message_read_basic() does content validation for us. */ while ((r = sd_bus_message_read_basic(m, *contents, &s)) > 0) { - r = strv_extend(l, s); + r = strv_extend_with_size(l, &n, s); if (r < 0) return r; }