From: wessels <> Date: Wed, 29 Oct 1997 04:54:28 +0000 (+0000) Subject: Need a flag to know when to use cbdataFree() or safe_free() for an 'err' X-Git-Tag: SQUID_3_0_PRE1~4652 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb0929d868e12b8e14a5b5653f313bc1edbae73d;p=thirdparty%2Fsquid.git Need a flag to know when to use cbdataFree() or safe_free() for an 'err' structure --- diff --git a/src/defines.h b/src/defines.h index 0f70c01398..9232886d3c 100644 --- a/src/defines.h +++ b/src/defines.h @@ -228,6 +228,8 @@ #define ERROR_BUF_SZ (MAX_URL << 2) #endif +#define ERR_FLAG_CBDATA 0x01 + #define HTTP_PROXYING (1<<0) #define HTTP_KEEPALIVE (1<<1) diff --git a/src/errorpage.cc b/src/errorpage.cc index 8d10d9f41c..2f71470f3a 100644 --- a/src/errorpage.cc +++ b/src/errorpage.cc @@ -1,6 +1,6 @@ /* - * $Id: errorpage.cc,v 1.88 1997/10/28 20:42:50 wessels Exp $ + * $Id: errorpage.cc,v 1.89 1997/10/28 21:54:30 wessels Exp $ * * DEBUG: section 4 Error Generation * AUTHOR: Duane Wessels @@ -93,7 +93,10 @@ errorStateFree(ErrorState * err) safe_free(err->redirect_url); safe_free(err->url); safe_free(err->host); - cbdataFree(err); + if (BIT_TEST(err->flags, ERR_FLAG_CBDATA)) + cbdataFree(err); + else + safe_free(err); } #define CVT_BUF_SZ 512 @@ -261,6 +264,7 @@ errorSend(int fd, ErrorState * err) buf = errorBuildBuf(err, &len); cbdataAdd(err); cbdataLock(err); + BIT_SET(err->flags, ERR_FLAG_CBDATA); comm_write(fd, xstrdup(buf), len, errorSendComplete, err, xfree); } diff --git a/src/structs.h b/src/structs.h index 830e184751..1e748e189e 100644 --- a/src/structs.h +++ b/src/structs.h @@ -883,4 +883,5 @@ struct _ErrorState { char *redirect_url; ERCB *callback; void *callback_data; + int flags; };