summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_descrip.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2006-01-06 16:30:30 +0000
committerjhb <jhb@FreeBSD.org>2006-01-06 16:30:30 +0000
commite851a1b52aa81242bee0ce1da1d3d2172f0e670d (patch)
treef88c5a59f00b165788ee9ff213f675c12c81b87a /sys/kern/kern_descrip.c
parentc3c1fed1fa10387bb1a927be20aa05f026378186 (diff)
downloadFreeBSD-src-e851a1b52aa81242bee0ce1da1d3d2172f0e670d.zip
FreeBSD-src-e851a1b52aa81242bee0ce1da1d3d2172f0e670d.tar.gz
Return EBADF rather than EINVAL for FWRITE failure as per POSIX.
MFC after: 1 week
Diffstat (limited to 'sys/kern/kern_descrip.c')
-rw-r--r--sys/kern/kern_descrip.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 28922d3..7cc2c12 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -1983,8 +1983,7 @@ _fget(struct thread *td, int fd, struct file **fpp, int flags, int hold)
}
/*
- * Note: FREAD failure returns EBADF to maintain backwards
- * compatibility with what routines returned before.
+ * FREAD and FWRITE failure return EBADF as per POSIX.
*
* Only one flag, or 0, may be specified.
*/
@@ -1994,7 +1993,7 @@ _fget(struct thread *td, int fd, struct file **fpp, int flags, int hold)
}
if (flags == FWRITE && (fp->f_flag & FWRITE) == 0) {
FILEDESC_UNLOCK(fdp);
- return (EINVAL);
+ return (EBADF);
}
if (hold) {
fhold(fp);
OpenPOWER on IntegriCloud