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