[ATK] Missing checks in returnIfWebKitAccessibleIsInvalid
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Oct 2013 16:19:47 +0000 (16:19 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Oct 2013 16:19:47 +0000 (16:19 +0000)
https://bugs.webkit.org/show_bug.cgi?id=122600

Patch by Mario Sanchez Prada <mario.prada@samsung.com> on 2013-10-10
Reviewed by Chris Fleizach.

Check that the AccessibilityObject associated to the ATK wrapper
is not NULL and contains a valid reference to the document before
calling AccessibilityObject::updateBackingStore().

* accessibility/atk/WebKitAccessibleUtil.h: Add extra checks.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@157227 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/accessibility/atk/WebKitAccessibleUtil.h

index 5cf0b7b8d4648ce42bd2e6f42f219eb4f1587cab..73c2efae63f9e10007dea092ab35c2a4d3cc1bce 100644 (file)
@@ -1,3 +1,16 @@
+2013-10-10  Mario Sanchez Prada  <mario.prada@samsung.com>
+
+        [ATK] Missing checks in returnIfWebKitAccessibleIsInvalid
+        https://bugs.webkit.org/show_bug.cgi?id=122600
+
+        Reviewed by Chris Fleizach.
+
+        Check that the AccessibilityObject associated to the ATK wrapper
+        is not NULL and contains a valid reference to the document before
+        calling AccessibilityObject::updateBackingStore().
+
+        * accessibility/atk/WebKitAccessibleUtil.h: Add extra checks.
+
 2013-10-10  Andreas Kling  <akling@apple.com>
 
         Clean up JSDOMWindowShell a little.
index bc7065fe5216be279e2f474d94cd20c30a814b98..d0312dcd1476e3ac0d275cdea03f047dfd585baf 100644 (file)
@@ -39,7 +39,10 @@ class VisibleSelection;
     if (!webkitAccessible || webkitAccessibleIsDetached(webkitAccessible)) { \
         return; \
     } else { \
-        webkitAccessibleGetAccessibilityObject(webkitAccessible)->updateBackingStore(); \
+        AccessibilityObject* coreObject = webkitAccessibleGetAccessibilityObject(webkitAccessible); \
+        if (!coreObject || !coreObject->document()) \
+            return; \
+        coreObject->updateBackingStore(); \
         if (webkitAccessibleIsDetached(webkitAccessible)) \
             return; \
     }; } G_STMT_END
@@ -48,7 +51,10 @@ class VisibleSelection;
     if (!webkitAccessible || webkitAccessibleIsDetached(webkitAccessible)) { \
         return (val); \
     } else { \
-        webkitAccessibleGetAccessibilityObject(webkitAccessible)->updateBackingStore(); \
+        AccessibilityObject* coreObject = webkitAccessibleGetAccessibilityObject(webkitAccessible); \
+        if (!coreObject || !coreObject->document()) \
+            return (val); \
+        coreObject->updateBackingStore(); \
         if (webkitAccessibleIsDetached(webkitAccessible)) \
             return (val); \
     }; } G_STMT_END