Date: Sun, 13 Dec 2020 00:04:30 +0000 (UTC) From: Alan Somers <asomers@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r368600 - projects/aio_writev/sys/kern Message-ID: <202012130004.0BD04UkV085397@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202012130004.0BD04UkV085397>