From: Pádraig Brady Date: Sun, 19 Mar 2023 22:22:18 +0000 (+0000) Subject: stty: ensure arbitrary data is not displayed X-Git-Tag: v9.2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb745e3b95a79bdad98aaa9c4e753145f995c313;p=thirdparty%2Fcoreutils.git stty: ensure arbitrary data is not displayed * src/stty.c (main): Use static structures to ensure they're initialized (to zero), so that random data is not displayed, or compared resulting in a inaccurate failure reported to users. This was seen on musl libc where some parts of the termios c_cc array were not initialized by tcgetattr(). Reported by Bruno Haible. --- diff --git a/src/stty.c b/src/stty.c index fb7feefaba..607a4e7bb3 100644 --- a/src/stty.c +++ b/src/stty.c @@ -1290,7 +1290,9 @@ apply_settings (bool checking, char const *device_name, int main (int argc, char **argv) { - struct termios mode; + /* Initialize to all zeroes so there is no risk memcmp will report a + spurious difference in an uninitialized portion of the structure. */ + static struct termios mode; enum output_type output_type; int optc; @@ -1426,7 +1428,9 @@ main (int argc, char **argv) if (require_set_attr) { - struct termios new_mode; + /* Initialize to all zeroes so there is no risk memcmp will report a + spurious difference in an uninitialized portion of the structure. */ + static struct termios new_mode; if (tcsetattr (STDIN_FILENO, tcsetattr_options, &mode)) die (EXIT_FAILURE, errno, "%s", quotef (device_name));