From 24ccdaeb04271c9622ee11687e3eb0099135487c Mon Sep 17 00:00:00 2001 From: "rickg%netscape.com" Date: Sat, 17 Jul 1999 11:08:28 +0000 Subject: [PATCH] removed potential memory deref errors git-svn-id: svn://10.0.0.236/trunk@39858 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/htmlparser/robot/nsRobotSink.cpp | 4 +- mozilla/htmlparser/robot/test/RobotMain.cpp | 8 ++- .../htmlparser/tests/grabpage/grabpage.cpp | 56 ++++++++++--------- .../parser/htmlparser/robot/nsRobotSink.cpp | 4 +- .../htmlparser/robot/test/RobotMain.cpp | 8 ++- .../htmlparser/tests/grabpage/grabpage.cpp | 56 ++++++++++--------- 6 files changed, 76 insertions(+), 60 deletions(-) diff --git a/mozilla/htmlparser/robot/nsRobotSink.cpp b/mozilla/htmlparser/robot/nsRobotSink.cpp index 16973301400..ed4ab680550 100644 --- a/mozilla/htmlparser/robot/nsRobotSink.cpp +++ b/mozilla/htmlparser/robot/nsRobotSink.cpp @@ -99,7 +99,9 @@ protected: nsresult NS_NewRobotSink(nsIRobotSink** aInstancePtrResult) { RobotSink* it = new RobotSink(); - return it->QueryInterface(kIRobotSinkIID, (void**) aInstancePtrResult); + if(it) + return it->QueryInterface(kIRobotSinkIID, (void**) aInstancePtrResult); + return NS_OK; } RobotSink::RobotSink() diff --git a/mozilla/htmlparser/robot/test/RobotMain.cpp b/mozilla/htmlparser/robot/test/RobotMain.cpp index 829290cc2dd..fd5ac9c8055 100644 --- a/mozilla/htmlparser/robot/test/RobotMain.cpp +++ b/mozilla/htmlparser/robot/test/RobotMain.cpp @@ -16,9 +16,11 @@ extern "C" NS_EXPORT int DebugRobot(nsVoidArray * workList, nsIWebShell * ww); int main(int argc, char **argv) { nsVoidArray * gWorkList = new nsVoidArray(); - int i; - for (i = 1; i < argc; i++) { - gWorkList->AppendElement(new nsString(argv[i])); + if(gWorkList) { + int i; + for (i = 1; i < argc; i++) { + gWorkList->AppendElement(new nsString(argv[i])); + } } static NS_DEFINE_IID(kCParserCID, NS_PARSER_IID); diff --git a/mozilla/htmlparser/tests/grabpage/grabpage.cpp b/mozilla/htmlparser/tests/grabpage/grabpage.cpp index 1aa90b42efa..04754375d6c 100644 --- a/mozilla/htmlparser/tests/grabpage/grabpage.cpp +++ b/mozilla/htmlparser/tests/grabpage/grabpage.cpp @@ -242,34 +242,36 @@ PageGrabber::Grab(const nsString& aURL) // Start the URL load... StreamToFile* copier = new StreamToFile(fp); - NS_ADDREF(copier); + if(copier) { + NS_ADDREF(copier); -#ifndef NECKO - rv = url->Open(copier); -#else - rv = channel->AsyncRead(0, -1, nsnull, copier); -#endif // NECKO + #ifndef NECKO + rv = url->Open(copier); + #else + rv = channel->AsyncRead(0, -1, nsnull, copier); + #endif // NECKO - if (NS_OK != rv) { - NS_RELEASE(copier); - NS_RELEASE(url); - return rv; - } - - // Enter the message pump to allow the URL load to proceed. -#ifdef XP_PC - MSG msg; - while ( !copier->IsDone() ) { - if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { - TranslateMessage(&msg); - DispatchMessage(&msg); + if (NS_OK != rv) { + NS_RELEASE(copier); + NS_RELEASE(url); + return rv; } - } -#endif + + // Enter the message pump to allow the URL load to proceed. + #ifdef XP_PC + MSG msg; + while ( !copier->IsDone() ) { + if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + #endif - PRBool error = copier->HaveError(); + PRBool error = copier->HaveError(); + NS_RELEASE(copier); + } NS_RELEASE(url); - NS_RELEASE(copier); return error ? NS_ERROR_OUT_OF_MEMORY : NS_OK; } @@ -285,9 +287,11 @@ main(int argc, char **argv) return -1; } PageGrabber* grabber = new PageGrabber(); - grabber->Init(argv[2]); - if (NS_OK != grabber->Grab(argv[1])) { - return -1; + if(grabber) { + grabber->Init(argv[2]); + if (NS_OK != grabber->Grab(argv[1])) { + return -1; + } } return 0; } diff --git a/mozilla/parser/htmlparser/robot/nsRobotSink.cpp b/mozilla/parser/htmlparser/robot/nsRobotSink.cpp index 16973301400..ed4ab680550 100644 --- a/mozilla/parser/htmlparser/robot/nsRobotSink.cpp +++ b/mozilla/parser/htmlparser/robot/nsRobotSink.cpp @@ -99,7 +99,9 @@ protected: nsresult NS_NewRobotSink(nsIRobotSink** aInstancePtrResult) { RobotSink* it = new RobotSink(); - return it->QueryInterface(kIRobotSinkIID, (void**) aInstancePtrResult); + if(it) + return it->QueryInterface(kIRobotSinkIID, (void**) aInstancePtrResult); + return NS_OK; } RobotSink::RobotSink() diff --git a/mozilla/parser/htmlparser/robot/test/RobotMain.cpp b/mozilla/parser/htmlparser/robot/test/RobotMain.cpp index 829290cc2dd..fd5ac9c8055 100644 --- a/mozilla/parser/htmlparser/robot/test/RobotMain.cpp +++ b/mozilla/parser/htmlparser/robot/test/RobotMain.cpp @@ -16,9 +16,11 @@ extern "C" NS_EXPORT int DebugRobot(nsVoidArray * workList, nsIWebShell * ww); int main(int argc, char **argv) { nsVoidArray * gWorkList = new nsVoidArray(); - int i; - for (i = 1; i < argc; i++) { - gWorkList->AppendElement(new nsString(argv[i])); + if(gWorkList) { + int i; + for (i = 1; i < argc; i++) { + gWorkList->AppendElement(new nsString(argv[i])); + } } static NS_DEFINE_IID(kCParserCID, NS_PARSER_IID); diff --git a/mozilla/parser/htmlparser/tests/grabpage/grabpage.cpp b/mozilla/parser/htmlparser/tests/grabpage/grabpage.cpp index 1aa90b42efa..04754375d6c 100644 --- a/mozilla/parser/htmlparser/tests/grabpage/grabpage.cpp +++ b/mozilla/parser/htmlparser/tests/grabpage/grabpage.cpp @@ -242,34 +242,36 @@ PageGrabber::Grab(const nsString& aURL) // Start the URL load... StreamToFile* copier = new StreamToFile(fp); - NS_ADDREF(copier); + if(copier) { + NS_ADDREF(copier); -#ifndef NECKO - rv = url->Open(copier); -#else - rv = channel->AsyncRead(0, -1, nsnull, copier); -#endif // NECKO + #ifndef NECKO + rv = url->Open(copier); + #else + rv = channel->AsyncRead(0, -1, nsnull, copier); + #endif // NECKO - if (NS_OK != rv) { - NS_RELEASE(copier); - NS_RELEASE(url); - return rv; - } - - // Enter the message pump to allow the URL load to proceed. -#ifdef XP_PC - MSG msg; - while ( !copier->IsDone() ) { - if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { - TranslateMessage(&msg); - DispatchMessage(&msg); + if (NS_OK != rv) { + NS_RELEASE(copier); + NS_RELEASE(url); + return rv; } - } -#endif + + // Enter the message pump to allow the URL load to proceed. + #ifdef XP_PC + MSG msg; + while ( !copier->IsDone() ) { + if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + #endif - PRBool error = copier->HaveError(); + PRBool error = copier->HaveError(); + NS_RELEASE(copier); + } NS_RELEASE(url); - NS_RELEASE(copier); return error ? NS_ERROR_OUT_OF_MEMORY : NS_OK; } @@ -285,9 +287,11 @@ main(int argc, char **argv) return -1; } PageGrabber* grabber = new PageGrabber(); - grabber->Init(argv[2]); - if (NS_OK != grabber->Grab(argv[1])) { - return -1; + if(grabber) { + grabber->Init(argv[2]); + if (NS_OK != grabber->Grab(argv[1])) { + return -1; + } } return 0; }