FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

src: apply multiple general cleanups to permissions · nodejs/node@521aaf1 · GitHub

/ node Public

Commit 521aaf1

Browse files
authored andcommitted
src: apply multiple general cleanups to permissions
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65158 Reviewed-By: Xuguang Mei <meixuguang@gmail.com> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
1 parent ac920e0 commit 521aaf1

23 files changed

Lines changed: 98 additions & 99 deletions

‎src/env.cc‎

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -954,6 +954,7 @@ Environment::Environment(IsolateData* isolate_data,
954954

955955
if (options_->permission || options_->permission_audit) {
956956
permission()->EnablePermissions();
957+
static const std::array args = {std::string("*")};
957958
if (options_->permission_audit) {
958959
permission()->EnableWarningOnly();
959960
}
@@ -962,29 +963,29 @@ Environment::Environment(IsolateData* isolate_data,
962963
// unless explicitly allowed by the user
963964
if (!options_->allow_addons) {
964965
options_->allow_native_addons = false;
965-
permission()->Apply(this, {"*"}, permission::PermissionScope::kAddon);
966+
permission()->Apply(this, args, permission::PermissionScope::kAddon);
966967
}
967968
if (!options_->allow_inspector) {
968969
flags_ = flags_ | EnvironmentFlags::kNoCreateInspector;
969-
permission()->Apply(this, {"*"}, permission::PermissionScope::kInspector);
970+
permission()->Apply(this, args, permission::PermissionScope::kInspector);
970971
}
971972
if (!options_->allow_child_process) {
972973
permission()->Apply(
973-
this, {"*"}, permission::PermissionScope::kChildProcess);
974+
this, args, permission::PermissionScope::kChildProcess);
974975
}
975976
if (!options_->allow_ffi) {
976-
permission()->Apply(this, {"*"}, permission::PermissionScope::kFFI);
977+
permission()->Apply(this, args, permission::PermissionScope::kFFI);
977978
}
978979
if (!options_->allow_openssl_store) {
979980
permission()->Apply(
980-
this, {"*"}, permission::PermissionScope::kOpenSSLStore);
981+
this, args, permission::PermissionScope::kOpenSSLStore);
981982
}
982983
if (!options_->allow_worker_threads) {
983984
permission()->Apply(
984-
this, {"*"}, permission::PermissionScope::kWorkerThreads);
985+
this, args, permission::PermissionScope::kWorkerThreads);
985986
}
986987
if (!options_->allow_wasi) {
987-
permission()->Apply(this, {"*"}, permission::PermissionScope::kWASI);
988+
permission()->Apply(this, args, permission::PermissionScope::kWASI);
988989
}
989990

990991
// Implicit allow entrypoint to kFileSystemRead
@@ -1019,7 +1020,7 @@ Environment::Environment(IsolateData* isolate_data,
10191020
}
10201021

10211022
if (options_->allow_net) {
1022-
permission()->Apply(this, {"*"}, permission::PermissionScope::kNet);
1023+
permission()->Apply(this, args, permission::PermissionScope::kNet);
10231024
}
10241025
}
10251026
}

‎src/node_diagnostics_channel.cc‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,8 @@ BaseObjectPtr<Channel> Channel::Get(Environment* env, std::string_view name) {
223223
HandleScope handle_scope(isolate);
224224
Local<Context> context = env->context();
225225
Local<Value> argv[] = {
226-
ToV8Value(context, name).ToLocalChecked(),
227-
Integer::NewFromUnsigned(isolate, index),
226+
ToV8Value(context, name).ToLocalChecked(),
227+
Integer::NewFromUnsigned(isolate, index),
228228
};
229229
Local<Value> result;
230230
if (binding->link_callback_.Get(isolate)

‎src/permission/addon_permission.cc‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@ namespace permission {
99
// Currently, Addon manage a single state
1010
// Once denied, it's always denied
1111
void AddonPermission::Apply(Environment* env,
12-
const std::vector<std::string>& allow,
12+
std::span<const std::string> allow,
1313
PermissionScope scope) {
1414
deny_all_ = true;
1515
}
1616

1717
void AddonPermission::Drop(Environment* env,
1818
PermissionScope scope,
19-
const std::string_view& param) {
19+
std::string_view param) {
2020
deny_all_ = true;
2121
}
2222

2323
bool AddonPermission::is_granted(Environment* env,
2424
PermissionScope perm,
25-
const std::string_view& param) const {
25+
std::string_view param) const {
2626
return deny_all_ == false;
2727
}
2828

‎src/permission/addon_permission.h‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ namespace permission {
1313
class AddonPermission final : public PermissionBase {
1414
public:
1515
void Apply(Environment* env,
16-
const std::vector<std::string>& allow,
16+
std::span<const std::string> allow,
1717
PermissionScope scope) override;
1818
void Drop(Environment* env,
1919
PermissionScope scope,
20-
const std::string_view& param = "") override;
20+
std::string_view param) override;
2121
bool is_granted(Environment* env,
2222
PermissionScope perm,
23-
const std::string_view& param = "") const override;
23+
std::string_view param) const override;
2424

2525
private:
2626
bool deny_all_;

‎src/permission/child_process_permission.cc‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@ namespace permission {
1010
// Currently, ChildProcess manage a single state
1111
// Once denied, it's always denied
1212
void ChildProcessPermission::Apply(Environment* env,
13-
const std::vector<std::string>& allow,
13+
std::span<const std::string> allow,
1414
PermissionScope scope) {
1515
deny_all_ = true;
1616
}
1717

1818
void ChildProcessPermission::Drop(Environment* env,
1919
PermissionScope scope,
20-
const std::string_view& param) {
20+
std::string_view param) {
2121
deny_all_ = true;
2222
}
2323

2424
bool ChildProcessPermission::is_granted(Environment* env,
2525
PermissionScope perm,
26-
const std::string_view& param) const {
26+
std::string_view param) const {
2727
return deny_all_ == false;
2828
}
2929

‎src/permission/child_process_permission.h‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ namespace permission {
1313
class ChildProcessPermission final : public PermissionBase {
1414
public:
1515
void Apply(Environment* env,
16-
const std::vector<std::string>& allow,
16+
std::span<const std::string> allow,
1717
PermissionScope scope) override;
1818
void Drop(Environment* env,
1919
PermissionScope scope,
20-
const std::string_view& param = "") override;
20+
std::string_view param) override;
2121
bool is_granted(Environment* env,
2222
PermissionScope perm,
23-
const std::string_view& param = "") const override;
23+
std::string_view param) const override;
2424

2525
private:
2626
bool deny_all_;

‎src/permission/ffi_permission.cc‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@ namespace permission {
99

1010
// Currently, FFIPermission manages a single global deny state for FFI.
1111
void FFIPermission::Apply(Environment* env,
12-
const std::vector<std::string>& allow,
12+
std::span<const std::string> allow,
1313
PermissionScope scope) {
1414
deny_all_ = true;
1515
}
1616

1717
void FFIPermission::Drop(Environment* env,
1818
PermissionScope scope,
19-
const std::string_view& param) {
19+
std::string_view param) {
2020
deny_all_ = true;
2121
}
2222

2323
bool FFIPermission::is_granted(Environment* env,
2424
PermissionScope perm,
25-
const std::string_view& param) const {
25+
std::string_view param) const {
2626
return perm != PermissionScope::kFFI || !deny_all_;
2727
}
2828

‎src/permission/ffi_permission.h‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ namespace permission {
1313
class FFIPermission final : public PermissionBase {
1414
public:
1515
void Apply(Environment* env,
16-
const std::vector<std::string>& allow,
16+
std::span<const std::string> allow,
1717
PermissionScope scope) override;
1818
void Drop(Environment* env,
1919
PermissionScope scope,
20-
const std::string_view& param = "") override;
20+
std::string_view param) override;
2121
bool is_granted(Environment* env,
2222
PermissionScope perm,
23-
const std::string_view& param = "") const override;
23+
std::string_view param) const override;
2424

2525
private:
2626
bool deny_all_ = false;

‎src/permission/fs_permission.cc‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ void FreeRecursivelyNode(
5252
bool is_tree_granted(
5353
node::Environment* env,
5454
const node::permission::FSPermission::RadixTree* granted_tree,
55-
const std::string_view& param) {
55+
std::string_view param) {
5656
std::string resolved_param = node::PathResolve(env, {param});
5757
#ifdef _WIN32
5858
// Remove leading "\\?\" from UNC path
@@ -137,7 +137,7 @@ namespace permission {
137137
// allow = '*'
138138
// allow = '/tmp/,/home/example.js'
139139
void FSPermission::Apply(Environment* env,
140-
const std::vector<std::string>& allow,
140+
std::span<const std::string> allow,
141141
PermissionScope scope) {
142142
for (const std::string& res : allow) {
143143
if (res == "*") {
@@ -156,7 +156,7 @@ void FSPermission::Apply(Environment* env,
156156

157157
void FSPermission::Drop(Environment* env,
158158
PermissionScope scope,
159-
const std::string_view& param) {
159+
std::string_view param) {
160160
if (param.empty()) {
161161
// Drop all access for this scope
162162
if (scope == PermissionScope::kFileSystemRead ||
@@ -250,7 +250,7 @@ void FSPermission::GrantAccess(PermissionScope perm, const std::string& res) {
250250

251251
bool FSPermission::is_granted(Environment* env,
252252
PermissionScope perm,
253-
const std::string_view& param = "") const {
253+
std::string_view param = "") const {
254254
switch (perm) {
255255
case PermissionScope::kFileSystem:
256256
return allow_all_in_ && allow_all_out_;
@@ -287,7 +287,7 @@ void FSPermission::RadixTree::Clear() {
287287
root_node_->is_leaf = false;
288288
}
289289

290-
bool FSPermission::RadixTree::Lookup(const std::string_view& s,
290+
bool FSPermission::RadixTree::Lookup(std::string_view s,
291291
bool when_empty_return) const {
292292
FSPermission::RadixTree::Node* current_node = root_node_;
293293
if (current_node->children.empty()) {

‎src/permission/fs_permission.h‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ namespace permission {
1616
class FSPermission final : public PermissionBase {
1717
public:
1818
void Apply(Environment* env,
19-
const std::vector<std::string>& allow,
19+
std::span<const std::string> allow,
2020
PermissionScope scope) override;
2121
void Drop(Environment* env,
2222
PermissionScope scope,
23-
const std::string_view& param = "") override;
23+
std::string_view param) override;
2424
bool is_granted(Environment* env,
2525
PermissionScope perm,
26-
const std::string_view& param) const override;
26+
std::string_view param) const override;
2727

2828
struct RadixTree {
2929
struct Node {
@@ -146,8 +146,8 @@ class FSPermission final : public PermissionBase {
146146
~RadixTree();
147147
void Insert(const std::string& s);
148148
void Clear();
149-
bool Lookup(const std::string_view& s) const { return Lookup(s, false); }
150-
bool Lookup(const std::string_view& s, bool when_empty_return) const;
149+
bool Lookup(std::string_view s) const { return Lookup(s, false); }
150+
bool Lookup(std::string_view s, bool when_empty_return) const;
151151

152152
private:
153153
Node* root_node_;

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL