From 2c0e2b0afa06c675a79239b49b92085daff4c7af Mon Sep 17 00:00:00 2001 From: hniksic Date: Tue, 27 Jan 2004 17:02:26 -0800 Subject: [PATCH] [svn] Fixes by Christian Biere: * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY was undefined. * ftp.c (ftp_loop_internal): Allocate a larger buffer in case "try" gets translated to something large. Ditto in http_loop in http.c. * http.c (response_header_copy): Don't write to buf[BUFSIZE]. * ftp-opie.c (skey_response): Eliminate unnecessary string concatenation; just call gen_md5_update twice. --- src/ChangeLog | 14 ++++++++++++++ src/ftp-opie.c | 21 +++++++-------------- src/ftp.c | 2 +- src/http.c | 6 +++--- src/progress.c | 2 -- 5 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 05824376..b44e5c41 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,17 @@ +2004-01-28 Christian Biere + + * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY + was undefined. + + * ftp.c (ftp_loop_internal): Allocate a larger buffer in case + "try" gets translated to something large. Ditto in http_loop in + http.c. + + * http.c (response_header_copy): Don't write to buf[BUFSIZE]. + + * ftp-opie.c (skey_response): Eliminate unnecessary string + concatenation; just call gen_md5_update twice. + 2004-01-25 Hrvoje Niksic * utils.c (xsleep): Don't call usleep with values larger than diff --git a/src/ftp-opie.c b/src/ftp-opie.c index 9c4a1ea5..c32bcf05 100644 --- a/src/ftp-opie.c +++ b/src/ftp-opie.c @@ -2165,14 +2165,6 @@ btoe (char *store, const unsigned char *c) return store_beg; } -/* Calculate the MD5 checksum of SRC in one step. The MD5 context - must be declared as md5_ctx. */ -#define DO_MD5(src, len, dest) do { \ - gen_md5_init (md5_ctx); \ - gen_md5_update ((unsigned char *) (src), (len), md5_ctx); \ - gen_md5_finish (md5_ctx, (unsigned char *) (dest)); \ -} while (0) - /* Calculate the SKEY response, based on the sequence, seed (challenge), and the secret password. The calculated response is used instead of the real password when logging in to SKEY-enabled @@ -2211,18 +2203,19 @@ skey_response (int sequence, const char *seed, const char *pass) ALLOCA_MD5_CONTEXT (md5_ctx); uint32_t checksum[4]; - char *feed = (char *) alloca (strlen (seed) + strlen (pass) + 1); - strcpy (feed, seed); - strcat (feed, pass); - - DO_MD5 (feed, strlen (feed), checksum); + gen_md5_init (md5_ctx); + gen_md5_update ((const unsigned char *)seed, strlen(seed), md5_ctx); + gen_md5_update ((const unsigned char *)pass, strlen(pass), md5_ctx); + gen_md5_finish (md5_ctx, (unsigned char *)checksum); checksum[0] ^= checksum[2]; checksum[1] ^= checksum[3]; memcpy (key, checksum, 8); while (sequence-- > 0) { - DO_MD5 (key, 8, checksum); + gen_md5_init (md5_ctx); + gen_md5_update ((unsigned char *) key, 8, md5_ctx); + gen_md5_finish (md5_ctx, (unsigned char *) checksum); checksum[0] ^= checksum[2]; checksum[1] ^= checksum[3]; memcpy (key, checksum, 8); diff --git a/src/ftp.c b/src/ftp.c index da5be896..e4c3b621 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -1196,7 +1196,7 @@ ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con) if (opt.verbose) { char *hurl = url_string (u, 1); - char tmp[15]; + char tmp[256]; strcpy (tmp, " "); if (count > 1) sprintf (tmp, _("(try:%2d)"), count); diff --git a/src/http.c b/src/http.c index 5159d902..b779e36e 100644 --- a/src/http.c +++ b/src/http.c @@ -581,8 +581,8 @@ response_header_copy (const struct response *resp, const char *name, return 0; if (bufsize) { - int len = MIN (e - b, bufsize); - strncpy (buf, b, len); + int len = MIN (e - b, bufsize - 1); + memcpy (buf, b, len); buf[len] = '\0'; } return 1; @@ -1904,7 +1904,7 @@ File `%s' already there, will not retrieve.\n"), *hstat.local_file); if (opt.verbose) { char *hurl = url_string (u, 1); - char tmp[15]; + char tmp[256]; strcpy (tmp, " "); if (count > 1) sprintf (tmp, _("(try:%2d)"), count); diff --git a/src/progress.c b/src/progress.c index 9ff2f983..3fae615d 100644 --- a/src/progress.c +++ b/src/progress.c @@ -939,8 +939,6 @@ bar_set_params (const char *params) TTY -- when logging to file, it is better to review the dots. */ || !isatty (fileno (stderr)) -#else - 1 #endif /* Normally we don't depend on terminal type because the progress bar only uses ^M to move the cursor to the -- 2.39.2