Files
codeql-action/node_modules/glob-hash/lib/jail.js
2020-12-09 21:28:55 +01:00

28 lines
858 B
JavaScript

'use strict'
var normalise = require('./normalise');
/**
* A utility to deny access to files outside
* a given base path. Works by checking if all
* the filenames start with the base path.
*
* @param {Array} files A list of absolute paths.
* @param {String} jail The jail path.
* @return {String} An error message, undefined otherwise.
*/
module.exports = function(files, jail) {
if (jail) {
if (typeof jail !== 'string') {
return 'Invalid jail path.';
}
// files array is already normalised
// jail path also needs to be absolute
jail = normalise(jail);
for (var i = 0; i < files.length; i++) {
if (files[i].substr(0, jail.length) !== jail) {
return 'Attemp to read outside the permitted path.';
}
}
}
};