[issue1777] vn panic: Freeing already free credential! 0xdef403f8
Matthew Dillon
dillon at apollo.backplane.com
Fri Jun 4 21:46:06 PDT 2010
:I'm not sure this is the correct approach, but the attached patch
:should fix this issue.
:
:Joe
:...
:
:diff --git a/sys/dev/disk/vn/vn.c b/sys/dev/disk/vn/vn.c
:index 95bcf44..9f45281 100644
:--- a/sys/dev/disk/vn/vn.c
:+++ b/sys/dev/disk/vn/vn.c
:@@ -697,7 +697,7 @@ vnsetcred(struct vn_softc *vn, struct ucred *cred)
: * Set credits in our softc
: */
:
:- if (vn->sc_cred)
:+ if (vn->sc_cred && vn->sc_cred->cr_ref > 0)
: crfree(vn->sc_cred);
: vn->sc_cred = crdup(cred);
That can't be right. If vn->sc_cred is set at all there must be a
ref on it. If there isn't something is leaking a crfree() without
clearing it.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Bugs
mailing list