Open
Description
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:
does not include a check for self.response.expectedContentLength == NSURLResponseUnknownLength
(NSURLResponseUnknownLength = -1).