From b34960e6ce72825f387ed4238283b602958658b0 Mon Sep 17 00:00:00 2001 From: Ruslan Shestopalyuk Date: Fri, 2 Aug 2024 16:39:46 -0700 Subject: [PATCH] Add a safeguard against incorrect Java method argument type assumption Summary: Adds a safeguard inside Java side marshalling of the arguments via ReadableArray - even though the majority of code do make an explicit assumption of the argument type, in practice it's not always the case. Differential Revision: D60700917 --- .../main/java/com/facebook/react/bridge/JavaMethodWrapper.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java index d032e99805e4..b4e6df0d7693 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java @@ -70,6 +70,9 @@ public Integer extractArgument( @Override public String extractArgument( JSInstance jsInstance, ReadableArray jsArguments, int atIndex) { + if (jsArguments.isNull(atIndex) || jsArguments.getType(atIndex) != ReadableType.String) { + return null; + } return jsArguments.getString(atIndex); } };