dbus failing make check during marshal-validate tests
John (J5) Palmieri
johnp at redhat.com
Mon Apr 11 15:58:21 PDT 2005
Ok, got gdb to behave. On one of the iterations through the tests this
piece of code is executed in
dbus-marshal-validate.c:validate_body_helper ()
dbus_uint32_t claimed_len;
a = _DBUS_ALIGN_ADDRESS (p, 4);
if (a + 4 > end)
return DBUS_INVALID_NOT_ENOUGH_DATA;
while (p != a)
{
if (*p != '\0')
return DBUS_INVALID_ALIGNMENT_PADDING_NOT_NUL;
++p;
}
claimed_len = _dbus_unpack_uint32 (byte_order, p);
p += 4;
.
.
.
_dbus_string_init_const_len (&str, p, claimed_len);
if (!_dbus_string_validate_utf8 (&str, 0,
_dbus_string_get_length (&str)))
* str.str = "o.z.F" but claimed_len = 6
* claimed_len should = 5 since it is setting str.len which is defined as
the length of the string without the Nul
I'm investigating this further but thought I would post just in case
someone knew what was going on right off the bat.
On Mon, 2005-04-11 at 15:21 -0400, John (J5) Palmieri wrote:
> It looks like we are getting invalid utf8 errors during one of the
> tests. I have been trying to debug this but gdb is not being friendly
> to me at the moment even with -O0 -ggdb. Not sure if this is a bug in
> dbus or in the test suite. Below is the output of dbus-test with
> DBUS_VERBOSE turned on. The failure is happening around line 292 in
> dbus/dbus-marshal-validate.c.
>
> dbus-test: running marshal-validate tests
> 18941: validating body from pos 0 len 2 sig 'n'
> 18941: validating body from pos 0 len 2 sig 'q'
> 18941: validating body from pos 0 len 4 sig 'i'
> 18941: validating body from pos 0 len 4 sig 'u'
> 18941: validating body from pos 0 len 8 sig 'x'
> 18941: validating body from pos 0 len 8 sig 't'
> 18941: validating body from pos 0 len 4 sig 'b'
> 18941: validating body from pos 0 len 1 sig 'y'
> 18941: validating body from pos 0 len 8 sig 'd'
> 18941: validating body from pos 0 len 5 sig 's'
> 18941: validating body from pos 0 len 6 sig 's'
> 18941: validating body from pos 0 len 8 sig 's'
> 18941: validating body from pos 0 len 13 sig 's'
> 18941: validating body from pos 0 len 6 sig 'o'
> 18941: validating body from pos 0 len 6 sig 'g'
> 18941: p = 0x84c0a16 end = 0x84c0a16 claimed_len 4
> 18941: validating body from pos 0 len 2 sig '(n)'
> 18941: validating body from pos 0 len 2 sig '(q)'
> 18941: validating body from pos 0 len 4 sig '(i)'
> 18941: validating body from pos 0 len 4 sig '(u)'
> 18941: validating body from pos 0 len 8 sig '(x)'
> 18941: validating body from pos 0 len 8 sig '(t)'
> 18941: validating body from pos 0 len 4 sig '(b)'
> 18941: validating body from pos 0 len 1 sig '(y)'
> 18941: validating body from pos 0 len 8 sig '(d)'
> 18941: validating body from pos 0 len 5 sig '(s)'
> 18941: validating body from pos 0 len 6 sig '(s)'
> 18941: validating body from pos 0 len 8 sig '(s)'
> 18941: validating body from pos 0 len 13 sig '(s)'
> 18941: validating body from pos 0 len 6 sig '(o)'
> 18941: validating body from pos 0 len 6 sig '(g)'
> 18941: p = 0x84c0a16 end = 0x84c0a16 claimed_len 4
> 18941: validating body from pos 0 len 6 sig 'an'
> 18941: validating body from pos 0 len 6 sig 'aq'
> 18941: validating body from pos 0 len 8 sig 'ai'
> 18941: validating body from pos 0 len 8 sig 'au'
> 18941: validating body from pos 0 len 16 sig 'ax'
> 18941: validating body from pos 0 len 16 sig 'at'
> 18941: validating body from pos 0 len 8 sig 'ab'
> 18941: validating body from pos 0 len 5 sig 'ay'
> 18941: validating body from pos 0 len 16 sig 'ad'
> 18941: validating body from pos 0 len 9 sig 'as'
> 18941: validating body from pos 0 len 10 sig 'as'
> 18941: validating body from pos 0 len 12 sig 'as'
> 18941: validating body from pos 0 len 17 sig 'as'
> 18941: validating body from pos 0 len 10 sig 'ao'
> 18941: validating body from pos 0 len 10 sig 'ag'
> 18941: p = 0x84c0a1a end = 0x84c0a1a claimed_len 4
> 18941: validating body from pos 0 len 4 sig '(nn)'
> 18941: validating body from pos 0 len 4 sig '(qq)'
> 18941: validating body from pos 0 len 8 sig '(ii)'
> 18941: validating body from pos 0 len 8 sig '(uu)'
> 18941: validating body from pos 0 len 16 sig '(xx)'
> 18941: validating body from pos 0 len 16 sig '(tt)'
> 18941: validating body from pos 0 len 8 sig '(bb)'
> 18941: validating body from pos 0 len 2 sig '(yy)'
> 18941: validating body from pos 0 len 16 sig '(dd)'
> 18941: validating body from pos 0 len 15 sig '(ss)'
> 18941: validating body from pos 0 len 16 sig '(ss)'
> 18941: validating body from pos 0 len 18 sig '(ss)'
> 18941: validating body from pos 0 len 42 sig '(ss)'
> invalid code 39 expected valid on sequence 57 little endian
> 18941: 0 0x84c0b40: '(' 's' 's' ')' BE: 678654761 LE:
> 695431976
> 18941:
> 18941: 0 0x84c1158: 0x08 0x00 0x00 0x00 BE: 134217728 LE: 8
> 18941: 4 0x84c115c: 'A' 'B' 'C' 'D' BE: 1094861636 LE:
> 1145258561 u64: 0x4443424100000008 dbl: 7.10524e+20
> 18941: 8 0x84c1160: 'E' 'F' 'G' 'H' BE: 1162233672 LE:
> 1212630597
> 18941: 12 0x84c1164: 0x00 0x00 0x00 0x00 BE: 0 LE: 0 u64:
> 0x48474645 dbl: 5.99119e-315
> 18941: 16 0x84c1168: 0x15 0x00 0x00 0x00 BE: 352321536 LE: 21
> 18941: 20 0x84c116c: 0xd4 '4' 0xbf 0xbf BE: -734740545 LE:
> -1077988140 u64: 0xbfbf34d400000015 dbl: -0.1219
> 18941: 24 0x84c1170: 0xf0 0x0b 'L' 0x08 BE: -267695096 LE:
> 139201520
> 18941: 28 0x84c1174: '8' '4' 0xbf 0xbf BE: 942981055 LE:
> -1077988296 u64: 0xbfbf3438084c0bf0 dbl: -0.121891
> 18941: 32 0x84c1178: 0xb4 0x1e 0x05 0x08 BE: -1273101048 LE:
> 134553268
> 18941: 36 0x84c117c: 'h' '5' 0xbf 0xbf BE: 1748352959 LE:
> -1077987992 u64: 0xbfbf356808051eb4 dbl: -0.121909
> 18941: 40 0x84c1180: 0x0d 0x00
> File "dbus-marshal-validate-util.c" line 542 process 18941 should not
> have been reached: test failed
>
> --
> John (J5) Palmieri
> Associate Software Engineer
> Desktop Group
> Red Hat, Inc.
> Blog: http://martianrock.com
>
--
John (J5) Palmieri
Associate Software Engineer
Desktop Group
Red Hat, Inc.
Blog: http://martianrock.com
More information about the dbus
mailing list