Prevent integer div by 0 in curl progress callback

If the curl callback is called at the exact same time as the
download begins, this callback would cause an integer division by
zero.
This commit is contained in:
Eidolon 2024-05-04 17:44:05 -05:00 committed by NepDisk
parent 007f09edc3
commit 7a0949b99c

View file

@ -1766,12 +1766,25 @@ size_t curlwrite_data(void *ptr, size_t size, size_t nmemb, FILE *stream)
int curlprogress_callback(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) int curlprogress_callback(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow)
{ {
time_t curtime;
(void)clientp; (void)clientp;
(void)ultotal; (void)ultotal;
(void)ulnow; // Function prototype requires these but we won't use, so just discard (void)ulnow; // Function prototype requires these but we won't use, so just discard
curtime = time(NULL);
curl_dlnow = dlnow; curl_dlnow = dlnow;
curl_dltotal = dltotal; curl_dltotal = dltotal;
getbytes = curl_dlnow / (time(NULL) - curl_starttime); // To-do: Make this more accurate???
if (curtime > curl_starttime)
{
getbytes = curl_dlnow / (curtime - curl_starttime); // To-do: Make this more accurate???
}
else
{
getbytes = 0;
}
return 0; return 0;
} }