Closed Bug 1187447 Opened 5 years ago Closed 5 years ago

ProxyAccessible has non-virtual dtor

Categories

(Core :: Disability Access APIs, defect)

defect
Not set

Tracking

()

RESOLVED WONTFIX

People

(Reporter: erahm, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: coverity, Whiteboard: [MemShrink][CID 1306763])

Coverity indicates parent class |ProxyAccessible| has a non-virtual dtor [1] and child class |DocAccessibleParent| has a non-trivial destructor [2].

It's possible for this to lead to a leak if an instance of |DocAccessibleParent| is referenced by it's parent class type and then deleted. It looks like this is possible in |ProxyEntry| [3].

[1] https://hg.mozilla.org/mozilla-central/annotate/2ddec2dedced/accessible/ipc/ProxyAccessible.h#l37
[2] https://hg.mozilla.org/mozilla-central/annotate/2ddec2dedced/accessible/ipc/DocAccessibleParent.h#l32
[3] https://hg.mozilla.org/mozilla-central/annotate/2ddec2dedced/accessible/ipc/DocAccessibleParent.h#l147
(In reply to Eric Rahm [:erahm] from comment #0)
> Coverity indicates parent class |ProxyAccessible| has a non-virtual dtor [1]
> and child class |DocAccessibleParent| has a non-trivial destructor [2].
> 
> It's possible for this to lead to a leak if an instance of
> |DocAccessibleParent| is referenced by it's parent class type and then
> deleted. It looks like this is possible in |ProxyEntry| [3].

The hash table ProxyEntry is used for should never contain a pointer to a DocAccessibleParent* so that should never happen.Deleting a DocAccessibleparent anywhere other than TabChild::DeallocPDocAccessibleParent would be a bug forthat matter.
(In reply to Trevor Saunders (:tbsaunde) from comment #1)
> The hash table ProxyEntry is used for should never contain a pointer to a
> DocAccessibleParent* so that should never happen.Deleting a
> DocAccessibleparent anywhere other than
> TabChild::DeallocPDocAccessibleParent would be a bug forthat matter.

If you're sure it's not possible (nor could be possible in the future I guess) I'm fine w/ closing this as WONT FIX and I can tell coverity to ignore it.
Version: 33 Branch → Trunk
(In reply to Eric Rahm [:erahm] (out until 8/3) from comment #2)
> (In reply to Trevor Saunders (:tbsaunde) from comment #1)
> > The hash table ProxyEntry is used for should never contain a pointer to a
> > DocAccessibleParent* so that should never happen.Deleting a
> > DocAccessibleparent anywhere other than
> > TabChild::DeallocPDocAccessibleParent would be a bug forthat matter.
> 
> If you're sure it's not possible (nor could be possible in the future I
> guess) I'm fine w/ closing this as WONT FIX and I can tell coverity to
> ignore it.

yeah, they pretty different to the point I'm tempted to get rid of the inheritance.  So wontfix seems reasonable.
(In reply to Trevor Saunders (:tbsaunde) from comment #3)
> yeah, they pretty different to the point I'm tempted to get rid of the
> inheritance.  So wontfix seems reasonable.

Alright, lets close this as wontfix then. I'll update coverity to ignore this class.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.