mirror of
				https://github.com/docker/login-action.git
				synced 2025-10-31 01:40:11 +08:00 
			
		
		
		
	Merge pull request #15 from crazy-max/cve-2020-15228
Fix CVE-2020-15228
This commit is contained in:
		
						commit
						34d5f75b0d
					
				
							
								
								
									
										103
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1261,6 +1261,8 @@ var __importStar = (this && this.__importStar) || function (mod) { | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const command_1 = __webpack_require__(351); | ||||
| const file_command_1 = __webpack_require__(717); | ||||
| const utils_1 = __webpack_require__(278); | ||||
| const os = __importStar(__webpack_require__(87)); | ||||
| const path = __importStar(__webpack_require__(622)); | ||||
| /** | ||||
| @ -1287,9 +1289,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; | ||||
| /** | ||||
| @ -1305,7 +1315,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; | ||||
| @ -1475,6 +1491,32 @@ const lt = (a, b, loose) => compare(a, b, loose) < 0 | ||||
| module.exports = lt | ||||
| 
 | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 278: | ||||
| /***/ (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
 | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 293: | ||||
| @ -1568,6 +1610,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__(278); | ||||
| /** | ||||
|  * Commands | ||||
|  * | ||||
| @ -1621,28 +1664,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') | ||||
| @ -2845,6 +2874,42 @@ const toComparators = (range, options) => | ||||
| module.exports = toComparators | ||||
| 
 | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 717: | ||||
| /***/ (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__(278); | ||||
| 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
 | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 741: | ||||
|  | ||||
| @ -27,7 +27,7 @@ | ||||
|   ], | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@actions/core": "^1.2.5", | ||||
|     "@actions/core": "^1.2.6", | ||||
|     "@actions/exec": "^1.0.4", | ||||
|     "@actions/io": "^1.0.2", | ||||
|     "semver": "^7.3.2" | ||||
|  | ||||
| @ -2,10 +2,10 @@ | ||||
| # yarn lockfile v1 | ||||
| 
 | ||||
| 
 | ||||
| "@actions/core@^1.2.5": | ||||
|   version "1.2.5" | ||||
|   resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.5.tgz#fa57bf8c07a38191e243beb9ea9d8368c1cb02c8" | ||||
|   integrity sha512-mwpoNjHSWWh0IiALdDEQi3tru124JKn0yVNziIBzTME8QRv7thwoghVuT1jBRjFvdtoHsqD58IRHy1nf86paRg== | ||||
| "@actions/core@^1.2.6": | ||||
|   version "1.2.6" | ||||
|   resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.6.tgz#a78d49f41a4def18e88ce47c2cac615d5694bf09" | ||||
|   integrity sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA== | ||||
| 
 | ||||
| "@actions/exec@^1.0.4": | ||||
|   version "1.0.4" | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tõnis Tiigi
						Tõnis Tiigi