]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-bus: add define for the maximum signature length
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 11 Apr 2019 12:02:59 +0000 (14:02 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 11 Apr 2019 12:02:59 +0000 (14:02 +0200)
Less magic numbers in the code…

src/libsystemd/sd-bus/bus-message.c
src/libsystemd/sd-bus/bus-signature.c
src/systemd/sd-bus.h

index a2464e1a46bcc932581de53ef986756ca1ab04aa..427d42f2969097b1b779414de8ce1877e7ae904b 100644 (file)
@@ -284,7 +284,7 @@ static int message_append_field_signature(
         /* dbus1 doesn't allow signatures over 8bit, let's enforce
          * this globally, to not risk convertability */
         l = strlen(s);
-        if (l > 255)
+        if (l > SD_BUS_MAXIMUM_SIGNATURE_LENGTH)
                 return -EINVAL;
 
         /* Signature "(yv)" where the variant contains "g" */
index 1ecd6e8b7efd7e8b95ca23da329cc23da5a82ddd..b420ba3688d096ac60e1f5e4f8d3a2513cc0bfcf 100644 (file)
@@ -144,5 +144,5 @@ bool signature_is_valid(const char *s, bool allow_dict_entry) {
                 p += t;
         }
 
-        return p - s <= 255;
+        return p - s <= SD_BUS_MAXIMUM_SIGNATURE_LENGTH;
 }
index 129cc933288c783cc84d4868f52a5936cc225a59..311602d04836f216810e7288ed28f43410f9ccc8 100644 (file)
@@ -33,6 +33,9 @@ _SD_BEGIN_DECLARATIONS;
 #define SD_BUS_DEFAULT_USER ((sd_bus *) 2)
 #define SD_BUS_DEFAULT_SYSTEM ((sd_bus *) 3)
 
+/* https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling-signature */
+#define SD_BUS_MAXIMUM_SIGNATURE_LENGTH 255
+
 /* Types */
 
 typedef struct sd_bus sd_bus;