David Zeuthen
79d32c2fc1
GDBusMessage: Fix bug when deserializing a message
...
See https://bugzilla.gnome.org/show_bug.cgi?id=621838 for the whole
story. The problem was that we ended up reading data from arrays of
arrays when we were just supposed to be aligning the buffers.
Also add a host of debug infrastructure that was needed to find the
root cause. For now it can be turned on only via defining
DEBUG_SERIALIZER. In the future we might want to make it work via
G_DBUS_DEBUG. In a nutshell, the added debug info looks like this
Parsing blob (blob_len = 0x0084 bytes)
0000: 6c 01 00 01 3c 00 00 00 41 00 00 00 37 00 00 00 l...<...A...7...
0010: 08 01 67 00 08 61 61 79 61 7b 73 76 7d 00 00 00 ..g..aaya{sv}...
0020: 01 01 6f 00 08 00 00 00 2f 66 6f 6f 2f 62 61 72 ..o...../foo/bar
0030: 00 00 00 00 00 00 00 00 03 01 73 00 06 00 00 00 ..........s.....
0040: 4d 65 6d 62 65 72 00 00 00 00 00 00 34 00 00 00 Member......4...
0050: 03 00 00 00 63 77 64 00 01 73 00 00 23 00 00 00 ....cwd..s..#...
0060: 2f 68 6f 6d 65 2f 64 61 76 69 64 7a 2f 48 61 63 /home/davidz/Hac
0070: 6b 69 6e 67 2f 67 6c 69 62 2f 67 69 6f 2f 74 65 king/glib/gio/te
0080: 73 74 73 00 sts.
Parsing headers (blob_len = 0x0084 bytes)
Reading type a{yv} from offset 0x000c: array spans 0x0037 bytes
Reading type {yv} from offset 0x0010
Reading type y from offset 0x0010: 0x08 '
Reading type v from offset 0x0011
Reading type g from offset 0x0014: 'aaya{sv}'
Reading type {yv} from offset 0x001e
Reading type y from offset 0x0020: 0x01 ''
Reading type v from offset 0x0021
Reading type o from offset 0x0024: '/foo/bar'
Reading type {yv} from offset 0x0031
Reading type y from offset 0x0038: 0x03 ''
Reading type v from offset 0x0039
Reading type s from offset 0x003c: 'Member'
Parsing body (blob_len = 0x0084 bytes)
Reading type (aaya{sv}) from offset 0x0047
Reading type aay from offset 0x0048: array spans 0x0000 bytes
Reading type a{sv} from offset 0x004c: array spans 0x0034 bytes
Reading type {sv} from offset 0x0050
Reading type s from offset 0x0050: 'cwd'
Reading type v from offset 0x0058
Reading type s from offset 0x005b: '/home/davidz/Hacking/glib/gio/tests'
OK
Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-06-17 18:01:32 -04:00
..
2010-01-12 16:34:23 +01:00
2010-05-28 16:58:56 +08:00
2010-06-10 13:35:25 -04:00
2010-06-09 10:32:12 +02:00
2010-02-21 15:55:10 -05:00
2010-06-17 18:01:32 -04:00
2009-11-29 22:54:16 -05:00
2009-11-17 20:44:10 +01:00
2010-05-17 07:16:37 -04:00
2010-05-11 06:17:25 +02:00
2009-03-31 19:39:16 -04:00
2010-06-10 14:03:02 -04:00
2009-11-29 22:54:16 -05:00
2010-06-17 16:36:58 -04:00
2010-06-17 16:07:52 -04:00
2010-04-23 12:25:56 -04:00
2010-04-23 12:25:56 -04:00
2010-04-21 02:32:43 +02:00
2009-05-14 15:44:36 +02:00
2010-01-02 19:53:02 -05:00
2008-09-02 19:05:58 +00:00
2009-09-07 03:07:22 -04:00
2008-09-02 19:05:58 +00:00
2009-09-18 19:20:06 -04:00
2008-09-02 17:30:02 +00:00
2010-05-03 12:08:14 -04:00
2009-08-19 11:02:05 +02:00
2010-05-06 17:42:09 +02:00
2010-02-21 16:12:35 -05:00
2010-02-15 10:13:10 +01:00
2008-09-02 19:05:58 +00:00
2007-11-26 16:13:05 +00:00
2010-04-21 02:32:43 +02:00
2010-03-26 09:30:25 -04:00
2010-06-11 09:59:56 +02:00
2009-11-29 22:54:16 -05:00
2010-06-11 09:59:56 +02:00
2009-11-29 22:54:16 -05:00
2010-05-18 23:45:54 +02:00
2010-06-06 16:20:21 -04:00
2010-03-23 10:01:53 -05:00
2009-01-28 16:39:39 +00:00
2008-06-22 15:10:51 +00:00
2008-09-02 19:05:58 +00:00
2010-05-06 14:21:32 -04:00
2010-06-14 00:02:57 +02:00
2010-06-04 01:35:23 +02:00
2010-06-06 16:20:21 -04:00
2010-06-16 11:13:43 -04:00
2010-05-20 10:53:08 -04:00
2010-05-09 13:14:55 -04:00
2010-05-09 22:13:18 -04:00
2010-05-09 13:14:55 -04:00
2010-05-09 13:14:55 -04:00
2010-05-09 13:14:55 -04:00
2010-05-20 10:53:08 -04:00
2010-05-09 13:14:55 -04:00
2010-05-20 10:53:08 -04:00
2010-05-09 13:14:55 -04:00
2010-05-13 16:20:31 -04:00
2010-06-06 16:20:21 -04:00
2010-06-11 18:21:27 -04:00
2010-06-07 13:48:42 -04:00
2010-05-10 11:47:08 -04:00
2010-06-06 16:20:21 -04:00
2010-05-17 19:52:09 -04:00
2010-06-06 16:20:21 -04:00
2010-06-17 18:01:32 -04:00
2010-06-06 16:20:21 -04:00
2010-06-08 17:41:47 +02:00
2010-06-06 16:20:21 -04:00
2010-06-10 18:29:23 +02:00
2010-06-10 18:29:23 +02:00
2010-06-10 18:29:23 +02:00
2010-06-10 18:29:23 +02:00
2010-06-17 18:01:32 -04:00
2010-06-17 18:01:32 -04:00
2010-06-17 15:27:18 -04:00
2010-06-11 18:21:27 -04:00
2010-05-20 10:53:08 -04:00
2010-06-06 16:20:21 -04:00
2010-05-13 17:44:42 -04:00
2010-06-06 16:20:21 -04:00
2010-06-05 00:10:05 +02:00
2010-05-17 07:16:37 -04:00
2010-06-10 14:03:02 -04:00
2010-03-14 15:45:46 -04:00
2010-06-10 14:03:02 -04:00
2009-07-05 21:59:38 -04:00
2009-11-29 22:54:16 -05:00
2008-09-02 19:05:58 +00:00
2009-06-15 00:45:55 -04:00
2008-09-02 19:05:58 +00:00
2009-02-27 18:19:05 +00:00
2008-09-02 19:05:58 +00:00
2010-06-10 14:03:02 -04:00
2009-11-17 20:27:38 -06:00
2009-06-23 16:35:41 +02:00
2009-10-13 16:21:42 +02:00
2008-10-06 21:59:29 +00:00
2010-05-08 23:28:17 -04:00
2010-02-23 16:23:07 -08:00
2010-06-10 14:03:02 -04:00
2008-09-02 19:05:58 +00:00
2009-04-22 16:11:38 +02:00
2008-09-02 19:05:58 +00:00
2010-03-08 12:03:40 +01:00
2010-06-10 14:03:02 -04:00
2010-05-03 20:13:35 +02:00
2009-05-25 15:46:35 +02:00
2009-03-03 15:50:13 +00:00
2009-05-25 15:46:35 +02:00
2009-05-13 14:42:46 +02:00
2009-07-01 09:02:46 -04:00
2008-09-02 19:05:58 +00:00
2010-06-10 14:03:02 -04:00
2008-09-02 19:05:58 +00:00
2009-05-25 15:46:35 +02:00
2009-03-03 15:50:13 +00:00
2010-06-10 14:03:02 -04:00
2009-01-21 14:09:56 +00:00
2010-06-10 14:03:02 -04:00
2009-01-21 14:09:56 +00:00
2009-12-01 10:44:42 +01:00
2008-10-21 11:51:48 +00:00
2009-05-27 18:20:08 -04:00
2009-05-25 11:33:56 +02:00
2009-08-17 13:20:49 -04:00
2009-04-22 08:36:10 -04:00
2010-04-21 02:32:43 +02:00
2009-05-27 18:20:08 -04:00
2009-09-18 19:20:06 -04:00
2008-09-02 19:05:58 +00:00
2010-06-17 21:41:09 +02:00
2010-01-12 16:34:18 +01:00
2010-06-11 18:21:27 -04:00
2010-02-04 00:37:13 +02:00
2010-06-17 14:05:40 -04:00
2010-06-11 18:21:27 -04:00
2007-12-01 23:49:34 +00:00
2008-06-23 12:06:39 +00:00
2010-04-19 11:54:56 +03:00
2010-04-19 11:54:56 +03:00
2009-02-27 15:22:11 +00:00
2010-04-18 15:55:14 -04:00
2010-03-26 11:05:02 -04:00
2009-07-01 09:02:46 -04:00
2008-09-02 19:05:58 +00:00
2009-09-18 19:20:06 -04:00
2009-05-13 14:42:38 +02:00
2010-06-16 18:49:20 -04:00
2010-06-17 14:05:40 -04:00
2010-04-16 23:57:26 -04:00
2009-12-01 10:44:42 +01:00
2008-09-02 19:05:58 +00:00
2009-11-29 22:54:16 -05:00
2009-06-15 12:26:57 +02:00
2010-03-30 19:22:39 +03:00
2008-09-02 19:05:58 +00:00
2009-06-23 16:35:42 +02:00
2008-09-02 19:05:58 +00:00
2010-03-30 19:22:39 +03:00
2009-06-23 16:35:42 +02:00
2010-05-20 10:53:08 -04:00
2009-05-13 14:42:57 +02:00
2010-05-20 10:53:08 -04:00
2009-05-13 14:42:57 +02:00
2010-02-18 15:50:26 +01:00
2010-02-18 15:50:26 +01:00
2010-05-20 10:53:08 -04:00
2010-05-20 10:53:08 -04:00
2009-03-03 19:02:16 +00:00
2008-09-02 19:05:58 +00:00
2008-07-01 06:32:35 +00:00
2008-09-02 19:05:58 +00:00
2010-03-08 00:12:33 -05:00
2010-01-06 17:37:11 -05:00
2010-06-05 00:10:05 +02:00
2010-04-17 01:26:34 -04:00
2009-12-01 10:44:42 +01:00
2009-11-26 16:12:18 +01:00
2009-07-05 21:59:38 -04:00
2009-07-05 21:59:38 -04:00
2007-12-17 16:00:33 +00:00
2010-03-04 11:02:31 +01:00
2010-03-04 11:02:31 +01:00
2009-09-11 15:25:34 +01:00
2009-05-27 18:20:08 -04:00
2010-04-23 13:54:02 -04:00
2009-05-28 00:30:21 -04:00
2009-04-22 08:36:38 -04:00
2010-06-16 11:13:43 -04:00
2010-06-05 00:10:05 +02:00
2010-04-15 18:22:14 -04:00
2010-06-10 14:03:02 -04:00
2009-11-23 16:22:52 +01:00
2010-06-06 21:15:42 +02:00
2010-06-04 19:03:38 +02:00
2008-07-01 06:32:35 +00:00
2008-09-02 19:05:58 +00:00
2009-12-18 10:26:09 +01:00
2009-08-19 12:08:15 -04:00
2010-06-17 00:03:44 -04:00
2010-04-25 20:06:13 -05:00
2009-12-01 10:44:42 +01:00
2008-09-02 19:05:58 +00:00
2010-06-16 18:17:53 -04:00
2010-04-16 23:23:40 -04:00
2010-04-20 23:40:22 -04:00
2010-06-17 16:56:53 -04:00
2010-06-17 15:08:37 -04:00
2010-06-17 16:56:53 -04:00
2010-06-17 15:06:33 -04:00
2010-06-17 15:06:33 -04:00
2010-06-17 14:05:40 -04:00
2010-06-16 18:17:53 -04:00
2010-06-16 18:17:53 -04:00
2010-01-24 20:50:51 -05:00
2009-09-11 15:20:34 +01:00
2010-06-06 14:24:14 -04:00
2010-06-04 22:35:14 +02:00
2010-05-06 17:42:09 +02:00
2010-04-23 12:31:31 -04:00
2010-04-22 11:54:41 -04:00
2009-05-18 21:31:28 +02:00
2009-05-27 18:20:08 -04:00
2009-05-27 18:20:08 -04:00
2009-07-23 16:27:01 -04:00
2009-06-12 15:57:51 +02:00
2010-04-21 02:32:43 +02:00
2009-05-27 18:20:08 -04:00
2009-06-08 15:30:28 +02:00
2009-05-27 18:20:08 -04:00
2009-06-01 14:21:05 -04:00
2009-05-15 10:28:30 +02:00
2009-07-01 09:02:46 -04:00
2009-05-15 21:26:24 +02:00
2009-11-19 10:19:01 -06:00
2009-11-19 10:04:27 -06:00
2009-07-01 09:02:46 -04:00
2009-05-15 21:26:24 +02:00
2009-08-18 11:34:20 +02:00
2009-05-27 18:20:08 -04:00
2009-06-01 14:31:48 -04:00
2009-04-22 08:36:32 -04:00
2009-07-30 11:18:35 -04:00
2009-05-20 11:19:47 +02:00
2009-09-07 03:14:15 -04:00
2009-06-01 22:10:41 +02:00
2009-07-23 16:27:01 -04:00
2009-04-22 08:36:32 -04:00
2009-06-15 15:56:45 +02:00
2009-05-18 08:47:49 +02:00
2009-11-29 22:54:16 -05:00
2008-09-02 19:05:58 +00:00
2010-06-17 16:07:52 -04:00
2010-05-13 14:29:39 -04:00
2010-05-15 18:16:51 -04:00
2010-05-06 16:02:08 -04:00
2010-05-08 23:28:17 -04:00
2010-05-13 20:29:04 -04:00
2010-05-13 23:08:34 -04:00
2010-05-13 20:29:04 -04:00
2010-05-08 23:28:17 -04:00
2008-12-08 05:41:43 +00:00
2009-07-01 09:02:46 -04:00
2008-09-02 19:05:58 +00:00
2010-06-15 21:57:57 -04:00
2008-09-02 19:05:58 +00:00
2010-05-08 23:28:17 -04:00
2008-12-08 05:41:43 +00:00
2009-08-19 12:08:15 -04:00
2009-04-22 08:36:32 -04:00
2010-05-08 23:28:17 -04:00
2010-04-22 11:54:41 -04:00
2009-11-29 22:54:16 -05:00
2008-09-02 19:05:58 +00:00
2009-11-29 22:54:16 -05:00
2008-09-02 19:05:58 +00:00
2008-07-21 02:19:56 +00:00
2009-07-05 22:35:55 -04:00
2010-06-10 14:03:02 -04:00
2009-07-05 21:59:38 -04:00
2010-06-10 14:03:02 -04:00
2009-06-15 10:59:43 -04:00
2008-09-26 19:57:36 +00:00
2008-09-02 19:05:58 +00:00
2010-04-19 11:54:56 +03:00
2010-04-19 11:54:56 +03:00
2009-11-29 22:54:16 -05:00
2008-09-02 19:05:58 +00:00
2010-04-19 11:54:56 +03:00
2010-04-19 11:54:56 +03:00
2010-03-03 08:35:32 -05:00
2009-04-22 08:36:32 -04:00
2009-11-29 22:54:16 -05:00
2008-09-02 19:05:58 +00:00
2010-05-06 17:42:09 +02:00
2010-02-21 16:12:35 -05:00
2010-05-06 17:42:09 +02:00
2010-02-21 16:12:35 -05:00
2010-06-16 18:17:53 -04:00
2009-05-30 15:29:23 +02:00
2008-05-05 15:12:13 +00:00
2010-06-10 18:29:23 +02:00
2010-06-17 00:03:44 -04:00