diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-11-26 01:45:14 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-11-26 02:20:55 +0100 |
commit | f3c0588651927ebac691130aa861b878fa22e527 (patch) | |
tree | 954db1181018de3e5566208192f7990e5854b822 | |
parent | b37d45c9ab5f645502695e47d268af1a54216e0e (diff) |
sd-bus: use free_and_strdup() where appropriate
This simplifies things a bit and makes sure we free any previously set
creds component before writing in a new one.
-rw-r--r-- | src/libsystemd/sd-bus/bus-control.c | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c index 23fb0e7003..0ebaf85d57 100644 --- a/src/libsystemd/sd-bus/bus-control.c +++ b/src/libsystemd/sd-bus/bus-control.c @@ -392,10 +392,11 @@ _public_ int sd_bus_list_names(sd_bus *bus, char ***acquired, char ***activatabl return bus_list_names_dbus1(bus, acquired, activatable); } -static int bus_populate_creds_from_items(sd_bus *bus, - struct kdbus_info *info, - uint64_t mask, - sd_bus_creds *c) { +static int bus_populate_creds_from_items( + sd_bus *bus, + struct kdbus_info *info, + uint64_t mask, + sd_bus_creds *c) { struct kdbus_item *item; uint64_t m; @@ -470,9 +471,9 @@ static int bus_populate_creds_from_items(sd_bus *bus, case KDBUS_ITEM_PID_COMM: if (mask & SD_BUS_CREDS_COMM) { - c->comm = strdup(item->str); - if (!c->comm) - return -ENOMEM; + r = free_and_strdup(&c->comm, item->str); + if (r < 0) + return r; c->mask |= SD_BUS_CREDS_COMM; } @@ -480,9 +481,9 @@ static int bus_populate_creds_from_items(sd_bus *bus, case KDBUS_ITEM_TID_COMM: if (mask & SD_BUS_CREDS_TID_COMM) { - c->tid_comm = strdup(item->str); - if (!c->tid_comm) - return -ENOMEM; + r = free_and_strdup(&c->tid_comm, item->str); + if (r < 0) + return r; c->mask |= SD_BUS_CREDS_TID_COMM; } @@ -490,9 +491,9 @@ static int bus_populate_creds_from_items(sd_bus *bus, case KDBUS_ITEM_EXE: if (mask & SD_BUS_CREDS_EXE) { - c->exe = strdup(item->str); - if (!c->exe) - return -ENOMEM; + r = free_and_strdup(&c->exe, item->str); + if (r < 0) + return r; c->mask |= SD_BUS_CREDS_EXE; } @@ -515,17 +516,17 @@ static int bus_populate_creds_from_items(sd_bus *bus, SD_BUS_CREDS_SESSION | SD_BUS_CREDS_OWNER_UID) & mask; if (m) { - c->cgroup = strdup(item->str); - if (!c->cgroup) - return -ENOMEM; + r = free_and_strdup(&c->cgroup, item->str); + if (r < 0) + return r; r = bus_get_root_path(bus); if (r < 0) return r; - c->cgroup_root = strdup(bus->cgroup_root); - if (!c->cgroup_root) - return -ENOMEM; + r = free_and_strdup(&c->cgroup_root, bus->cgroup_root); + if (r < 0) + return r; c->mask |= m; } @@ -547,9 +548,9 @@ static int bus_populate_creds_from_items(sd_bus *bus, case KDBUS_ITEM_SECLABEL: if (mask & SD_BUS_CREDS_SELINUX_CONTEXT) { - c->label = strdup(item->str); - if (!c->label) - return -ENOMEM; + r = free_and_strdup(&c->label, item->str); + if (r < 0) + return r; c->mask |= SD_BUS_CREDS_SELINUX_CONTEXT; } @@ -579,9 +580,9 @@ static int bus_populate_creds_from_items(sd_bus *bus, case KDBUS_ITEM_CONN_DESCRIPTION: if (mask & SD_BUS_CREDS_DESCRIPTION) { - c->description = strdup(item->str); - if (!c->description) - return -ENOMEM; + r = free_and_strdup(&c->description, item->str); + if (r < 0) + return r; c->mask |= SD_BUS_CREDS_DESCRIPTION; } |