diff options
author | jhb <jhb@FreeBSD.org> | 2006-01-23 21:45:32 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-01-23 21:45:32 +0000 |
commit | 0c769dbc8bc5d9557d0963f0c6c9b59dd1045cf5 (patch) | |
tree | ff7b041cb76317984c00243ceae327dc8fca787c /sys/kern/kern_ktrace.c | |
parent | 80610803f591a843f1295103209478fe22efd97d (diff) | |
download | FreeBSD-src-0c769dbc8bc5d9557d0963f0c6c9b59dd1045cf5.zip FreeBSD-src-0c769dbc8bc5d9557d0963f0c6c9b59dd1045cf5.tar.gz |
Fix a vnode reference leak in the ktrace code. We always grab a reference
to the vnode at the start of ktr_writerequest() but were missing the
corresponding vrele() after we finished the write operation.
Reported by: jasone
Diffstat (limited to 'sys/kern/kern_ktrace.c')
-rw-r--r-- | sys/kern/kern_ktrace.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c index aadd611..fbb0b0d 100644 --- a/sys/kern/kern_ktrace.c +++ b/sys/kern/kern_ktrace.c @@ -952,6 +952,7 @@ ktr_writerequest(struct thread *td, struct ktr_request *req) error = VOP_WRITE(vp, &auio, IO_UNIT | IO_APPEND, cred); VOP_UNLOCK(vp, 0, td); vn_finished_write(mp); + vrele(vp); mtx_unlock(&Giant); if (!error) return; |