From: Jeffrey Altman Date: Thu, 5 Jul 2012 18:33:50 +0000 (-0400) Subject: Windows: cm_ConnByServer add conn to list after init X-Git-Tag: upstream/1.8.0_pre1^2~2255 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=c3ce54e6b7be8c2996a0fda2d7ad9780fca2f0ef;p=packages%2Fo%2Fopenafs.git Windows: cm_ConnByServer add conn to list after init Do not add a newly created cm_conn_t to the cm_server_t connsp list until after the object is fully initialized. Change-Id: Ic5605abefb51d9342f0d249903e13e99b90452b7 Reviewed-on: http://gerrit.openafs.org/7717 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index 2f950ae74..c17acd62f 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -1584,17 +1584,15 @@ long cm_ConnByServer(cm_server_t *serverp, cm_user_t *userp, afs_uint32 replicat cm_GetServer(serverp); tcp = malloc(sizeof(*tcp)); memset(tcp, 0, sizeof(*tcp)); - tcp->nextp = serverp->connsp; - serverp->connsp = tcp; cm_HoldUser(userp); tcp->userp = userp; lock_InitializeMutex(&tcp->mx, "cm_conn_t mutex", LOCK_HIERARCHY_CONN); - lock_ObtainMutex(&tcp->mx); tcp->serverp = serverp; tcp->cryptlevel = rxkad_clear; cm_NewRXConnection(tcp, ucellp, serverp, replicated); tcp->refCount = 1; - lock_ReleaseMutex(&tcp->mx); + tcp->nextp = serverp->connsp; + serverp->connsp = tcp; lock_ReleaseWrite(&cm_connLock); } else { lock_ReleaseRead(&cm_connLock);