Closed
Bug 11575
Opened 25 years ago
Closed 25 years ago
ServiceImpl::UnregisterResource does not catch null uri
Categories
(Core Graveyard :: RDF, defect, P3)
Tracking
(Not tracked)
CLOSED
FIXED
M9
People
(Reporter: jband_mozilla, Assigned: waterson)
Details
(Whiteboard: fix in hand)
ServiceImpl::UnregisterResource has
#ifdef REUSE_RESOURCE_URI_AS_KEY
const char* uri;
rv = aResource->GetValueConst(&uri);
#else
nsXPIDLCString uri;
rv = aResource->GetValue(getter_Copies(uri));
#endif
if (NS_FAILED(rv)) return rv;
PLHashEntry** hep = PL_HashTableRawLookup(mResources,
(*mResources->keyHash)(uri), uri);
(where REUSE_RESOURCE_URI_AS_KEY *is* #defined)
If the resource's uri == NULL, then GetValueConst returns NS_OK but we end up
passing a uri of NULL to PL_HashTableRawLookup and bad things happen.
It looks like you need a special check for uri == nsnull and a return of
whatever NS_ERROR_* makes sense to the caller.
I'm seeing this in the context of the call to
rdfService->UnregisterResource(this); in nsRDFResource::~nsRDFResource
This is when running in xpcshell :
var name = "component://netscape/rdf/resource-factory";
try {
var foo = Components.classes[name].createInstance();
print(foo);
foo = null;
gc();
} catch(e) {
print("caught+e");
}
Assignee | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Target Milestone: M9
Assignee | ||
Updated•25 years ago
|
Whiteboard: fix in hand
Assignee | ||
Updated•25 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Updated•6 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•