Date: Sat, 18 Apr 1998 22:03:14 -0700 (PDT) From: Julian Elischer <julian@whistle.com> To: Bruce Evans <bde@zeta.org.au> Cc: cvs-all@FreeBSD.ORG, cvs-committers@FreeBSD.ORG, cvs-lib@FreeBSD.ORG, cvs-sys@FreeBSD.ORG, des@FreeBSD.ORG Subject: Re: cvs commit: src/lib/libc/sys lseek.2 src/sys/kern vfs_syscalls.c Message-ID: <Pine.BSF.3.95.980418220215.22408A-100000@current1.whistle.com> In-Reply-To: <199804190300.NAA15945@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
If this is truely 'common' then that's unfortunate. what do POSIX and friends have to say about it? On Sun, 19 Apr 1998, Bruce Evans wrote: > >des 1998/04/18 12:24:45 PDT > > > > Modified files: > > lib/libc/sys lseek.2 > > Log: > > Return EINVAL and do not changefile pointer if resulting offset is negative. > > PR: kern/6184 > > > > Revision Changes Path > > 1.7 +2 -2 src/lib/libc/sys/lseek.2 > > > > Modified files: > > sys/kern vfs_syscalls.c > > Log: > > Return EINVAL and do not change file pointer if resulting offset is negative. > > PR: kern/6184 > > This is wrong. Please back it out. It breaks at least the ability to > seek to high addresses in /dev/[k]mem on 64 bit systems. Not long ago > when off_t was 32 bits, it was normal to seek to "negative" addresses in > /dev/kmem, so portable programs should be able to handle such addresses > at least if they actually request them. libkvm/kvm_proc.c:kvm_uread() > shows how to handle them: > > errno = 0; > if (lseek(fd, (off_t)uva, 0) == -1 && errno != 0) { > /* Error. */ > ... > } > /* No error. */ > ... > > This allows seeking to (off_t)-1 provided the system supports it. > > I replied to the PR, but for some reason the followup didn't get attached > to the PR. > > Bruce >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95.980418220215.22408A-100000>