The problem report was for a crash that happened when smbfs was
authorrmacklem <rmacklem@FreeBSD.org>
Wed, 18 Nov 2015 23:04:01 +0000 (23:04 +0000)
committerrmacklem <rmacklem@FreeBSD.org>
Wed, 18 Nov 2015 23:04:01 +0000 (23:04 +0000)
commitf133998d4f5495d55375e081bb5ce826f1f43e73
tree30e1fd62aadf1372aba80d9358ec1dafcfe7b7ea
parent37b150b7e118d61f49eef786979de58d27f31277
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.
The person who reported the PR tested the patch, but was not able
to reproduce the crash with or without the patch.

PR: 201912
Reviewed by: jhb
MFC after: 2 weeks
sys/netsmb/smb_conn.c
sys/netsmb/smb_iod.c