Bug 1689369 - Use fallible version of StringParam in BoxString. r=geckoview-reviewers,agi

If JavaScript string is UTF-16, we can return error when we cannot allocate
Java string. But if it is Latin-1, GeckoView crashes due to using infallible
version of StringParam.

So we should use fallible version of StringParam instead even if Latin-1.

Differential Revision: https://phabricator.services.mozilla.com/D112176
This commit is contained in:
Makoto Kato 2021-04-16 06:53:49 +00:00
parent 478a04966e
commit 76be4380bd

View File

@ -14,6 +14,7 @@
#include "js/Warnings.h" // JS::WarnUTF8
#include "xpcpublic.h"
#include "mozilla/fallible.h"
#include "mozilla/ScopeExit.h"
#include "mozilla/dom/ScriptSettings.h"
#include "mozilla/java/EventCallbackWrappers.h"
@ -52,7 +53,10 @@ nsresult BoxString(JSContext* aCx, JS::HandleValue aData,
NS_ENSURE_TRUE(CheckJS(aCx, autoStr.init(aCx, str)), NS_ERROR_FAILURE);
// StringParam can automatically convert a nsString to jstring.
aOut = jni::StringParam(autoStr, aOut.Env());
aOut = jni::StringParam(autoStr, aOut.Env(), fallible);
if (!aOut) {
return NS_ERROR_FAILURE;
}
return NS_OK;
}