Skip to content

Commit f91dbb3

Browse files
committed
fix: remove glob vulnerability
1 parent c64e3d7 commit f91dbb3

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

index.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ var fs = require('fs');
1616
var os = require('os');
1717
var path = require('path');
1818
var util = require('util');
19-
var mkdirp = require('mkdirp');
20-
var glob = require('glob');
2119

2220
function getExtension(hook) {
2321
return path.extname(hook.script) || '.mjs';
@@ -86,16 +84,21 @@ function forEachHook(pkgdir, callback) {
8684

8785
function hookInstalled(hookDir, pkg, hook) {
8886
var hookBaseName = pkg.name;
89-
var hookGlob = path.join(hookDir, "*" + hookBaseName + "*");
90-
var files = glob.sync(hookGlob);
91-
return files.length > 0;
87+
try {
88+
var entries = fs.readdirSync(hookDir);
89+
return entries.some(function (entry) {
90+
return entry.includes(hookBaseName);
91+
});
92+
} catch (e) {
93+
return false;
94+
}
9295
}
9396

9497
function postinstall(pkgdir) {
9598
forEachHook(pkgdir, function (hooksDir, pkg, hook) {
9699
var hookDir = path.join(hooksDir, hook.type);
97100
if (!fs.existsSync(hookDir)) {
98-
mkdirp.sync(hookDir);
101+
fs.mkdirSync(hookDir, { recursive: true });
99102
}
100103
if (hookInstalled(hookDir, pkg, hook)) {
101104
console.log(`Hook already installed: ${pkg.name} at location: ${hookDir}`);

0 commit comments

Comments
 (0)