summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2010-05-28 18:35:13 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2010-06-03 17:08:10 +0200
commit72b474f99f238ccaf7c08524e993b42a960ad605 (patch)
tree02fe79d1f2e5680bf7076aa7ed52c033e5124ea2
parentb2eb06f47032c8d936674e93a0baa60ff4186033 (diff)
downloadjson-dbus-bridge-72b474f99f238ccaf7c08524e993b42a960ad605.tar.gz
json-dbus-bridge-72b474f99f238ccaf7c08524e993b42a960ad605.tar.xz
[src] stricter signature <-> parameter matching
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--src/bridge_request.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/bridge_request.c b/src/bridge_request.c
index 257cd61..b52f669 100644
--- a/src/bridge_request.c
+++ b/src/bridge_request.c
@@ -397,10 +397,16 @@ int bridge_request_dbus_params_array(bridge_request_t *self,
element, &sigIt, it);
if (ret != 0)
return ret;
- if (!dbus_signature_iter_next(&sigIt))
- break;
+ if (!dbus_signature_iter_next(&sigIt)) {
+ if (i+1 == len)
+ return 0;
+ bridge_request_error(self,
+ "Unexpected extra parameter found.");
+ return EINVAL;
+ }
}
- return 0;
+ bridge_request_error(self, "Aditional parameter expexted.");
+ return EINVAL;
}
int bridge_request_dbus_params(bridge_request_t *self,