From: wessels <> Date: Sat, 19 Jun 1999 22:34:36 +0000 (+0000) Subject: fixed leak in 2.2 branch X-Git-Tag: SQUID_3_0_PRE1~2147 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2c450e4eafca3b698868375445754927449f83d5;p=thirdparty%2Fsquid.git fixed leak in 2.2 branch --- diff --git a/src/errorpage.cc b/src/errorpage.cc index e951a0434d..b0e82e6221 100644 --- a/src/errorpage.cc +++ b/src/errorpage.cc @@ -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 diff --git a/src/forward.cc b/src/forward.cc index c08895c2e9..a459548c67 100644 --- a/src/forward.cc +++ b/src/forward.cc @@ -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;