check for null before querying the interface

This commit is contained in:
sspitzer%netscape.com 1999-05-06 00:19:49 +00:00
parent 5db6657def
commit b0094e1e0f
2 changed files with 26 additions and 4 deletions

View File

@ -172,10 +172,21 @@ NS_NewArticleList(nsINNTPArticleList **articleList,
nsINNTPHost* newsHost,
nsINNTPNewsgroup* newsgroup)
{
nsresult rv = NS_OK;
nsNNTPArticleList* aArticleList =
new nsNNTPArticleList(newsHost, newsgroup);
return aArticleList->QueryInterface(nsINNTPArticleList::GetIID(),
(void **)articleList);
if (aArticleList)
rv = aArticleList->QueryInterface(nsINNTPArticleList::GetIID(),
(void **)articleList);
else
rv = NS_ERROR_OUT_OF_MEMORY;
if (NS_FAILED(rv) && aArticleList)
delete aArticleList;
return rv;
}
NS_END_EXTERN_C

View File

@ -74,7 +74,9 @@ nsresult nsNNTPCategoryContainerStub::SetRootCategory(nsINNTPNewsgroup * aRootCa
{
char * name = nsnull;
aRootCategory->GetName(&name);
#ifdef DEBUG_sspitzer
printf("Setting root category for container to %s", name ? name : "unspecified");
#endif
m_newsgroup = aRootCategory;
NS_IF_ADDREF(m_newsgroup);
}
@ -91,8 +93,17 @@ nsresult NS_NewCategoryContainerFromNewsgroup(nsINNTPCategoryContainer ** aInsta
if (aInstancePtr)
{
stub = new nsNNTPCategoryContainerStub();
stub->SetRootCategory(group);
rv = stub->QueryInterface(nsINNTPCategoryContainer::GetIID(), (void **) aInstancePtr);
if (stub) {
stub->SetRootCategory(group);
rv = stub->QueryInterface(nsINNTPCategoryContainer::GetIID(), (void **) aInstancePtr);
}
else {
rv = NS_ERROR_OUT_OF_MEMORY;
}
if (NS_FAILED(rv) && stub) {
delete stub;
}
}
return rv;