diff --git a/ReactCommon/cxxreact/JSBigString.cpp b/ReactCommon/cxxreact/JSBigString.cpp index 325ac35325b..57baa283399 100644 --- a/ReactCommon/cxxreact/JSBigString.cpp +++ b/ReactCommon/cxxreact/JSBigString.cpp @@ -110,6 +110,9 @@ static off_t maybeRemap(char *data, size_t size, int fd) { #endif // WITH_FBREMAP const char *JSBigFileString::c_str() const { + if (m_size == 0) { + return ""; + } if (!m_data) { m_data = (const char *) mmap(0, m_size, PROT_READ, MAP_PRIVATE, m_fd, m_mapOff); diff --git a/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp b/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp index 351d26fe067..e261dc574b0 100644 --- a/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +++ b/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp @@ -161,6 +161,10 @@ void JSIExecutor::registerBundle( bundleRegistry_->registerBundle(bundleId, bundlePath); } else { auto script = JSBigFileString::fromPath(bundlePath); + if (script->size() == 0) { + throw std::invalid_argument( + "Empty bundle registered with ID " + tag + " from " + bundlePath); + } runtime_->evaluateJavaScript( std::make_unique(std::move(script)), JSExecutor::getSyntheticBundlePath(bundleId, bundlePath));