Parse-SDK-iOS-OSX
Parse-SDK-iOS-OSX copied to clipboard
Negative progress value on file download
New Issue Checklist
- [x ] I am not disclosing a vulnerability.
- [ x] I am not just asking a question.
- [ x] I have searched through existing issues.
- [ x] I can reproduce the issue with the latest versions of Parse Server and the Parse ObjC SDK.
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).
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.