]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
dbus-marshal-validate: Add more comments indicating what is going on
authorSimon McVittie <smcv@collabora.com>
Mon, 12 Sep 2022 12:17:55 +0000 (13:17 +0100)
committerSimon McVittie <smcv@collabora.com>
Fri, 7 Oct 2022 13:15:45 +0000 (14:15 +0100)
Signed-off-by: Simon McVittie <smcv@collabora.com>
dbus/dbus-marshal-validate.c

index 28e622f76e5969984006195aa93aea5dc0f34695..c2f7030e1adb56d430248b033097dc701036e461 100644 (file)
@@ -368,10 +368,12 @@ validate_body_helper (DBusTypeReader       *reader,
 
       switch (current_type)
         {
+        /* Special case of fixed-length types: every byte is valid */
         case DBUS_TYPE_BYTE:
           ++p;
           break;
 
+        /* Multi-byte fixed-length types require padding to their alignment */
         case DBUS_TYPE_BOOLEAN:
         case DBUS_TYPE_INT16:
         case DBUS_TYPE_UINT16:
@@ -408,6 +410,7 @@ validate_body_helper (DBusTypeReader       *reader,
           p += alignment;
           break;
 
+        /* Types that start with a 4-byte length */
         case DBUS_TYPE_ARRAY:
         case DBUS_TYPE_STRING:
         case DBUS_TYPE_OBJECT_PATH:
@@ -430,6 +433,10 @@ validate_body_helper (DBusTypeReader       *reader,
             /* p may now be == end */
             _dbus_assert (p <= end);
 
+            /* Arrays have padding between the length and the first
+             * array item, if it's necessary for the array's element type.
+             * This padding is not counted as part of the length
+             * claimed_len. */
             if (current_type == DBUS_TYPE_ARRAY)
               {
                 int array_elem_type = _dbus_type_reader_get_element_type (reader);