From: Kay Sievers Date: Tue, 4 Jun 2013 21:37:57 +0000 (+0200) Subject: bus: unmap memfd retrieved from the memfd cache X-Git-Tag: v205~169 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=bf30e48fe5c6a042f157804631d7d3817c8119fc bus: unmap memfd retrieved from the memfd cache --- diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c index ad0d57314..ffa843d5d 100644 --- a/src/libsystemd-bus/bus-kernel.c +++ b/src/libsystemd-bus/bus-kernel.c @@ -729,7 +729,7 @@ int bus_kernel_pop_memfd(sd_bus *bus, void **address, size_t *size) { return fd; } - c = &bus->memfd_cache[-- bus->n_memfd_cache]; + c = &bus->memfd_cache[--bus->n_memfd_cache]; assert(c->fd >= 0); assert(c->size == 0 || c->address); diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c index 77a875d4e..760a148fa 100644 --- a/src/libsystemd-bus/bus-message.c +++ b/src/libsystemd-bus/bus-message.c @@ -1216,8 +1216,9 @@ static int part_make_space( part->mapped = psz; part->data = n; - part->munmap_this = true; } + + part->munmap_this = true; } else { n = realloc(part->data, sz); if (!n) { @@ -2358,9 +2359,8 @@ void bus_body_part_unmap(struct bus_body_part *part) { if (!part->data) return; - //FIXME: this is not set in the benchmark - //if (!part->munmap_this) - // return; + if (!part->munmap_this) + return; assert_se(munmap(part->data, part->mapped) == 0);