Filter invalid encodings from Linux thread names
authorTom Tromey <tom@tromey.com>
Thu, 13 Jul 2023 23:28:48 +0000 (17:28 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 14 Nov 2023 16:02:46 +0000 (09:02 -0700)
commit07b3255c3bae7126a0d679f957788560351eb236
tree8348461b66c3c9da6781126b48808bfe4c924c7b
parent5006ea556dad71c4c868cf5705e007e72e3b02b4
Filter invalid encodings from Linux thread names

On Linux, a thread can only be 16 bytes (including the trailing \0).
A user sent in a test case where this causes a truncated UTF-8
sequence, causing gdbserver to create invalid XML.

I went back and forth about different ways to solve this, and in the
end decided to fix it in gdbserver, with the reason being that it
seems important to generate correct XML for the <thread> response.

I am not totally sure whether the call to setlocale could have
unplanned consequences.  This is needed, though, for nl_langinfo to
return the correct result.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30618
gdbserver/linux-low.cc
gdbserver/server.cc