[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-filesystem-cvs
Subject: [Filesystem-cvs] httplite httpfileobj.cpp,1.7.2.4,1.7.2.5
From: acolwell () helixcommunity ! org
Date: 2004-03-24 21:30:08
[Download RAW message or body]
Update of /cvsroot/filesystem/httplite
In directory cvs.internal.helixcommunity.org:/tmp/cvs-serv32364
Modified Files:
Tag: hxclient_1_3_0_neptunex
httpfileobj.cpp
Log Message:
Fix crash caused by using m_pFileResponse when it was NULL. Added NULL pointer
checks for all uses of m_pFileResponse
Index: httpfileobj.cpp
===================================================================
RCS file: /cvsroot/filesystem/httplite/httpfileobj.cpp,v
retrieving revision 1.7.2.4
retrieving revision 1.7.2.5
diff -u -d -r1.7.2.4 -r1.7.2.5
--- httpfileobj.cpp 19 Mar 2004 08:21:15 -0000 1.7.2.4
+++ httpfileobj.cpp 24 Mar 2004 21:30:06 -0000 1.7.2.5
@@ -500,7 +500,10 @@
m_lNewReadOffset = -1;
m_bInSeekDone = TRUE;
- m_pFileResponse->SeekDone(HXR_OK);
+ if (m_pFileResponse)
+ {
+ m_pFileResponse->SeekDone(HXR_OK);
+ }
m_bInSeekDone = FALSE;
}
}
@@ -915,7 +918,10 @@
(m_bDisconnected == TRUE) && (m_pCache->IsEmpty())
)
{
- m_pFileResponse->ReadDone(HXR_SERVER_DISCONNECTED, NULL);
+ if (m_pFileResponse)
+ {
+ m_pFileResponse->ReadDone(HXR_SERVER_DISCONNECTED, NULL);
+ }
return HXR_OK;
}
@@ -951,7 +957,11 @@
// being modified in some method called from ReadDone().
IHXBuffer* pBuff = m_pPendingReadInfo.pPendingReadBuff;
m_pPendingReadInfo.pPendingReadBuff = NULL;
- m_pFileResponse->ReadDone(HXR_OK, pBuff);
+
+ if (m_pFileResponse)
+ {
+ m_pFileResponse->ReadDone(HXR_OK, pBuff);
+ }
HX_RELEASE(pBuff);
pBuff = NULL;
@@ -973,7 +983,11 @@
{
m_ulCurrentReadOffset = m_pPendingReadInfo.ulReadOffset + m_pPendingReadInfo.ulSize;
m_bReadPending = FALSE;
- m_pFileResponse->ReadDone(HXR_OK, pBuffer);
+
+ if (m_pFileResponse)
+ {
+ m_pFileResponse->ReadDone(HXR_OK, pBuffer);
+ }
}
// This means that the Cache has only partial data. Create a buffer to store this partial data.
@@ -1027,7 +1041,11 @@
{
m_bReadPending = FALSE;
m_ulCurrentReadOffset = m_pPendingReadInfo.ulReadOffset;
- m_pFileResponse->ReadDone(HXR_INCOMPLETE, pBuffer);
+
+ if (m_pFileResponse)
+ {
+ m_pFileResponse->ReadDone(HXR_INCOMPLETE, pBuffer);
+ }
}
else
{
@@ -1146,7 +1164,7 @@
if(status != HXR_OK)
{
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(status);
}
@@ -1163,7 +1181,7 @@
res = _PrepareHTTP10GetMessage(HttpGetReq, ulReqLen);
if(res != HXR_OK)
{
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(HXR_OUTOFMEMORY);
}
@@ -1174,7 +1192,7 @@
CHXBuffer* pSendBuffer = new CHXBuffer((UCHAR*)HttpGetReq, ulReqLen);
if(pSendBuffer == NULL)
{
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(HXR_OUTOFMEMORY);
}
@@ -1225,7 +1243,7 @@
{
if( (status != HXR_OK) || (pBuffer == NULL) )
{
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(HXR_FAIL);
}
@@ -1248,7 +1266,10 @@
m_bFirstChunk = TRUE;
// The requested file is not present on the web server
- m_pFileResponse->InitDone(HXR_DOC_MISSING);
+ if (m_pFileResponse)
+ {
+ m_pFileResponse->InitDone(HXR_DOC_MISSING);
+ }
}
return HXR_OK;
@@ -1316,7 +1337,7 @@
if( (hdr == NULL) || (data == NULL) )
{
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(HXR_OUTOFMEMORY);
}
@@ -1350,7 +1371,7 @@
delete hdr;
delete data;
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(HXR_OUTOFMEMORY);
}
@@ -1380,7 +1401,7 @@
m_pHeader = NULL;
HX_RELEASE(dataBuff);
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(HXR_INVALID_FILE);
}
@@ -1398,7 +1419,7 @@
m_pHeader = NULL;
HX_RELEASE(dataBuff);
- if(!m_bInitialized)
+ if(!m_bInitialized && m_pFileResponse)
{
m_pFileResponse->InitDone(HXR_INVALID_FILE);
}
@@ -1525,7 +1546,7 @@
{
MLOG_HTTP("CHXHTTPFileObject::Func()\n");
- if(m_bInitResponsePending)
+ if(m_bInitResponsePending && m_pFileResponse)
{
m_bInitResponsePending = FALSE;
m_bInitialized = TRUE;
@@ -1545,7 +1566,11 @@
m_bIncompleteReadPending = FALSE;
IHXBuffer* pBuff = m_pPendingReadInfo.pPendingReadBuff;
m_pPendingReadInfo.pPendingReadBuff = NULL;
- m_pFileResponse->ReadDone(HXR_INCOMPLETE, pBuff);
+
+ if (m_pFileResponse)
+ {
+ m_pFileResponse->ReadDone(HXR_INCOMPLETE, pBuff);
+ }
HX_RELEASE(pBuff);
pBuff = NULL;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic