From: Alexander Drozdov Date: Fri, 31 Oct 2008 18:13:10 +0000 (-0700) Subject: Fix underflow, incorrect assertion. X-Git-Tag: v1.13~398 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=b0bdf9549464dcf6058d55aeb81220b73cd9701c Fix underflow, incorrect assertion. --- diff --git a/src/ChangeLog b/src/ChangeLog index e4f98d75..8a162245 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2008-10-31 Alexander Drozdov + + * retr.c (fd_read_hunk): Make assert deal with maxsize == 0. + + * ftp-ls.c (clean_line): Prevent underflow on empty lines. + 2008-10-26 Gisle Vanem * main.c (format_and_print_line): Put variables on top of diff --git a/src/ftp-ls.c b/src/ftp-ls.c index 409996c3..660302e5 100644 --- a/src/ftp-ls.c +++ b/src/ftp-ls.c @@ -75,6 +75,7 @@ clean_line(char *line) if (!len) return 0; if (line[len - 1] == '\n') line[--len] = '\0'; + if (!len) return 0; if (line[len - 1] == '\r') line[--len] = '\0'; for ( ; *line ; line++ ) if (*line == '\t') *line = ' '; diff --git a/src/retr.c b/src/retr.c index 85774297..21c9002e 100644 --- a/src/retr.c +++ b/src/retr.c @@ -393,7 +393,7 @@ fd_read_hunk (int fd, hunk_terminator_t terminator, long sizehint, long maxsize) char *hunk = xmalloc (bufsize); int tail = 0; /* tail position in HUNK */ - assert (maxsize >= bufsize); + assert (!maxsize || maxsize >= bufsize); while (1) {