wget: code shrink
authorDenys Vlasenko <vda.linux@googlemail.com>
Sat, 24 Nov 2018 20:56:21 +0000 (21:56 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 24 Nov 2018 20:56:21 +0000 (21:56 +0100)
function                                             old     new   delta
base64enc                                             53      46      -7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/wget.c

index 44c481a992cf0c4feafb609d49d399094c650f5d..58a51d9fff154db83c36794fe100ba0f15df2f40 100644 (file)
@@ -233,20 +233,19 @@ struct globals {
        char *fname_out;        /* where to direct output (-O) */
        const char *proxy_flag; /* Use proxies if env vars are set */
        const char *user_agent; /* "User-Agent" header field */
+       int output_fd;
+       int o_flags;
 #if ENABLE_FEATURE_WGET_TIMEOUT
        unsigned timeout_seconds;
-       bool die_if_timed_out;
+       smallint die_if_timed_out;
 #endif
-       int output_fd;
-       int o_flags;
        smallint chunked;         /* chunked transfer encoding */
        smallint got_clen;        /* got content-length: from server  */
        /* Local downloads do benefit from big buffer.
         * With 512 byte buffer, it was measured to be
         * an order of magnitude slower than with big one.
         */
-       uint64_t just_to_align_next_member;
-       char wget_buf[CONFIG_FEATURE_COPYBUF_KB*1024];
+       char wget_buf[CONFIG_FEATURE_COPYBUF_KB*1024] ALIGNED(sizeof(long));
 } FIX_ALIASING;
 #define G (*ptr_to_globals)
 #define INIT_G() do { \
@@ -349,9 +348,8 @@ static void strip_ipv6_scope_id(char *host)
 /* Base64-encode character string. */
 static char *base64enc(const char *str)
 {
-       unsigned len = strlen(str);
-       if (len > sizeof(G.wget_buf)/4*3 - 10) /* paranoia */
-               len = sizeof(G.wget_buf)/4*3 - 10;
+       /* paranoia */
+       unsigned len = strnlen(str, sizeof(G.wget_buf)/4*3 - 10);
        bb_uuencode(G.wget_buf, str, len, bb_uuenc_tbl_base64);
        return G.wget_buf;
 }