diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2021-09-24 00:14:56 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2022-07-25 20:01:25 +0000 |
| commit | c864c8cf08a9dc197612d5ffffd239aa72de7c97 (patch) | |
| tree | e16025edb58663b10a5359a74cc14c41e84d66b1 | |
| parent | d7fd130ebe52733bcdc3c17fd1e49e7842dbe3e3 (diff) | |
| download | src-c864c8cf08a9dc197612d5ffffd239aa72de7c97.tar.gz src-c864c8cf08a9dc197612d5ffffd239aa72de7c97.zip | |
aio_aqueue(): avoid ucred leak on failure path
Approved by: so
Security: FreeBSD-SA-22:10.aio
PR: 258698
(cherry picked from commit 45c2c7c484de7747014492b17ff89e323ee66496)
(cherry picked from commit 9499d3c1e40dfeb1f63f61af7cdf25ee27f9a2ec)
| -rw-r--r-- | sys/kern/vfs_aio.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c index 9b45a06c5f9f..80b7c3ac94e9 100644 --- a/sys/kern/vfs_aio.c +++ b/sys/kern/vfs_aio.c @@ -1698,7 +1698,7 @@ no_kqueue: else error = fo_aio_queue(fp, job); if (error) - goto err3; + goto err4; AIO_LOCK(ki); job->jobflags &= ~KAIOCB_QUEUEING; @@ -1719,6 +1719,8 @@ no_kqueue: AIO_UNLOCK(ki); return (0); +err4: + crfree(job->cred); err3: if (fp) fdrop(fp, td); |
