[systemd-devel] [PATCH 1/5] [use after free] Avoid using m->kdbus after freeing it.
David Herrmann
dh.herrmann at gmail.com
Thu Sep 11 08:11:36 PDT 2014
Hi
On Wed, Sep 10, 2014 at 11:20 AM, <philippedeswert at gmail.com> wrote:
> From: Philippe De Swert <philippedeswert at gmail.com>
>
> m->kdbus could be freed before it is released. Changing the
> order fixes the issue.
>
> Found with Coverity. Fixes: CID#1237798
>
> Signed-off-by: Philippe De Swert <philippedeswert at gmail.com>
Few notes:
- no punctuation characters in commit-heads
- try to prefix commit-heads with the subsystem name, like "bus: foo
bar bar bar"
- no signed-off-by for systemd
I fixed those and applied the patch.
Thanks!
David
> ---
> src/libsystemd/sd-bus/bus-message.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
> index d00455a..bfb14fc 100644
> --- a/src/libsystemd/sd-bus/bus-message.c
> +++ b/src/libsystemd/sd-bus/bus-message.c
> @@ -127,9 +127,6 @@ static void message_free(sd_bus_message *m) {
>
> message_reset_parts(m);
>
> - if (m->free_kdbus)
> - free(m->kdbus);
> -
> if (m->release_kdbus) {
> uint64_t off;
>
> @@ -137,6 +134,9 @@ static void message_free(sd_bus_message *m) {
> ioctl(m->bus->input_fd, KDBUS_CMD_FREE, &off);
> }
>
> + if (m->free_kdbus)
> + free(m->kdbus);
> +
> sd_bus_unref(m->bus);
>
> if (m->free_fds) {
> --
> 1.8.3.2
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
More information about the systemd-devel
mailing list