rem: conn->request = NULL;
context: FreeConn(Conn *connPtr){    Ns_Conn *conn = (Ns_Conn *) connPtr;    /*     * Call CLS cleanups.     */    NsClsCleanup(connPtr);    /*     * Call public reset routines.     */    Ns_ConnClearQuery(conn);    Ns_ConnSetType(conn, NULL);    Ns_ConnSetStatus(conn, 0);    Ns_ConnSetEncoding(conn, NULL);    Ns_ConnSetUrlEncoding(conn, NULL);    /*     * Cleanup public elements.     */    if (conn->request != NULL) {    	Ns_FreeRequest(conn->request);        conn->request = NULL;    }    Ns_SetTrunc(conn->headers, 0);    Ns_SetTrunc(conn->outputheaders, 0);    if (conn->authUser != NULL) {        ns_free(conn->authUser);        conn->authUser = conn->authPasswd = NULL;    }    conn->flags = 0;    conn->contentLength = 0;    /*     * Cleanup private elements.     */    connPtr->nContentSent = 0;    /*     * Cleanup content buffers.     */    if (connPtr->map != NULL) {	NsUnMap(connPtr->map, connPtr->maparg);	connPtr->map = connPtr->maparg = NULL;    }    if (connPtr->tfd != -1) {        Ns_ReleaseTemp(connPtr->tfd);        connPtr->tfd = -1;    }    connPtr->rstart = connPtr->rend = NULL;    connPtr->major = connPtr->minor = 0;    connPtr->avail = 0;    connPtr->roff = 0;    connPtr->content = NULL;    connPtr->next = NULL;    Ns_DStringTrunc(&connPtr->ibuf, 0);    Ns_DStringTrunc(&connPtr->obuf, 0);    /*     * Dump on the free list.     */    Ns_MutexLock(&connlock);    connPtr->nextPtr = firstConnPtr;    firstConnPtr = connPtr;    Ns_MutexUnlock(&connlock);}