|
 |
69cc7b |
From b6b0f7b99b68c66ea2b5e8e507c52801796b4d97 Mon Sep 17 00:00:00 2001
|
|
 |
69cc7b |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
69cc7b |
Date: Wed, 18 Oct 2017 11:05:20 +0100
|
|
 |
69cc7b |
Subject: [PATCH] a11y: crash in use after dispose
|
|
 |
69cc7b |
|
|
 |
69cc7b |
calc, chart in tab 3 with a11y enabled, select chart
|
|
 |
69cc7b |
switch to tab 1, crash cause mpParent has been deleted, IsDisposed
|
|
 |
69cc7b |
is correctly set, but shape accesses parent anyway
|
|
 |
69cc7b |
|
|
 |
69cc7b |
Change-Id: I6f57a798bfcc82eebb883291cec54e157ff5187b
|
|
 |
69cc7b |
|
|
 |
69cc7b |
potential deref of empty xStateSet
|
|
 |
69cc7b |
|
|
 |
69cc7b |
Change-Id: I83d876b0d966b18cdf85249b7e856e4e4f4dec27
|
|
 |
69cc7b |
---
|
|
 |
69cc7b |
svx/source/accessibility/AccessibleShape.cxx | 6 ++++--
|
|
 |
69cc7b |
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
 |
69cc7b |
|
|
 |
69cc7b |
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
|
|
 |
69cc7b |
index 043ba8e..47c0aca 100644
|
|
 |
69cc7b |
--- a/svx/source/accessibility/AccessibleShape.cxx
|
|
 |
69cc7b |
+++ b/svx/source/accessibility/AccessibleShape.cxx
|
|
 |
69cc7b |
@@ -410,7 +410,9 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
|
|
 |
69cc7b |
::osl::MutexGuard aGuard (maMutex);
|
|
 |
69cc7b |
Reference<XAccessibleStateSet> xStateSet;
|
|
 |
69cc7b |
|
|
 |
69cc7b |
- if (IsDisposed())
|
|
 |
69cc7b |
+ bool bDisposed = IsDisposed();
|
|
 |
69cc7b |
+
|
|
 |
69cc7b |
+ if (bDisposed)
|
|
 |
69cc7b |
{
|
|
 |
69cc7b |
// Return a minimal state set that only contains the DEFUNC state.
|
|
 |
69cc7b |
xStateSet = AccessibleContextBase::getAccessibleStateSet ();
|
|
 |
69cc7b |
@@ -461,7 +463,7 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
|
|
 |
69cc7b |
xStateSet.set( new ::utl::AccessibleStateSetHelper (*pStateSet));
|
|
 |
69cc7b |
}
|
|
 |
69cc7b |
}
|
|
 |
69cc7b |
- if (mpParent && mpParent->IsDocumentSelAll())
|
|
 |
69cc7b |
+ if (!bDisposed && xStateSet.is() && mpParent && mpParent->IsDocumentSelAll())
|
|
 |
69cc7b |
{
|
|
 |
69cc7b |
::utl::AccessibleStateSetHelper* pStateSet =
|
|
 |
69cc7b |
static_cast< ::utl::AccessibleStateSetHelper*>(xStateSet.get());
|
|
 |
69cc7b |
--
|
|
 |
69cc7b |
2.9.5
|
|
 |
69cc7b |
|