rem: * Free all dstrings. */  while (cgiPtr->nextds-- > 0) { Ns_DStringFree(&cgiPtr->ds[cgiPtr->nextds]); }
context: CgiFree(Cgi *cgiPtr){    /*     * Close the pipe.     */        if (cgiPtr->ofd >= 0) {    	close(cgiPtr->ofd);    }            /*     * Release the temp file.     */    if (cgiPtr->ifd >= 0) {	Ns_ReleaseTemp(cgiPtr->ifd);    }         /*     * Free the environment.     */         if (cgiPtr->env != NULL) {	Ns_SetFree(cgiPtr->env);    }    /*     * Free all dstrings.     */    while (cgiPtr->nextds-- > 0) {	Ns_DStringFree(&cgiPtr->ds[cgiPtr->nextds]);    }        /*     * Reap the process.     */         if (cgiPtr->pid != -1 && Ns_WaitProcess(cgiPtr->pid) != NS_OK) {	Ns_Log(Error, "nscgi: wait for %s failed: %s",	       cgiPtr->exec, strerror(errno));    }}