security-class-object-leak-20040301
authorJeffrey Altman <jaltman@mit.edu>
Tue, 2 Mar 2004 07:23:41 +0000 (07:23 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 2 Mar 2004 07:23:41 +0000 (07:23 +0000)
Incorrect reference count management results in a leak of rx_securityClass
objects.

src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/fs.c

index 7d001e3..94f19de 100644 (file)
@@ -471,6 +471,8 @@ static void cm_NewRXConnection(cm_conn_t *tcp, cm_ucell_t *ucellp,
        rx_SetConnDeadTime(tcp->callp, CM_CONN_CONNDEADTIME);
        rx_SetConnHardDeadTime(tcp->callp, CM_CONN_HARDDEADTIME);
        tcp->ucgen = ucellp->gen;
+    if (secObjp)
+        rxs_Release(secObjp);   /* Decrement the initial refCount */
 }
 
 long cm_ConnByServer(cm_server_t *serverp, cm_user_t *userp, cm_conn_t **connpp)
index f5ceef5..981294c 100644 (file)
@@ -2292,6 +2292,8 @@ struct afsconf_cell *info;
                                          info->hostAddr[i].sin_port, USER_SERVICE_ID,
                                          sc, scIndex);
 
+    if (sc)
+        rxs_Release(sc);    /* Decrement the initial refCount */
     code = ubik_ClientInit(serverconns, &uclient);
 
     if (code) {