From 74e87b5a8a94a59bbfa32bba554503921c74c68c Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sun, 27 Nov 2022 06:16:52 -0800 Subject: Fix crash in OnigurumaRegExp getters --- src/bun.js/bindings/OnigurumaRegExp.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/bun.js') diff --git a/src/bun.js/bindings/OnigurumaRegExp.cpp b/src/bun.js/bindings/OnigurumaRegExp.cpp index c9dedb09c..446a576e8 100644 --- a/src/bun.js/bindings/OnigurumaRegExp.cpp +++ b/src/bun.js/bindings/OnigurumaRegExp.cpp @@ -465,12 +465,18 @@ JSC_DEFINE_CUSTOM_GETTER(onigurumaRegExpProtoGetterFlags, (JSGlobalObject * glob JSC_DEFINE_CUSTOM_GETTER(onigurumaRegExpProtoGetterLastIndex, (JSGlobalObject * globalObject, EncodedJSValue encodedThis, PropertyName)) { auto* thisValue = jsDynamicCast(JSValue::decode(encodedThis)); + if (UNLIKELY(!thisValue)) { + return JSValue::encode(jsUndefined()); + } return JSValue::encode(jsNumber(thisValue->m_lastIndex)); } JSC_DEFINE_CUSTOM_SETTER(onigurumaRegExpProtoSetterLastIndex, (JSGlobalObject * globalObject, EncodedJSValue encodedThis, EncodedJSValue encodedValue, PropertyName)) { auto* thisValue = jsDynamicCast(JSValue::decode(encodedThis)); + if (UNLIKELY(!thisValue)) { + return JSValue::encode(jsUndefined()); + } auto throwScope = DECLARE_THROW_SCOPE(globalObject->vm()); JSValue value = JSValue::decode(encodedValue); if (!value.isAnyInt()) { -- cgit v1.2.3