read(2) and thus bsdiff is limited to 2^31 bytes

Joerg Sonnenberger joerg at bec.de
Sun May 22 22:54:23 UTC 2016


On Sun, May 22, 2016 at 10:54:30PM +0200, Dirk Engling wrote:
> When trying to bsdiff two DVD images, I noticed it failing due to
> read(2) returning EINVAL to the tool. man 2 read says, this would only
> happen for a negative value for fildes, which clearly was not true.

I would classify that as implementation bug. It seems perfectly sensible
to turn overly large requests into a short read/write, even for blocking
files. But erroring out seems to be quite wrong to me.

Joerg


More information about the freebsd-hackers mailing list