[pulseaudio-commits] src/pulsecore
Tanu Kaskinen
tanuk at kemper.freedesktop.org
Sat Mar 24 22:52:01 PDT 2012
src/pulsecore/protocol-dbus.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
New commits:
commit e9d82afdea4fff19de97a53e5ee7a149b18301eb
Author: Tanu Kaskinen <tanuk at iki.fi>
Date: Sun Mar 25 08:40:56 2012 +0300
dbus: Check method call signatures.
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=45815
diff --git a/src/pulsecore/protocol-dbus.c b/src/pulsecore/protocol-dbus.c
index 6a0dcf3..03cebc1 100644
--- a/src/pulsecore/protocol-dbus.c
+++ b/src/pulsecore/protocol-dbus.c
@@ -468,10 +468,15 @@ static enum find_result_t find_handler(struct call_info *call_info) {
else if (!(call_info->iface_entry = pa_hashmap_get(call_info->obj_entry->interfaces, call_info->interface)))
return NO_SUCH_INTERFACE;
- else if ((call_info->method_handler = pa_hashmap_get(call_info->iface_entry->method_handlers, call_info->method)))
+ else if ((call_info->method_handler = pa_hashmap_get(call_info->iface_entry->method_handlers, call_info->method))) {
+ call_info->expected_method_sig = pa_hashmap_get(call_info->iface_entry->method_signatures, call_info->method);
+
+ if (!pa_streq(call_info->method_sig, call_info->expected_method_sig))
+ return INVALID_METHOD_SIG;
+
return FOUND_METHOD;
- else
+ } else
return NO_SUCH_METHOD;
} else { /* The method call doesn't contain an interface. */
More information about the pulseaudio-commits
mailing list