svn commit: r368600 - projects/aio_writev/sys/kern
Alan Somers
asomers at FreeBSD.org
Sun Dec 13 00:04:30 UTC 2020
Author: asomers
Date: Sun Dec 13 00:04:30 2020
New Revision: 368600
URL: https://svnweb.freebsd.org/changeset/base/368600
Log:
aio_writev: don't corrupt the AIO proc's td_ucred on error
Modified:
projects/aio_writev/sys/kern/vfs_aio.c
Modified: projects/aio_writev/sys/kern/vfs_aio.c
==============================================================================
--- projects/aio_writev/sys/kern/vfs_aio.c Sat Dec 12 23:59:05 2020 (r368599)
+++ projects/aio_writev/sys/kern/vfs_aio.c Sun Dec 13 00:04:30 2020 (r368600)
@@ -779,10 +779,8 @@ aio_process_rw(struct kaiocb *job)
if (job->uaiocb.aio_lio_opcode == LIO_WRITEV) {
error = copyinuio(job->uaiocb.aio_iov, job->uaiocb.aio_iovcnt,
&auiop);
- if (error) {
- aio_complete(job, -1, error);
- return;
- }
+ if (error)
+ goto out;
} else {
aiov.iov_base = (void *)(uintptr_t)cb->aio_buf;
aiov.iov_len = cb->aio_nbytes;
@@ -839,9 +837,10 @@ aio_process_rw(struct kaiocb *job)
}
cnt -= auiop->uio_resid;
- td->td_ucred = td_savedcred;
if (job->uaiocb.aio_lio_opcode == LIO_WRITEV)
free(auiop, M_IOV);
+out:
+ td->td_ucred = td_savedcred;
if (error)
aio_complete(job, -1, error);
else
More information about the svn-src-projects
mailing list