]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
fixed leak in 2.2 branch
authorwessels <>
Sat, 19 Jun 1999 22:34:36 +0000 (22:34 +0000)
committerwessels <>
Sat, 19 Jun 1999 22:34:36 +0000 (22:34 +0000)
src/errorpage.cc
src/forward.cc

index e951a0434d66fb95fb54c740536ef1a983c59a84..b0e82e62217b65c804f080b79bb2d9f6dbfaba2b 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: errorpage.cc,v 1.150 1999/05/26 17:07:58 wessels Exp $
+ * $Id: errorpage.cc,v 1.151 1999/06/19 16:34:36 wessels Exp $
  *
  * DEBUG: section 4     Error Generation
  * AUTHOR: Duane Wessels
@@ -236,7 +236,7 @@ errorPageName(int pageId)
 ErrorState *
 errorCon(err_type type, http_status status)
 {
-    ErrorState *err = xcalloc(1, sizeof(ErrorState));
+    ErrorState *err = memAllocate(MEM_ERRORSTATE);
     err->page_id = type;       /* has to be reset manually if needed */
     err->type = type;
     err->http_status = status;
@@ -340,7 +340,7 @@ errorSend(int fd, ErrorState * err)
        err->request->err_type = err->type;
     /* moved in front of errorBuildBuf @?@ */
     err->flags.flag_cbdata = 1;
-    cbdataAdd(err, cbdataXfree, 0);
+    cbdataAdd(err, memFree, MEM_ERRORSTATE);
     rep = errorBuildReply(err);
     comm_write_mbuf(fd, httpReplyPack(rep), errorSendComplete, err);
     httpReplyDestroy(rep);
@@ -381,7 +381,7 @@ errorStateFree(ErrorState * err)
     if (err->flags.flag_cbdata)
        cbdataFree(err);
     else
-       safe_free(err);
+       memFree(err, MEM_ERRORSTATE);
 }
 
 #define CVT_BUF_SZ 512
index c08895c2e97e3ff01d13b665e6f4f75ed384563f..a459548c677624a61fee8f336f8286686eb845a5 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: forward.cc,v 1.61 1999/06/10 21:06:23 wessels Exp $
+ * $Id: forward.cc,v 1.62 1999/06/19 16:34:36 wessels Exp $
  *
  * DEBUG: section 17    Request Forwarding
  * AUTHOR: Duane Wessels
@@ -72,6 +72,7 @@ fwdStateFree(FwdState * fwdState)
        if (e->mem_obj->inmem_hi == 0) {
            assert(fwdState->err);
            errorAppendEntry(e, fwdState->err);
+           fwdState->err = NULL;
        } else {
            EBIT_CLR(e->flags, ENTRY_FWD_HDR_WAIT);
            storeComplete(e);
@@ -83,6 +84,8 @@ fwdStateFree(FwdState * fwdState)
     fwdServersFree(&fwdState->servers);
     requestUnlink(fwdState->request);
     fwdState->request = NULL;
+    if (fwdState->err)
+       errorStateFree(fwdState->err);
     storeUnregisterAbort(e);
     storeUnlockObject(e);
     fwdState->entry = NULL;