From 77defa6e1928380fd8fad584295840e75abe0b5d Mon Sep 17 00:00:00 2001 From: Utkarsh Maheshwari Date: Fri, 6 Jan 2023 14:23:34 +0530 Subject: [PATCH] Fix incorrect string validation for URL --- lib/cookie.js | 6 ++++-- lib/validators.js | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/cookie.js b/lib/cookie.js index f90d6a71..450ed51a 100644 --- a/lib/cookie.js +++ b/lib/cookie.js @@ -1116,7 +1116,8 @@ class CookieJar { } setCookie(cookie, url, options, cb) { - validators.validate(validators.isNonEmptyString(url), cb, options); + validators.validate(validators.isUrlStringOrObject(url), cb, options); + let err; if (validators.isFunction(url)) { @@ -1314,7 +1315,8 @@ class CookieJar { // RFC6365 S5.4 getCookies(url, options, cb) { - validators.validate(validators.isNonEmptyString(url), cb, url); + validators.validate(validators.isUrlStringOrObject(url), cb, url); + const context = getCookieContext(url); if (validators.isFunction(options)) { cb = options; diff --git a/lib/validators.js b/lib/validators.js index 85581641..522988ee 100644 --- a/lib/validators.js +++ b/lib/validators.js @@ -59,6 +59,10 @@ function isInstanceStrict(data, prototype) { } } +function isUrlStringOrObject(data) { + return isNonEmptyString(data) || isObject(data); // TODO: Check for URL properties that are used. +} + function isInteger(data) { return typeof data === "number" && data % 1 === 0; } @@ -92,4 +96,5 @@ exports.isDate = isDate; exports.isEmptyString = isEmptyString; exports.isString = isString; exports.isObject = isObject; +exports.isUrlStringOrObject = isUrlStringOrObject; exports.validate = validate;