gvariant: fix recursing into empty array 80/175480/1
authorAdrian Szyndela <adrian.s@samsung.com>
Tue, 10 Apr 2018 13:58:13 +0000 (15:58 +0200)
committerAdrian Szyndela <adrian.s@samsung.com>
Tue, 10 Apr 2018 14:07:07 +0000 (16:07 +0200)
commit89fb5a0c39eeec601950444aa1abdcfe2950d36b
tree816032fcb1fb37bdcf713e83fb031cd99481141f
parent4439b7fba28f64ba323fe2cbe1625c43c86779f3
gvariant: fix recursing into empty array

In GVariant, arrays of variable size values have offsets at the end.
We need to know how many offsets are in an array when we recurse
into it. To count the offsets we need to have offsets size and
the start and end of the offsets. The start of the offsets
is computed from the value of the last offset.

On the other hand, empty arrays have size equal to zero. In other words,
they have no offsets. Function _dbus_reader_count_array_elems missed it.

This commit fixes _dbus_reader_count_array_elems() by ensuring returning 0
when an array is empty.

Change-Id: I5f93ea89e490b321b2c2528e7bae838a1af0ec75
dbus/dbus-marshal-gvariant.c