Compare commits

...

1 Commits

Author SHA1 Message Date
Jarred Sumner
1da8af5bc4 Fixes #20283 2025-06-09 16:48:07 -07:00
2 changed files with 20 additions and 6 deletions

View File

@@ -98,13 +98,15 @@ JSBunRequest* JSBunRequest::clone(JSC::VM& vm, JSGlobalObject* globalObject)
clone->setParams(paramsClone);
}
if (auto* wrapper = jsDynamicCast<JSCookieMap*>(this->cookies())) {
auto cookieMap = wrapper->protectedWrapped();
auto cookieMapClone = cookieMap->clone();
auto cookies = WebCore::toJSNewlyCreated(globalObject, jsCast<JSDOMGlobalObject*>(globalObject), WTFMove(cookieMapClone));
clone->setCookies(cookies.getObject());
auto* cookies = this->cookies();
if (cookies) {
if (auto* wrapper = jsDynamicCast<JSCookieMap*>(cookies)) {
auto cookieMap = wrapper->protectedWrapped();
auto cookieMapClone = cookieMap->clone();
auto cookies = WebCore::toJSNewlyCreated(globalObject, jsCast<JSDOMGlobalObject*>(globalObject), WTFMove(cookieMapClone));
clone->setCookies(cookies.getObject());
}
}
RELEASE_AND_RETURN(throwScope, clone);
}

View File

@@ -592,3 +592,15 @@ describe("Direct usage of Bun.Cookie and Bun.CookieMap", () => {
expect(parsed.value).toBe("value");
});
});
it("doesnt crash if you clone it without accessing cookies", async () => {
using server = Bun.serve({
routes: {
"/": req => {
req.clone();
},
},
port: 0,
});
await fetch(`http://127.0.0.1:${server.port}`);
});