diff options
Diffstat (limited to 'networking/telnet.c')
-rw-r--r-- | networking/telnet.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/networking/telnet.c b/networking/telnet.c index caca89d2d..a634d7a2b 100644 --- a/networking/telnet.c +++ b/networking/telnet.c | |||
@@ -52,7 +52,6 @@ enum { | |||
52 | 52 | ||
53 | typedef unsigned char byte; | 53 | typedef unsigned char byte; |
54 | 54 | ||
55 | |||
56 | struct globals { | 55 | struct globals { |
57 | int netfd; /* console fd:s are 0 and 1 (and 2) */ | 56 | int netfd; /* console fd:s are 0 and 1 (and 2) */ |
58 | short iaclen; /* could even use byte */ | 57 | short iaclen; /* could even use byte */ |
@@ -78,9 +77,13 @@ struct globals { | |||
78 | struct termios termios_def; | 77 | struct termios termios_def; |
79 | struct termios termios_raw; | 78 | struct termios termios_raw; |
80 | }; | 79 | }; |
81 | |||
82 | #define G (*(struct globals*)&bb_common_bufsiz1) | 80 | #define G (*(struct globals*)&bb_common_bufsiz1) |
83 | 81 | void BUG_telnet_globals_too_big(void); | |
82 | #define INIT_G() do { \ | ||
83 | if (sizeof(G) > COMMON_BUFSIZE) \ | ||
84 | BUG_telnet_globals_too_big(); \ | ||
85 | /* memset(&G, 0, sizeof G); - already is */ \ | ||
86 | } while (0) | ||
84 | 87 | ||
85 | /* Function prototypes */ | 88 | /* Function prototypes */ |
86 | static void rawmode(void); | 89 | static void rawmode(void); |
@@ -547,8 +550,6 @@ static void cookmode(void) | |||
547 | tcsetattr(0, TCSADRAIN, &G.termios_def); | 550 | tcsetattr(0, TCSADRAIN, &G.termios_def); |
548 | } | 551 | } |
549 | 552 | ||
550 | void BUG_telnet_globals_too_big(void); | ||
551 | |||
552 | int telnet_main(int argc, char** argv); | 553 | int telnet_main(int argc, char** argv); |
553 | int telnet_main(int argc, char** argv) | 554 | int telnet_main(int argc, char** argv) |
554 | { | 555 | { |
@@ -562,9 +563,7 @@ int telnet_main(int argc, char** argv) | |||
562 | int maxfd; | 563 | int maxfd; |
563 | #endif | 564 | #endif |
564 | 565 | ||
565 | if (sizeof(G) > sizeof(bb_common_bufsiz1)) | 566 | INIT_G(); |
566 | BUG_telnet_globals_too_big(); | ||
567 | /* memset(&G, 0, sizeof G); - already is */ | ||
568 | 567 | ||
569 | #if ENABLE_FEATURE_AUTOWIDTH | 568 | #if ENABLE_FEATURE_AUTOWIDTH |
570 | get_terminal_width_height(0, &G.win_width, &G.win_height); | 569 | get_terminal_width_height(0, &G.win_width, &G.win_height); |