APP-2975: Fix Fabric focus navigation use-after-free (#11583)

This commit is contained in:
Samuel Newman
2026-08-31 16:45:03 +03:00
committed by GitHub
parent 5fabad1b5d
commit 80d09a242d
3 changed files with 373 additions and 326 deletions
+15
View File
@@ -1,5 +1,20 @@
# ***This second part of this patch is load bearing, do not remove.***
## UIManager.cpp Patch - Fabric focus navigation use-after-free
Fixes Sentry issue APP-T4H9: a SIGSEGV in
`FabricUIManagerBinding::findNextFocusableElement` during focus navigation.
React Native 0.86 contains the safe implementation behind
`fixFindShadowNodeByTagRaceCondition`, but the public default is false. The
fallback captures a raw root shadow-node pointer in `tryCommit` and dereferences
it after the lock is released, allowing a concurrent commit or surface stop to
free the node first. This backports the final upstream implementation, which
holds the current revision's `shared_ptr` for the entire traversal.
**TODO: Remove after bumping React Native to a release containing
facebook/react-native#56850.**
## RefreshControl Patch - iOS 17.4 Haptic Regression
Patching `RCTRefreshControl.mm` temporarily to play an impact haptic on refresh when using iOS 17.4 or higher. Since