summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-02-22 06:30:26 -0800
committerKaz Kylheku <kaz@kylheku.com>2022-02-22 06:30:26 -0800
commit03c30c68162589c6042952c0b5d2a68ec1c6275c (patch)
treeb598b1328736bd5b4387a8c8029034d970375e11
parenta8ac62ae6e9dd4aa7475d8d81ce80973d25d706e (diff)
downloadtxr-03c30c68162589c6042952c0b5d2a68ec1c6275c.tar.gz
txr-03c30c68162589c6042952c0b5d2a68ec1c6275c.tar.bz2
txr-03c30c68162589c6042952c0b5d2a68ec1c6275c.zip
termios: overflow in initialization on 32 bits.
* termios.c (termios_init): The CMSPAR and CRTSCTS constants cannot be passed to num_fast; they are out of range, and so the corresponding cmspar and crtscts variables will end up with garbage values.
-rw-r--r--termios.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/termios.c b/termios.c
index 818eea47..c717fa76 100644
--- a/termios.c
+++ b/termios.c
@@ -552,10 +552,10 @@ void termios_init(void)
reg_varl(intern(lit("cbaudex"), user_package), num_fast(CBAUDEX));
#endif
#ifdef CMSPAR
- reg_varl(intern(lit("cmspar"), user_package), num_fast(CMSPAR));
+ reg_varl(intern(lit("cmspar"), user_package), num(CMSPAR));
#endif
#ifdef CRTSCTS
- reg_varl(intern(lit("crtscts"), user_package), num_fast(CRTSCTS));
+ reg_varl(intern(lit("crtscts"), user_package), num(CRTSCTS));
#endif
/* lflag bits */
reg_varl(intern(lit("isig"), user_package), num_fast(ISIG));