]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC: r291035
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 2 Dec 2015 21:48:34 +0000 (21:48 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 2 Dec 2015 21:48:34 +0000 (21:48 +0000)
commit1dfeb5b846d9e68c7387dc19ea82362d8fa24171
tree86bc954999cbb61df412a1e4c59dd1eff688796e
parent889e4a62302ebba8eb9c3184be85674d451e24ca
MFC: r291035
The problem report was for a crash that happened when smbfs was
trying to do a mount. Given the backtrace,
it appears that the crash occurred when smb_vc_create() failed and then
called smb_vc_put() with vcp->vc_iod == NULL. smb_vc_put() subsequently
called smb_vc_disconnect() with vcp->vc_iod == NULL, causing the crash.
This patch adds a check for vcp->vc_iod != NULL in smb_vc_disconnect() to
avoid the crash. It also fixes the case in smb_vc_create() where
kproc_create() fails so that it destroys the mutexes and sets
vcp->vc_iod == NULL before free()'ing the iod structure.

git-svn-id: svn://svn.freebsd.org/base/stable/10@291655 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/netsmb/smb_conn.c
sys/netsmb/smb_iod.c