gdb/nat/linux-osdata.c: fix build on gcc-12 (string overfow)
authorSergei Trofimovich <siarheit@google.com>
Sun, 14 Nov 2021 15:50:01 +0000 (15:50 +0000)
committerSergei Trofimovich <siarheit@google.com>
Wed, 17 Nov 2021 08:13:18 +0000 (08:13 +0000)
commit486f9e20e037f1eea2dce98dc393db60df5feef3
treea424b4616427e24c0f6466f744bfe51b97fd4235
parentaa95b2d43883666937d31335d0178d2218d9c9aa
gdb/nat/linux-osdata.c: fix build on gcc-12 (string overfow)

On gcc-12 build fails as:

    ../../gdbserver/../gdb/nat/linux-osdata.c: In function 'void linux_xfer_osdata_processes(buffer*)':
    ../../gdbserver/../gdb/nat/linux-osdata.c:330:39: error:
      '__builtin___sprintf_chk' may write a terminating nul past the end of the destination [-Werror=format-overflow=]
      330 |                 sprintf (core_str, "%d", i);
          |                                       ^

It's an off-by-one case in an infeasible scenario for negative
huge core count. The change switches to std::string for memory
handling.

Tested by running 'info os processes' and checking CPU cores column.
gdb/nat/linux-osdata.c