[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