mirror of
				https://github.com/shivammathur/setup-php.git
				synced 2025-11-04 17:06:37 +07:00 
			
		
		
		
	Switch to environment files. Apply GHSA-mfwh-5m23-j46w (CVE-2020-15228)
This commit is contained in:
		
							
								
								
									
										103
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@ -953,6 +953,32 @@ class ExecState extends events.EventEmitter {
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 82:
 | 
			
		||||
/***/ (function(__unusedmodule, exports) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
// We use any as a valid input type
 | 
			
		||||
/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
/**
 | 
			
		||||
 * Sanitizes an input into a string so it can be passed into issueCommand safely
 | 
			
		||||
 * @param input input to sanitize into a string
 | 
			
		||||
 */
 | 
			
		||||
function toCommandValue(input) {
 | 
			
		||||
    if (input === null || input === undefined) {
 | 
			
		||||
        return '';
 | 
			
		||||
    }
 | 
			
		||||
    else if (typeof input === 'string' || input instanceof String) {
 | 
			
		||||
        return input;
 | 
			
		||||
    }
 | 
			
		||||
    return JSON.stringify(input);
 | 
			
		||||
}
 | 
			
		||||
exports.toCommandValue = toCommandValue;
 | 
			
		||||
//# sourceMappingURL=utils.js.map
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 86:
 | 
			
		||||
/***/ (function(__unusedmodule, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
@ -1003,6 +1029,42 @@ module.exports = require("os");
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 102:
 | 
			
		||||
/***/ (function(__unusedmodule, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
// For internal use, subject to change.
 | 
			
		||||
var __importStar = (this && this.__importStar) || function (mod) {
 | 
			
		||||
    if (mod && mod.__esModule) return mod;
 | 
			
		||||
    var result = {};
 | 
			
		||||
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
 | 
			
		||||
    result["default"] = mod;
 | 
			
		||||
    return result;
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
// We use any as a valid input type
 | 
			
		||||
/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
			
		||||
const fs = __importStar(__webpack_require__(747));
 | 
			
		||||
const os = __importStar(__webpack_require__(87));
 | 
			
		||||
const utils_1 = __webpack_require__(82);
 | 
			
		||||
function issueCommand(command, message) {
 | 
			
		||||
    const filePath = process.env[`GITHUB_${command}`];
 | 
			
		||||
    if (!filePath) {
 | 
			
		||||
        throw new Error(`Unable to find environment variable for file command ${command}`);
 | 
			
		||||
    }
 | 
			
		||||
    if (!fs.existsSync(filePath)) {
 | 
			
		||||
        throw new Error(`Missing file at path: ${filePath}`);
 | 
			
		||||
    }
 | 
			
		||||
    fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {
 | 
			
		||||
        encoding: 'utf8'
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
exports.issueCommand = issueCommand;
 | 
			
		||||
//# sourceMappingURL=file-command.js.map
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 129:
 | 
			
		||||
/***/ (function(module) {
 | 
			
		||||
 | 
			
		||||
@ -1348,6 +1410,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
const os = __importStar(__webpack_require__(87));
 | 
			
		||||
const utils_1 = __webpack_require__(82);
 | 
			
		||||
/**
 | 
			
		||||
 * Commands
 | 
			
		||||
 *
 | 
			
		||||
@ -1401,28 +1464,14 @@ class Command {
 | 
			
		||||
        return cmdStr;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * Sanitizes an input into a string so it can be passed into issueCommand safely
 | 
			
		||||
 * @param input input to sanitize into a string
 | 
			
		||||
 */
 | 
			
		||||
function toCommandValue(input) {
 | 
			
		||||
    if (input === null || input === undefined) {
 | 
			
		||||
        return '';
 | 
			
		||||
    }
 | 
			
		||||
    else if (typeof input === 'string' || input instanceof String) {
 | 
			
		||||
        return input;
 | 
			
		||||
    }
 | 
			
		||||
    return JSON.stringify(input);
 | 
			
		||||
}
 | 
			
		||||
exports.toCommandValue = toCommandValue;
 | 
			
		||||
function escapeData(s) {
 | 
			
		||||
    return toCommandValue(s)
 | 
			
		||||
    return utils_1.toCommandValue(s)
 | 
			
		||||
        .replace(/%/g, '%25')
 | 
			
		||||
        .replace(/\r/g, '%0D')
 | 
			
		||||
        .replace(/\n/g, '%0A');
 | 
			
		||||
}
 | 
			
		||||
function escapeProperty(s) {
 | 
			
		||||
    return toCommandValue(s)
 | 
			
		||||
    return utils_1.toCommandValue(s)
 | 
			
		||||
        .replace(/%/g, '%25')
 | 
			
		||||
        .replace(/\r/g, '%0D')
 | 
			
		||||
        .replace(/\n/g, '%0A')
 | 
			
		||||
@ -1456,6 +1505,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
const command_1 = __webpack_require__(431);
 | 
			
		||||
const file_command_1 = __webpack_require__(102);
 | 
			
		||||
const utils_1 = __webpack_require__(82);
 | 
			
		||||
const os = __importStar(__webpack_require__(87));
 | 
			
		||||
const path = __importStar(__webpack_require__(622));
 | 
			
		||||
/**
 | 
			
		||||
@ -1482,9 +1533,17 @@ var ExitCode;
 | 
			
		||||
 */
 | 
			
		||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
			
		||||
function exportVariable(name, val) {
 | 
			
		||||
    const convertedVal = command_1.toCommandValue(val);
 | 
			
		||||
    const convertedVal = utils_1.toCommandValue(val);
 | 
			
		||||
    process.env[name] = convertedVal;
 | 
			
		||||
    command_1.issueCommand('set-env', { name }, convertedVal);
 | 
			
		||||
    const filePath = process.env['GITHUB_ENV'] || '';
 | 
			
		||||
    if (filePath) {
 | 
			
		||||
        const delimiter = '_GitHubActionsFileCommandDelimeter_';
 | 
			
		||||
        const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;
 | 
			
		||||
        file_command_1.issueCommand('ENV', commandValue);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        command_1.issueCommand('set-env', { name }, convertedVal);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.exportVariable = exportVariable;
 | 
			
		||||
/**
 | 
			
		||||
@ -1500,7 +1559,13 @@ exports.setSecret = setSecret;
 | 
			
		||||
 * @param inputPath
 | 
			
		||||
 */
 | 
			
		||||
function addPath(inputPath) {
 | 
			
		||||
    command_1.issueCommand('add-path', {}, inputPath);
 | 
			
		||||
    const filePath = process.env['GITHUB_PATH'] || '';
 | 
			
		||||
    if (filePath) {
 | 
			
		||||
        file_command_1.issueCommand('PATH', inputPath);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        command_1.issueCommand('add-path', {}, inputPath);
 | 
			
		||||
    }
 | 
			
		||||
    process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
 | 
			
		||||
}
 | 
			
		||||
exports.addPath = addPath;
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user