diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-03-22 00:24:21 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-03-22 00:24:21 +0100 |
commit | b8beb2781682738f3a59aab993bf2869447a77c9 (patch) | |
tree | 6cebf0391a2558f983a586e4f28c5eea3c99e589 /src/libsystemd-bus/bus-message.c | |
parent | b9bf7e2be93fe25e0e96e06ad436d43a1e589ed5 (diff) |
bus: generate a nice error when attempting to add a NULL string
Diffstat (limited to 'src/libsystemd-bus/bus-message.c')
-rw-r--r-- | src/libsystemd-bus/bus-message.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c index c0a0242fd6..524f17eb9f 100644 --- a/src/libsystemd-bus/bus-message.c +++ b/src/libsystemd-bus/bus-message.c @@ -768,11 +768,27 @@ int message_append_basic(sd_bus_message *m, char type, const void *p, const void case SD_BUS_TYPE_STRING: case SD_BUS_TYPE_OBJECT_PATH: + + if (!p) { + if (e) + c->signature[c->index] = 0; + + return -EINVAL; + } + align = 4; sz = 4 + strlen(p) + 1; break; case SD_BUS_TYPE_SIGNATURE: + + if (!p) { + if (e) + c->signature[c->index] = 0; + + return -EINVAL; + } + align = 1; sz = 1 + strlen(p) + 1; break; |