Skip to content

fs.read into zero buffer should not throw exception #4517

@feross

Description

@feross

Given a file descriptor fd that references a non-zero-length file, I expect this code to work:

var buf = new Buffer(0)
// Read zero bytes into offset 0 of `buf`
fs.read(fd, buf, 0, 0, 0, function(err, bytesRead, buffer) {
  console.log('got buffer', buffer)
}

Instead it throws an exception because it assumes that offset is out bounds because it starts at the end of the buffer (based on the buffer's length). If length was a positive number, this would be out of bounds. But when length is 0, an offset that starts at the end of the buffer is fine.

I expect a buffer of length zero to be returned in the callback, with no error, and no thrown exception.

Metadata

Metadata

Assignees

No one assigned

    Labels

    fsIssues and PRs related to the fs subsystem / file system.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions