diff options
author | Brandon Casey <drafnel@gmail.com> | 2014-08-29 23:48:03 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-09-07 23:23:12 +0200 |
commit | 6beb0eeea17cd6cc71cb69737ac63861a8f18d4e (patch) | |
tree | a3845f28b7cbf165d5340c045ec71bf0763b0bef /lib/imap.c | |
parent | 8acbb074f8816156c250cd39c9ea53cbba670302 (diff) | |
download | curl-6beb0eeea17cd6cc71cb69737ac63861a8f18d4e.tar.gz |
Ensure progress.size_dl/progress.size_ul are always >= 0
Historically the default "unknown" value for progress.size_dl and
progress.size_ul has been zero, since these values are initialized
implicitly by the calloc that allocates the curl handle that these
variables are a part of. Users of curl that install progress
callbacks may expect these values to always be >= 0.
Currently it is possible for progress.size_dl and progress.size_ul
to by set to a value of -1, if Curl_pgrsSetDownloadSize() or
Curl_pgrsSetUploadSize() are passed a "size" of -1 (which a few
places currently do, and a following patch will add more). So
lets update Curl_pgrsSetDownloadSize() and Curl_pgrsSetUploadSize()
so they make sure that these variables always contain a value that
is >= 0.
Updates test579 and test599.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Diffstat (limited to 'lib/imap.c')
-rw-r--r-- | lib/imap.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/imap.c b/lib/imap.c index e80bc03c1..9fc472866 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -1662,7 +1662,7 @@ static CURLcode imap_state_fetch_resp(struct connectdata *conn, int imapcode, (void)instate; /* no use for this yet */ if(imapcode != '*') { - Curl_pgrsSetDownloadSize(data, 0); + Curl_pgrsSetDownloadSize(data, -1); state(conn, IMAP_STOP); return CURLE_REMOTE_FILE_NOT_FOUND; /* TODO: Fix error code */ } @@ -2336,8 +2336,8 @@ static CURLcode imap_regular_transfer(struct connectdata *conn, /* Set the progress data */ Curl_pgrsSetUploadCounter(data, 0); Curl_pgrsSetDownloadCounter(data, 0); - Curl_pgrsSetUploadSize(data, 0); - Curl_pgrsSetDownloadSize(data, 0); + Curl_pgrsSetUploadSize(data, -1); + Curl_pgrsSetDownloadSize(data, -1); /* Carry out the perform */ result = imap_perform(conn, &connected, dophase_done); |