LFS meets PowerPC - score 0,1
Paul Eggert
eggert@twinsun.com
Thu Jun 17 23:59:00 GMT 1999
Date: Fri, 18 Jun 1999 14:25:44 +1000
From: Geoff Keating <geoffk@ozemail.com.au>
Apart from that, it looks OK to me.
I noticed that the code `if(__offset >= (1ULL << 32))' is bogus, since
it is incorrect for some large negative offsets. E.g. if __offset is
-4294967296, then the code doesn't report a mmap failure, but instead
silently treats __offset as if it were zero.
Also, surely the code meant to set errno to EINVAL, not -EINVAL.
That is, the check should look something like this instead (rewriting
__offset to offset as you suggested):
if (offset != (off_t) offset)
{
errno = EINVAL;
return MAP_FAILED;
}
This is more portable too, since this doesn't assume that off_t is 32 bits.
More information about the Libc-alpha
mailing list