Skip to content

Commit b6a89cf

Browse files
committed
permission: refactor permission checks and improve test assertions for environment variables
Signed-off-by: nabeel378 <[email protected]>
1 parent c54086a commit b6a89cf

5 files changed

Lines changed: 21 additions & 22 deletions

File tree

src/node_env_var.cc

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -465,11 +465,10 @@ static Intercepted EnvSetter(Local<Name> property,
465465

466466
if (property->IsString()) {
467467
Utf8Value key(env->isolate(), property);
468-
THROW_IF_INSUFFICIENT_PERMISSIONS(
469-
env,
470-
permission::PermissionScope::kEnvVar,
471-
key.ToStringView(),
472-
Intercepted::kYes);
468+
THROW_IF_INSUFFICIENT_PERMISSIONS(env,
469+
permission::PermissionScope::kEnvVar,
470+
key.ToStringView(),
471+
Intercepted::kYes);
473472
}
474473

475474
// calling env->EmitProcessEnvWarning() sets a variable indicating that
@@ -533,11 +532,10 @@ static Intercepted EnvDeleter(Local<Name> property,
533532
CHECK(env->has_run_bootstrapping_code());
534533
if (property->IsString()) {
535534
Utf8Value key(env->isolate(), property);
536-
THROW_IF_INSUFFICIENT_PERMISSIONS(
537-
env,
538-
permission::PermissionScope::kEnvVar,
539-
key.ToStringView(),
540-
Intercepted::kYes);
535+
THROW_IF_INSUFFICIENT_PERMISSIONS(env,
536+
permission::PermissionScope::kEnvVar,
537+
key.ToStringView(),
538+
Intercepted::kYes);
541539

542540
env->env_vars()->Delete(env->isolate(), property.As<String>());
543541

@@ -564,10 +562,9 @@ static void EnvEnumerator(const PropertyCallbackInfo<Array>& info) {
564562
Local<Value> elem;
565563
if (!ret->Get(env->context(), i).ToLocal(&elem)) continue;
566564
Utf8Value key(env->isolate(), elem);
567-
if (env->permission()->is_granted(
568-
env,
569-
permission::PermissionScope::kEnvVar,
570-
key.ToStringView())) {
565+
if (env->permission()->is_granted(env,
566+
permission::PermissionScope::kEnvVar,
567+
key.ToStringView())) {
571568
filtered.push_back(elem);
572569
}
573570
}

src/permission/permission.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
#include "debug_utils.h"
77
#include "node_diagnostics_channel.h"
88
#include "node_options.h"
9-
#include "permission/permission_base.h"
109
#include "permission/addon_permission.h"
1110
#include "permission/child_process_permission.h"
1211
#include "permission/env_var_permission.h"
1312
#include "permission/ffi_permission.h"
1413
#include "permission/fs_permission.h"
1514
#include "permission/inspector_permission.h"
1615
#include "permission/net_permission.h"
16+
#include "permission/permission_base.h"
1717
#include "permission/wasi_permission.h"
1818
#include "permission/worker_permission.h"
1919
#include "v8.h"

src/permission/permission_base.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ namespace permission {
3636
V(Addon, "addon", PermissionsRoot, "--allow-addons")
3737

3838
#define FFI_PERMISSIONS(V) V(FFI, "ffi", PermissionsRoot, "--allow-ffi")
39-
#define ENV_VAR_PERMISSIONS(V) \
40-
V(EnvVar, "env", PermissionsRoot, "--allow-env")
39+
#define ENV_VAR_PERMISSIONS(V) V(EnvVar, "env", PermissionsRoot, "--allow-env")
4140

4241
#define PERMISSIONS(V) \
4342
FILESYSTEM_PERMISSIONS(V) \
@@ -47,7 +46,10 @@ namespace permission {
4746
INSPECTOR_PERMISSIONS(V) \
4847
NET_PERMISSIONS(V) \
4948
ADDON_PERMISSIONS(V) \
50-
FFI_PERMISSIONS(V)
49+
FFI_PERMISSIONS(V) \
50+
ENV_VAR_PERMISSIONS(V)
51+
52+
enum class PermissionScope {
5153
#define V(name, _, __, ___) k##name,
5254
kPermissionsRoot = -1,
5355
PERMISSIONS(V) kPermissionsCount

test/parallel/test-permission-env-allow-all.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ const assert = require('assert');
1414
{
1515
assert.ok(process.permission.has('env'));
1616
// Should not throw for any env var
17-
const home = process.env.HOME;
18-
const path = process.env.PATH;
17+
assert.ok(process.env.HOME !== undefined);
18+
assert.ok(process.env.PATH !== undefined);
1919
process.env.TEST_PERMISSION_VAR = 'test';
2020
assert.strictEqual(process.env.TEST_PERMISSION_VAR, 'test');
2121
delete process.env.TEST_PERMISSION_VAR;

test/parallel/test-permission-env-cli.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ const assert = require('assert');
1515
}
1616

1717
{
18-
const home = process.env.HOME;
19-
const path = process.env.PATH;
18+
assert.ok(process.env.HOME !== undefined);
19+
assert.ok(process.env.PATH !== undefined);
2020
assert.ok(process.permission.has('env', 'HOME'));
2121
assert.ok(process.permission.has('env', 'PATH'));
2222
}

0 commit comments

Comments
 (0)