X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-message.c;h=524f17eb9f952707ebdbc91da3c98121a4c14e1c;hp=c0a0242fd612dfd7b2ce2e082f0ebaa069abb20e;hb=b8beb2781682738f3a59aab993bf2869447a77c9;hpb=e3017af97310da024ffb378ed155bc1676922ce7 diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c index c0a0242fd..524f17eb9 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;