File dbus-1.2.10-signature-validation.patch of Package dbus-1
Index: dbus-1.2.10/dbus/dbus-marshal-validate-util.c
===================================================================
--- dbus-1.2.10.orig/dbus/dbus-marshal-validate-util.c
+++ dbus-1.2.10/dbus/dbus-marshal-validate-util.c
@@ -227,7 +227,7 @@ _dbus_marshal_validate_test (void)
"not a valid signature",
"123",
".",
- "("
+ "(",
"a{(ii)i}" /* https://bugs.freedesktop.org/show_bug.cgi?id=17803 */
};
Index: dbus-1.2.10/dbus/dbus-marshal-validate.c
===================================================================
--- dbus-1.2.10.orig/dbus/dbus-marshal-validate.c
+++ dbus-1.2.10/dbus/dbus-marshal-validate.c
@@ -246,14 +246,15 @@ _dbus_validate_signature_with_reason (co
}
}
- if (last == DBUS_DICT_ENTRY_BEGIN_CHAR &&
- _dbus_type_is_valid (*p) &&
- !dbus_type_is_basic (*p))
+ if (last == DBUS_DICT_ENTRY_BEGIN_CHAR)
{
- result = DBUS_INVALID_DICT_KEY_MUST_BE_BASIC_TYPE;
- goto out;
+ if (!(_dbus_type_is_valid (*p) && dbus_type_is_basic (*p)))
+ {
+ result = DBUS_INVALID_DICT_KEY_MUST_BE_BASIC_TYPE;
+ goto out;
+ }
}
-
+
last = *p;
++p;
}