Page MenuHomeFreeBSD

D13405.id36519.diff
No OneTemporary

D13405.id36519.diff

Index: head/sys/kern/vfs_extattr.c
===================================================================
--- head/sys/kern/vfs_extattr.c
+++ head/sys/kern/vfs_extattr.c
@@ -167,6 +167,9 @@
ssize_t cnt;
int error;
+ if (nbytes > IOSIZE_MAX)
+ return (EINVAL);
+
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error)
return (error);
@@ -177,10 +180,6 @@
auio.uio_iov = &aiov;
auio.uio_iovcnt = 1;
auio.uio_offset = 0;
- if (nbytes > IOSIZE_MAX) {
- error = EINVAL;
- goto done;
- }
auio.uio_resid = nbytes;
auio.uio_rw = UIO_WRITE;
auio.uio_segflg = UIO_USERSPACE;
@@ -330,6 +329,9 @@
size_t size, *sizep;
int error;
+ if (nbytes > IOSIZE_MAX)
+ return (EINVAL);
+
vn_lock(vp, LK_SHARED | LK_RETRY);
/*
@@ -346,10 +348,6 @@
auio.uio_iov = &aiov;
auio.uio_iovcnt = 1;
auio.uio_offset = 0;
- if (nbytes > IOSIZE_MAX) {
- error = EINVAL;
- goto done;
- }
auio.uio_resid = nbytes;
auio.uio_rw = UIO_READ;
auio.uio_segflg = UIO_USERSPACE;
@@ -638,6 +636,9 @@
ssize_t cnt;
int error;
+ if (nbytes > IOSIZE_MAX)
+ return (EINVAL);
+
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
auiop = NULL;
@@ -649,10 +650,6 @@
auio.uio_iov = &aiov;
auio.uio_iovcnt = 1;
auio.uio_offset = 0;
- if (nbytes > IOSIZE_MAX) {
- error = EINVAL;
- goto done;
- }
auio.uio_resid = nbytes;
auio.uio_rw = UIO_READ;
auio.uio_segflg = UIO_USERSPACE;

File Metadata

Mime Type
text/plain
Expires
Wed, Jul 22, 7:27 AM (3 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35353907
Default Alt Text
D13405.id36519.diff (1 KB)

Event Timeline