]> granicus.if.org Git - curl/commit
Ensure progress.size_dl/progress.size_ul are always >= 0
authorBrandon Casey <drafnel@gmail.com>
Fri, 29 Aug 2014 21:48:03 +0000 (23:48 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Sun, 7 Sep 2014 21:23:12 +0000 (23:23 +0200)
commit6beb0eeea17cd6cc71cb69737ac63861a8f18d4e
treea3845f28b7cbf165d5340c045ec71bf0763b0bef
parent8acbb074f8816156c250cd39c9ea53cbba670302
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>
lib/ftp.c
lib/http.c
lib/imap.c
lib/pop3.c
lib/progress.c
lib/smtp.c
lib/ssh.c
tests/data/test579
tests/data/test599
tests/libtest/lib599.c