Skip to content

Integer Overflow In BaseWriteChannel #1389

Closed

Description

@Dima1224

Hi there. I'm testing out com.google.cloud.storage.Storage.writer() for writing to GCS. It works very well for files smaller than 2GB, but right around the 2GB mark WriteChannel throws an exception indicating that there's something wrong with the Content-Range header.

com.google.api.client.http.HttpResponseException: 400|Failed to parse Content-Range header.

I noticed that the Content-Range header is set in com.google.cloud.storage.spi.DefaultStorageRpc.write() and is calculated using com.google.cloud.BaseWriteChannel.position, which is an int. The problem is that at the 2GB mark the position variable overflows and becomes negative, causing panic and mayhem.

Here are some screenshots to paint a fuller picture:

trace1

trace2

Any chance we can get a patch for this? Should I submit a pull request?

Activity

  1. mziccard commented on Nov 10, 2016

    @mziccard
    Contributor

    Uh very sorry for the panic and mayhem. I believe we have fixed an analogous issue for the reader and this was left behind.

    A PR would be awesome, it should be as simple as making position in BaseWriteChannel a long and changing the two getters position() and getPosition() to long as well. Let me know if you can make it, otherwise I'll kick one out ASAP.

  2. Dima1224 commented on Nov 10, 2016

    @Dima1224
    Author

    Can I ask you to do it? I don't have the code base checked out, was debugging against the sources jar.

  3. mziccard commented on Nov 10, 2016

    @mziccard
    Contributor

    Can I ask you to do it?

    This is kind of my job so I'll be more than happy :D

  4. Dima1224 commented on Nov 10, 2016

    @Dima1224
    Author

    Looks like I'm talking to the right guy :)

  5. Dima1224 commented on Nov 11, 2016

    @Dima1224
    Author

    Thanks! Any idea when the fix will be released?

  6. mziccard commented on Nov 11, 2016

    @mziccard
    Contributor

    @Dima1224 Beginning of next week the latest!

  7. Dima1224 commented on Nov 11, 2016

    @Dima1224
    Author

    Thanks for the lightning fast turnaround once again, @mziccard! Much appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

api: storageIssues related to the Cloud Storage API.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions