0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00

os: don't use getCheckedFunction() in userInfo()

os.userInfo() takes an optional object as its first argument.
getCheckedFunction() adds a context object to the argument list
passed to the binding layer. The context object has the potential
to confuse the binding layer, particularly if an error occurs.
This commit makes userInfo() explicitly call into the binding
layer with two arguments.

PR-URL: https://github.com/nodejs/node/pull/22609
Refs: https://github.com/nodejs/node/pull/22599
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
cjihrig 2018-08-30 09:55:11 -04:00
parent ba43bce9e2
commit e2b033ebc3
No known key found for this signature in database
GPG Key ID: 7434390BDBE9B9C5

View File

@ -40,7 +40,7 @@ const {
getOSType: _getOSType,
getPriority: _getPriority,
getTotalMem,
getUserInfo: _getUserInfo,
getUserInfo,
getUptime,
isBigEndian,
setPriority: _setPriority
@ -64,7 +64,6 @@ const getHostname = getCheckedFunction(_getHostname);
const getInterfaceAddresses = getCheckedFunction(_getInterfaceAddresses);
const getOSRelease = getCheckedFunction(_getOSRelease);
const getOSType = getCheckedFunction(_getOSType);
const getUserInfo = getCheckedFunction(_getUserInfo);
getFreeMem[Symbol.toPrimitive] = () => getFreeMem();
getHostname[Symbol.toPrimitive] = () => getHostname();
@ -239,6 +238,19 @@ function getPriority(pid) {
return priority;
}
function userInfo(options) {
if (typeof options !== 'object')
options = null;
const ctx = {};
const user = getUserInfo(options, ctx);
if (user === undefined)
throw new ERR_SYSTEM_ERROR(ctx);
return user;
}
module.exports = {
arch,
cpus,
@ -255,7 +267,7 @@ module.exports = {
tmpdir,
totalmem: getTotalMem,
type: getOSType,
userInfo: getUserInfo,
userInfo,
uptime: getUptime,
// Deprecated APIs