Parse-SDK-iOS-OSX icon indicating copy to clipboard operation
Parse-SDK-iOS-OSX copied to clipboard

Negative progress value on file download

Open richardgroves opened this issue 2 years ago • 1 comments

New Issue Checklist

Issue Description

File download progress block can be called with a negative progress value

Steps to reproduce

Download a file from a server where the content length is not known/knowable

Actual Outcome

-22424 passed as progress of download when 243 bytes had been downloaded.

Expected Outcome

0 passed as progress if true value not knowable?

Environment

Parse Core 1.19.4, but same code problem exists in 2.02

Client

  • Parse ObjC SDK version: 1.19.4 & all others up to 2.0.2

Server

  • Parse Server version: NA
  • Operating system: iOS 16.2
  • Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): Remote - Back4App

Database

  • System (MongoDB or Postgres): Mongo
  • Database version: 3.0
  • Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc): Remote - Back4App

Logs

NA

Narrative version:

It is possible to have a download progress block called with a negative progress value.

This occurs as the line:

https://github.com/parse-community/Parse-SDK-iOS-OSX/blob/b6ec05c8ea17d936cb695713d11e0a61854bfe84/Parse/Parse/Internal/Commands/CommandRunner/URLSession/Session/TaskDelegate/PFURLSessionFileDownloadTaskDelegate.m#L62

does not include a check for self.response.expectedContentLength == NSURLResponseUnknownLength (NSURLResponseUnknownLength = -1).

richardgroves avatar Feb 10 '23 14:02 richardgroves

Thanks for opening this issue!

  • 🚀 You can help us to fix this issue faster by opening a pull request with a failing test. See our Contribution Guide for how to make a pull request, or read our New Contributor's Guide if this is your first time contributing.