summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRon Bessems <ron.b@promixis.com>2015-07-08 10:14:10 -0400
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-07-22 13:48:16 +0000
commita0e2e715f58134c7c913996e036b154df1f71d99 (patch)
tree60789304e17ee45b7280eaa5881b8aa19f9ea5b2 /src
parentf9eb2534de4633409246f1be8e154947d840de82 (diff)
Fixed null pointer dereference
Crash in qtwidgets.dll when Qt app is used with accessibility tools like Dragon. Crash due to null pointer dereference. Task-number: QTBUG-47093 Change-Id: I140196ba44b68dfaf229dd8a8e6031379ea1acac Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
index 8b67f235bb..2189938248 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
@@ -689,7 +689,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accChild(VARIANT varChildI
return E_INVALIDARG;
QAccessibleInterface *acc = childPointer(accessible, varChildID);
- if (acc) {
+ if (acc && acc->isValid()) {
*ppdispChild = QWindowsAccessibility::wrap(acc);
return S_OK;
}
@@ -778,7 +778,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accDescription(VARIANT var
QString descr;
if (varID.lVal) {
QAccessibleInterface *child = childPointer(accessible, varID);
- if (!child)
+ if (!child || !child->isValid())
return E_FAIL;
descr = child->text(QAccessible::Description);
} else {
@@ -803,7 +803,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accHelp(VARIANT varID, BST
QString help;
if (varID.lVal) {
QAccessibleInterface *child = childPointer(accessible, varID);
- if (!child)
+ if (!child || !child->isValid())
return E_FAIL;
help = child->text(QAccessible::Help);
} else {
@@ -862,7 +862,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accName(VARIANT varID, BST
QString name;
if (varID.lVal) {
QAccessibleInterface *child = childPointer(accessible, varID);
- if (!child)
+ if (!child || !child->isValid())
return E_FAIL;
name = child->text(QAccessible::Name);
if (name.isEmpty()) {
@@ -910,7 +910,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accRole(VARIANT varID, VAR
QAccessible::Role role;
if (varID.lVal) {
QAccessibleInterface *child = childPointer(accessible, varID);
- if (!child)
+ if (!child || !child->isValid())
return E_FAIL;
role = child->role();
} else {
@@ -947,7 +947,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accState(VARIANT varID, VA
QAccessible::State state;
if (varID.lVal) {
QAccessibleInterface *child = childPointer(accessible, varID);
- if (!child)
+ if (!child || !child->isValid())
return E_FAIL;
state = child->state();
} else {