Skip to content

Negative progress value on file download #1705

Open
@richardgroves

Description

@richardgroves

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:

int progress = (int)(self.downloadedBytes / (double)self.response.expectedContentLength * 100);

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugImpaired feature or lacking behavior that is likely assumed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions