b1aa1b
From 62287c7af3aabd73db9bd1057c4c6cfcb5f3f67b Mon Sep 17 00:00:00 2001
b1aa1b
From: Takayuki Sato <sttk.xslet@gmail.com>
b1aa1b
Date: Tue, 20 Jul 2021 14:46:33 +0900
b1aa1b
Subject: [PATCH] deps(glob-parent): Resolve ReDoS vulnerability from
b1aa1b
 CVE-2021-35065 (#49)
b1aa1b
b1aa1b
Signed-off-by: rpm-build <rpm-build>
b1aa1b
---
b1aa1b
 node_modules/glob-parent/index.js | 27 +++++++++++++++++++++++++--
b1aa1b
 1 file changed, 25 insertions(+), 2 deletions(-)
b1aa1b
b1aa1b
diff --git a/node_modules/glob-parent/index.js b/node_modules/glob-parent/index.js
b1aa1b
index 09e257e..b182190 100644
b1aa1b
--- a/node_modules/glob-parent/index.js
b1aa1b
+++ b/node_modules/glob-parent/index.js
b1aa1b
@@ -6,7 +6,6 @@ var isWin32 = require('os').platform() === 'win32';
b1aa1b
 
b1aa1b
 var slash = '/';
b1aa1b
 var backslash = /\\/g;
b1aa1b
-var enclosure = /[\{\[].*[\}\]]$/;
b1aa1b
 var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/;
b1aa1b
 var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;
b1aa1b
 
b1aa1b
@@ -25,7 +24,7 @@ module.exports = function globParent(str, opts) {
b1aa1b
   }
b1aa1b
 
b1aa1b
   // special case for strings ending in enclosure containing path separator
b1aa1b
-  if (enclosure.test(str)) {
b1aa1b
+  if (isEnclosure(str)) {
b1aa1b
     str += slash;
b1aa1b
   }
b1aa1b
 
b1aa1b
@@ -40,3 +39,27 @@ module.exports = function globParent(str, opts) {
b1aa1b
   // remove escape chars and return result
b1aa1b
   return str.replace(escaped, '$1');
b1aa1b
 };
b1aa1b
+
b1aa1b
+
b1aa1b
+function isEnclosure(str) {
b1aa1b
+  var lastChar = str.slice(-1)
b1aa1b
+
b1aa1b
+  var enclosureStart;
b1aa1b
+  switch (lastChar) {
b1aa1b
+    case '}':
b1aa1b
+      enclosureStart = '{';
b1aa1b
+      break;
b1aa1b
+    case ']':
b1aa1b
+      enclosureStart = '[';
b1aa1b
+      break;
b1aa1b
+    default:
b1aa1b
+      return false;
b1aa1b
+  }
b1aa1b
+
b1aa1b
+  var foundIndex = str.indexOf(enclosureStart);
b1aa1b
+  if (foundIndex < 0) {
b1aa1b
+    return false;
b1aa1b
+  }
b1aa1b
+
b1aa1b
+  return str.slice(foundIndex + 1, -1).includes(slash);
b1aa1b
+}
b1aa1b
-- 
b1aa1b
2.39.2
b1aa1b