Date: Sun, 19 Apr 1998 13:00:06 +1000 From: Bruce Evans <bde@zeta.org.au> To: 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: <199804190300.NAA15945@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>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?199804190300.NAA15945>