aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-09-24 00:14:56 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-09-24 00:18:34 +0000
commit45c2c7c484de7747014492b17ff89e323ee66496 (patch)
tree679eb233fcbc35cf98844a7eedfe9b480d76522c
parent502dc84a8b6703e7c0626739179a3cdffdd22d81 (diff)
downloadsrc-45c2c7c484de7747014492b17ff89e323ee66496.tar.gz
src-45c2c7c484de7747014492b17ff89e323ee66496.zip
aio_aqueue(): avoid ucred leak on failure path
PR: 258698 Submitted by: sigsys@gmail.com MFC after: 1 week
-rw-r--r--sys/kern/vfs_aio.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c
index 87c45bf2c078..d06b18140e71 100644
--- a/sys/kern/vfs_aio.c
+++ b/sys/kern/vfs_aio.c
@@ -1713,7 +1713,7 @@ no_kqueue:
else
error = fo_aio_queue(fp, job);
if (error)
- goto err3;
+ goto err4;
AIO_LOCK(ki);
job->jobflags &= ~KAIOCB_QUEUEING;
@@ -1734,6 +1734,8 @@ no_kqueue:
AIO_UNLOCK(ki);
return (0);
+err4:
+ crfree(job->cred);
err3:
if (fp)
fdrop(fp, td);