From 61c1bb194c133d456fa5abc16598c5480dc1e274 Mon Sep 17 00:00:00 2001 From: "Tanner B. Hess Webber" Date: Thu, 13 Oct 2022 16:38:46 -0400 Subject: [PATCH] fix(helpers): handles improper inputs gracefully in isURLSameOrigin --- lib/helpers/isURLSameOrigin.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/helpers/isURLSameOrigin.js b/lib/helpers/isURLSameOrigin.js index 18db03b3c5..d9f05f16d1 100644 --- a/lib/helpers/isURLSameOrigin.js +++ b/lib/helpers/isURLSameOrigin.js @@ -53,9 +53,20 @@ export default platform.isStandardBrowserEnv ? * @returns {boolean} True if URL shares the same origin, otherwise false */ return function isURLSameOrigin(requestURL) { - const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; - return (parsed.protocol === originURL.protocol && - parsed.host === originURL.host); + if ( + !requestURL || + (!utils.isString(requestURL) && + !( + Object.prototype.hasOwnProperty.call(requestURL, "protocol") && + Object.prototype.hasOwnProperty.call(requestURL, "host") + )) + ) { + return utils.isString(requestURL) ? requestURL : typeof requestURL; + } + const parsed = resolveURL(requestURL); + return ( + parsed.protocol === originURL.protocol && parsed.host === originURL.host + ); }; })() :