From: Petr Písař Date: Tue, 30 Jul 2019 09:11:50 +0000 (+0200) Subject: Fix a memory leak in ProcessManagementRecord() X-Git-Tag: 0.79~2^2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=16fe131b8a041d6c4de365f733f075c794aa0355;p=catagits%2Ffcgi2.git Fix a memory leak in ProcessManagementRecord() paramsPtr variable was always allocated but freed only if type was FCGI_GET_VALUES. In other cases the variable leaked. This patch fixes it. --- diff --git a/libfcgi/fcgiapp.c b/libfcgi/fcgiapp.c index 0f7946c..7ddecae 100644 --- a/libfcgi/fcgiapp.c +++ b/libfcgi/fcgiapp.c @@ -1454,13 +1454,14 @@ static void EmptyBuffProc(struct FCGX_Stream *stream, int doClose) static int ProcessManagementRecord(int type, FCGX_Stream *stream) { FCGX_Stream_Data *data = (FCGX_Stream_Data *)stream->data; - ParamsPtr paramsPtr = NewParams(3); + ParamsPtr paramsPtr; char **pPtr; char response[64]; /* 64 = 8 + 3*(1+1+14+1)* + padding */ char *responseP = &response[FCGI_HEADER_LEN]; char *name, value = '\0'; int len, paddedLen; if(type == FCGI_GET_VALUES) { + paramsPtr = NewParams(3); ReadParams(paramsPtr, stream); if((FCGX_GetError(stream) != 0) || (data->contentLen != 0)) { FreeParams(¶msPtr);