Avoid stringop-truncation errors
authorTom Tromey <tromey@adacore.com>
Fri, 20 Mar 2020 13:30:13 +0000 (07:30 -0600)
committerTom Tromey <tromey@adacore.com>
Fri, 20 Mar 2020 14:31:17 +0000 (08:31 -0600)
commitf67210ff1c4200ea668189d086c6b39145cd876f
tree8eade1f1e0acf3beb6782761f22b53223bd10bcc
parent1773be9ea2207d42442222e6dc3c8fdbe638e28e
Avoid stringop-truncation errors

I configured with -fsanitize=address and built gdb.  linux-tdep.c and
ada-tasks.c failed to build due to some stringop-truncation errors,
e.g.:

In function ‘char* strncpy(char*, const char*, size_t)’,
    inlined from ‘int linux_fill_prpsinfo(elf_internal_linux_prpsinfo*)’ at ../../binutils-gdb/gdb/linux-tdep.c:1742:11,
    inlined from ‘char* linux_make_corefile_notes(gdbarch*, bfd*, int*)’ at ../../binutils-gdb/gdb/linux-tdep.c:1878:27:
/usr/include/bits/string_fortified.h:106:34: error: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ specified bound 81 equals destination size [-Werror=stringop-truncation]

This patch fixes the problem by using "sizeof - 1" in the call to
strndup, as recommended in the GCC manual.  This doesn't make a
difference here because the next line, in all cases, sets the final
element to '\0' anyway.

gdb/ChangeLog
2020-03-20  Tom Tromey  <tromey@adacore.com>

* ada-tasks.c (read_atcb): Use smaller length in strncpy call.
* linux-tdep.c (linux_fill_prpsinfo): Use smaller length in
strncpy call.
gdb/ChangeLog
gdb/ada-tasks.c
gdb/linux-tdep.c