Author: steve_y
Date: Mon Jan 27 05:49:26 2014
New Revision: 1561587

URL: http://svn.apache.org/r1561587
Log:
Bug 124095 - Multiple IAccessible and IAccessible2 interface methods do not 
check for NULL pointer access, nor do they trap exceptions

Fixed by Michael Curran

Modified:
    openoffice/trunk/main/winaccessibility/source/UAccCOM/MAccessible.cpp

Modified: openoffice/trunk/main/winaccessibility/source/UAccCOM/MAccessible.cpp
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/winaccessibility/source/UAccCOM/MAccessible.cpp?rev=1561587&r1=1561586&r2=1561587&view=diff
==============================================================================
--- openoffice/trunk/main/winaccessibility/source/UAccCOM/MAccessible.cpp 
(original)
+++ openoffice/trunk/main/winaccessibility/source/UAccCOM/MAccessible.cpp Mon 
Jan 27 05:49:26 2014
@@ -353,8 +353,10 @@ STDMETHODIMP CMAccessible::get_accChild(
                                return S_OK;
                        }
                        *ppdispChild = GetChildInterface(varChild.lVal);
+                       if((*ppdispChild) == NULL)
+                               return E_FAIL;
                        (*ppdispChild)->AddRef();
-                       return (*ppdispChild)?S_OK:S_FALSE;
+                       return S_OK;
                }
                return S_FALSE;
 
@@ -1653,6 +1655,7 @@ STDMETHODIMP CMAccessible::get_nRelation
 
        CHECK_ENABLE_INF
                ENTER_PROTECTED_BLOCK
+               ISDESTROY()
 
                // #CHECK#
                if(nRelations == NULL)
@@ -1748,6 +1751,7 @@ STDMETHODIMP CMAccessible::get_relations
 
        CHECK_ENABLE_INF
                ENTER_PROTECTED_BLOCK
+               ISDESTROY()
 
                // #CHECK#
                if(relation == NULL || nRelations == NULL)
@@ -3240,6 +3244,8 @@ STDMETHODIMP CMAccessible:: get_toolkitV
 
 STDMETHODIMP CMAccessible::get_attributes(/*[out]*/ BSTR *pAttr)
 {
+       ENTER_PROTECTED_BLOCK
+       ISDESTROY()
        CHECK_ENABLE_INF
                Reference<XAccessibleContext> pRContext = 
pUNOInterface->getAccessibleContext();
        if( !pRContext.is() )
@@ -3264,5 +3270,6 @@ STDMETHODIMP CMAccessible::get_attribute
 
                return S_OK;
        }
+       LEAVE_PROTECTED_BLOCK
 }
 


Reply via email to