summaryrefslogtreecommitdiff
path: root/src/libsystemd-bus
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-04-14 17:43:59 +0200
committerLennart Poettering <lennart@poettering.net>2013-04-14 17:43:59 +0200
commited5c5dbde1575d74c87ae9856fe61268d7ae8f4b (patch)
treef9cf03c29268df9b37e7f1cfd455752f8ef3ca74 /src/libsystemd-bus
parent01f6c9d4685edbc38c8df9175286f0e312dc1938 (diff)
util: introduce alloca0() and use it at a number of places
Diffstat (limited to 'src/libsystemd-bus')
-rw-r--r--src/libsystemd-bus/bus-control.c7
-rw-r--r--src/libsystemd-bus/bus-kernel.c3
2 files changed, 3 insertions, 7 deletions
diff --git a/src/libsystemd-bus/bus-control.c b/src/libsystemd-bus/bus-control.c
index 5296029fd6..e980bfc740 100644
--- a/src/libsystemd-bus/bus-control.c
+++ b/src/libsystemd-bus/bus-control.c
@@ -66,10 +66,9 @@ int sd_bus_request_name(sd_bus *bus, const char *name, int flags) {
size_t l;
l = strlen(name);
- n = alloca(offsetof(struct kdbus_cmd_name, name) + l + 1);
+ n = alloca0(offsetof(struct kdbus_cmd_name, name) + l + 1);
n->size = offsetof(struct kdbus_cmd_name, name) + l + 1;
n->name_flags = flags;
- n->id = 0;
memcpy(n->name, name, l+1);
#ifdef HAVE_VALGRIND_MEMCHECK_H
@@ -121,10 +120,8 @@ int sd_bus_release_name(sd_bus *bus, const char *name) {
size_t l;
l = strlen(name);
- n = alloca(offsetof(struct kdbus_cmd_name, name) + l + 1);
+ n = alloca0(offsetof(struct kdbus_cmd_name, name) + l + 1);
n->size = offsetof(struct kdbus_cmd_name, name) + l + 1;
- n->name_flags = 0;
- n->id = 0;
memcpy(n->name, name, l+1);
#ifdef HAVE_VALGRIND_MEMCHECK_H
diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c
index b2d98c05d7..264c6994d9 100644
--- a/src/libsystemd-bus/bus-kernel.c
+++ b/src/libsystemd-bus/bus-kernel.c
@@ -474,8 +474,7 @@ int bus_kernel_create(const char *name, char **s) {
return -errno;
l = strlen(name);
- make = alloca(offsetof(struct kdbus_cmd_bus_make, name) + DECIMAL_STR_MAX(uid_t) + 1 + l + 1);
- memset(make, 0, offsetof(struct kdbus_cmd_bus_make, name));
+ make = alloca0(offsetof(struct kdbus_cmd_bus_make, name) + DECIMAL_STR_MAX(uid_t) + 1 + l + 1);
sprintf(make->name, "%lu-%s", (unsigned long) getuid(), name);
make->size = offsetof(struct kdbus_cmd_bus_make, name) + strlen(make->name) + 1;
make->flags = KDBUS_ACCESS_WORLD | KDBUS_POLICY_OPEN;