summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2010-05-31 15:15:11 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2010-06-03 17:08:11 +0200
commit9086c438faaa3fd42b1a23a1374fc404009fc73d (patch)
treec4164a5420c1676563bf8428b1ec2629bc811c41
parent28dc4a421238efddc3d667d8976f6baee1d633f0 (diff)
downloadjson-dbus-bridge-9086c438faaa3fd42b1a23a1374fc404009fc73d.tar.gz
json-dbus-bridge-9086c438faaa3fd42b1a23a1374fc404009fc73d.tar.xz
[src] verify that the variant signature defines a single complete type
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--src/bridge_request.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/bridge_request.c b/src/bridge_request.c
index 72c38bd..e7562e7 100644
--- a/src/bridge_request.c
+++ b/src/bridge_request.c
@@ -313,6 +313,11 @@ int bridge_request_dbus_params_element(bridge_request_t *self,
return EINVAL;
}
vSig = json_object_get_string(tmp);
+ if (!dbus_signature_validate_single(vSig, 0)) {
+ bridge_request_error(self,
+ "invalid variant signature.");
+ return EINVAL;
+ }
dbus_message_iter_open_container(it, type,
vSig, &args);
ret = bridge_request_dbus_params_array(self,