I get the following errors when trying to build xen-4.14.0-rc4

kdd.c: In function 'kdd_tx':
kdd.c:754:15: error: array subscript 16 is above array bounds of 'uint8_t[16]' 
{aka 'unsigned char[16]'} [-Werror=array-bounds]
  754 |         s->txb[len++] = 0xaa;
      |         ~~~~~~^~~~~~~
kdd.c:82:17: note: while referencing 'txb'
   82 |         uint8_t txb[sizeof (kdd_hdr)];           /* Marshalling area 
for tx */
      |                 ^~~
kdd.c: In function 'kdd_break':
kdd.c:819:19: error: array subscript 16 is above array bounds of 'uint8_t[16]' 
{aka 'unsigned char[16]'} [-Werror=array-bounds]
  819 |             s->txb[sizeof (kdd_hdr) + i] = i;
      |             ~~~~~~^~~~~~~~~~~~~~~~~~~~~~
kdd.c:82:17: note: while referencing 'txb'
   82 |         uint8_t txb[sizeof (kdd_hdr)];           /* Marshalling area 
for tx */
      |                 ^~~
In file included from /usr/include/stdio.h:867,
                 from kdd.c:36:
In function 'vsnprintf',
    inlined from 'kdd_send_string' at kdd.c:791:11:
/usr/include/bits/stdio2.h:80:10: error: '__builtin___vsnprintf_chk' specified 
bound 65519 exceeds destination size 0 [-Werror=stringop-overflow=]
   80 |   return __builtin___vsnprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   81 |         __bos (__s), __fmt, __ap);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[4]: *** 
[/builddir/build/BUILD/xen-4.14.0-rc4/tools/debugger/kdd/../../../tools/Rules.mk:216:
 kdd.o] Error 1

The first two array-bounds errors seem to be a result of the

kdd: stop using [0] arrays to access packet contents

patch at 
http://xenbits.xenproject.org/gitweb/?p=xen.git;a=commit;h=3471cafbdda35eacf04670881dd2aee2558b4f08

which reduced the size of txb from
sizeof (kdd_hdr) + 65536
to
sizeof (kdd_hdr)
which means the code now tries to write beyond the end of txb in both cases.

        Michael Young

Reply via email to