From: Denys Vlasenko Date: Sat, 3 Apr 2010 12:59:12 +0000 (+0200) Subject: ftpd: shrink by 33 bytes X-Git-Tag: 1_17_0~326 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4a1884da5322dc9b6fec2b461fe0e8ca6425178a;p=oweals%2Fbusybox.git ftpd: shrink by 33 bytes Signed-off-by: Denys Vlasenko --- diff --git a/networking/ftpd.c b/networking/ftpd.c index 7605d48f3..375cc0ca5 100644 --- a/networking/ftpd.c +++ b/networking/ftpd.c @@ -981,17 +981,23 @@ handle_stou(void) static uint32_t cmdio_get_cmd_and_arg(void) { - size_t len; + int len; uint32_t cmdval; char *cmd; alarm(G.timeout); free(G.ftp_cmd); - len = 8 * 1024; /* Paranoia. Peer may send 1 gigabyte long cmd... */ - G.ftp_cmd = cmd = xmalloc_fgets_str_len(stdin, "\r\n", &len); - if (!cmd) - exit(0); + { + /* Paranoia. Peer may send 1 gigabyte long cmd... */ + /* Using separate len_on_stk instead of len optimizes + * code size (allows len to be in CPU register) */ + size_t len_on_stk = 8 * 1024; + G.ftp_cmd = cmd = xmalloc_fgets_str_len(stdin, "\r\n", &len_on_stk); + if (!cmd) + exit(0); + len = len_on_stk; + } /* De-escape telnet: 0xff,0xff => 0xff */ /* RFC959 says that ABOR, STAT, QUIT may be sent even during