Closed Bug 238963 Opened 20 years ago Closed 20 years ago

nsObserverList::GetObserverList should return OOM on failure

Categories

(Core :: XPCOM, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: timeless, Assigned: timeless)

Details

Attachments

(1 file)

consider this call chain:
nsObserverService::NotifyObservers
nsObserverService::EnumerateObservers
nsObserverService::GetObserverList
nsObserverList::GetObserverList

139     ObserverListEnumerator * enumerator= new
ObserverListEnumerator(mObserverList);
140     NS_IF_ADDREF(enumerator);
141     *anEnumerator = enumerator;
142     return NS_OK;

let new fail.
anEnumerator = 0
return NS_OK

this bubbles to 
199     rv = EnumerateObservers( aTopic, getter_AddRefs(observers) );
200     if ( NS_FAILED( rv ) )
false, so skip return
201         return rv;

203     while( NS_SUCCEEDED(observers->HasMoreElements(&loop)) && loop) 
null, so crash.
Attached patch return failureSplinter Review
Attachment #144945 - Flags: review?(dougt)
Attachment #144945 - Flags: review?(dougt) → review+
mozilla/xpcom/ds/nsObserverList.cpp 	3.31
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: