diff --git a/osx.c b/osx.c index 40035f6..9b1e16d 100644 --- a/osx.c +++ b/osx.c @@ -93,6 +93,10 @@ static int flocking(FILE *fh, int mode, __int64 ofs, __int64 len) len = _filelengthi64(_fileno(fh)); if (len < 0) goto fail; + + len -= ofs; + if (len < 0) + len = 0; if (len > LONG_MAX) { errno = ERANGE; goto fail;