summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorriastradh <riastradh@NetBSD.org>2022-03-12 17:27:50 +0000
committerriastradh <riastradh@NetBSD.org>2022-03-12 17:27:50 +0000
commit7514fbbbd886426197bc2d65a35aed350eb5efa4 (patch)
tree1ceb772bb4fdee3f7b016d08ff55c20facf6a454 /sys/dev
parent6583daf00fe7b57a7e0b7aff35606392726079be (diff)
ccd(4): Only pathbuf_destroy if pathbuf_copyin succeeded.
Reported-by: syzbot+a46aadc788a80afc8742@syzkaller.appspotmail.com
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ccd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/ccd.c b/sys/dev/ccd.c
index 56f0284fdba..ab3f94bd422 100644
--- a/sys/dev/ccd.c
+++ b/sys/dev/ccd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ccd.c,v 1.186 2022/02/11 23:20:09 riastradh Exp $ */
+/* $NetBSD: ccd.c,v 1.187 2022/03/12 17:27:50 riastradh Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 1999, 2007, 2009 The NetBSD Foundation, Inc.
@@ -88,7 +88,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.186 2022/02/11 23:20:09 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.187 2022/03/12 17:27:50 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1313,8 +1313,8 @@ ccdioctl(dev_t dev, u_long cmd, void *data, int flag, struct lwp *l)
error = pathbuf_copyin(cpp[i], &pb);
if (error == 0) {
error = vn_bdev_openpath(pb, &vpp[i], l);
+ pathbuf_destroy(pb);
}
- pathbuf_destroy(pb);
if (error != 0) {
for (j = 0; j < lookedup; ++j)
(void)vn_close(vpp[j], FREAD|FWRITE,