From: Zbigniew Jędrzejewski-Szmek Date: Tue, 21 May 2019 15:36:55 +0000 (+0200) Subject: sd-bus: improve error message for invalid org.freedesktop.DBus.Properties.Set signature X-Git-Tag: v243-rc1~391^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8da24acad52fb102ad52848c368d92cc7a42c281;p=thirdparty%2Fsystemd.git sd-bus: improve error message for invalid org.freedesktop.DBus.Properties.Set signature Fixes #12551. --- diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c index fe3b9feea6d..d18c5781775 100644 --- a/src/libsystemd/sd-bus/bus-objects.c +++ b/src/libsystemd/sd-bus/bus-objects.c @@ -638,8 +638,14 @@ static int property_get_set_callbacks_run( if (r < 0) return r; - if (type != 'v' || !streq(strempty(signature), strempty(c->vtable->x.property.signature))) - return sd_bus_reply_method_errorf(m, SD_BUS_ERROR_INVALID_ARGS, "Incorrect parameters for property '%s', expected '%s', got '%s'.", c->member, strempty(c->vtable->x.property.signature), strempty(signature)); + if (type != 'v') + return sd_bus_reply_method_errorf(m, SD_BUS_ERROR_INVALID_SIGNATURE, + "Incorrect signature when setting property '%s', expected 'v', got '%c'.", + c->member, type); + if (!streq(strempty(signature), strempty(c->vtable->x.property.signature))) + return sd_bus_reply_method_errorf(m, SD_BUS_ERROR_INVALID_ARGS, + "Incorrect parameters for property '%s', expected '%s', got '%s'.", + c->member, strempty(c->vtable->x.property.signature), strempty(signature)); r = sd_bus_message_enter_container(m, 'v', c->vtable->x.property.signature); if (r < 0)