JBR-9580 Fix crash in [MenuAccessibility accessibilityChildren]

* Add null checks for variables that can have null values to prevent hard crash
* Add missing CHECK_EXCEPTION after JNI call
* Add missing DeleteLocalRef for axComponent
This commit is contained in:
Dmitry Drobotov
2025-11-07 12:39:13 +01:00
committed by Nikita Provotorov
parent 51486e5db9
commit 96fcd9e591

View File

@@ -67,9 +67,17 @@ static jclass sjc_CAccessibility = NULL;
jobject axComponent = (*env)->CallStaticObjectMethod(env, sjc_CAccessibility, jobject axComponent = (*env)->CallStaticObjectMethod(env, sjc_CAccessibility,
sjm_getCurrentAccessiblePopupMenu, sjm_getCurrentAccessiblePopupMenu,
fAccessible, fComponent); fAccessible, fComponent);
CHECK_EXCEPTION();
if (axComponent == NULL) {
return nil;
}
CommonComponentAccessibility *currentElement = [CommonComponentAccessibility createWithAccessible:axComponent CommonComponentAccessibility *currentElement = [CommonComponentAccessibility createWithAccessible:axComponent
withEnv:env withView:self->fView isCurrent:YES]; withEnv:env withView:self->fView isCurrent:YES];
(*env)->DeleteLocalRef(env, axComponent);
if (currentElement == nil) {
return nil;
}
NSArray *children = [CommonComponentAccessibility childrenOfParent:currentElement NSArray *children = [CommonComponentAccessibility childrenOfParent:currentElement
withEnv:env withEnv:env