X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fsd-bus.c;h=7d6d848ec579bdc766e4e3fde15a9b54855b1ef6;hb=ef42202ac8ed27e7ff1fc90ef8bc2590046dff25;hp=c7511c32d2ee648d2d129222683cd89ca28be11a;hpb=c79bb9e4e2e5b96b2ae2c432bf8b0ff9674fce60;p=elogind.git diff --git a/src/libsystemd-bus/sd-bus.c b/src/libsystemd-bus/sd-bus.c index c7511c32d..7d6d848ec 100644 --- a/src/libsystemd-bus/sd-bus.c +++ b/src/libsystemd-bus/sd-bus.c @@ -1841,13 +1841,9 @@ static int process_introspect(sd_bus *bus, sd_bus_message *m) { if (p) *p = 0; - r = set_put(s, a); - if (r < 0) { - free(a); - - if (r != -EEXIST) - return r; - } + r = set_consume(s, a); + if (r < 0 && r != -EEXIST) + return r; } f = open_memstream(&introspection, &size);