File tree 3 files changed +25
-1
lines changed
fixtures/permission/loader
3 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -423,7 +423,7 @@ function readPackageScope(checkPath) {
423
423
checkPath = StringPrototypeSlice ( checkPath , 0 , separatorIndex ) ;
424
424
// Stop the search when the process doesn't have permissions
425
425
// to walk upwards
426
- if ( enabledPermission && ! permission . has ( 'fs.read' , checkPath ) ) {
426
+ if ( enabledPermission && ! permission . has ( 'fs.read' , checkPath + sep ) ) {
427
427
return false ;
428
428
}
429
429
if ( StringPrototypeEndsWith ( checkPath , sep + 'node_modules' ) )
Original file line number Diff line number Diff line change
1
+ const fs = require ( 'node:fs' ) ;
2
+
3
+ fs . readFile ( '/etc/passwd' , ( ) => { } ) ;
Original file line number Diff line number Diff line change 1
1
'use strict' ;
2
2
3
3
require ( '../common' ) ;
4
+
5
+ const fixtures = require ( '../common/fixtures' ) ;
4
6
const { spawnSync } = require ( 'child_process' ) ;
5
7
const assert = require ( 'assert' ) ;
6
8
const fs = require ( 'fs' ) ;
9
+ const path = require ( 'path' ) ;
7
10
8
11
{
9
12
const { status, stdout } = spawnSync (
@@ -126,3 +129,21 @@ const fs = require('fs');
126
129
assert . strictEqual ( status , 1 ) ;
127
130
assert . ok ( ! fs . existsSync ( 'permission-deny-example.md' ) ) ;
128
131
}
132
+
133
+ {
134
+ const firstPath = path . sep + process . cwd ( ) . split ( path . sep , 2 ) [ 1 ] ;
135
+ if ( firstPath . startsWith ( '/etc' ) ) {
136
+ common . skip ( '/etc as firstPath' ) ;
137
+ }
138
+ const file = fixtures . path ( 'permission' , 'loader' , 'index.js' ) ;
139
+ const { status, stderr } = spawnSync (
140
+ process . execPath ,
141
+ [
142
+ '--experimental-permission' ,
143
+ `--allow-fs-read=${ firstPath } ` ,
144
+ file ,
145
+ ]
146
+ ) ;
147
+ assert . match ( stderr . toString ( ) , / r e s o u r c e : \s + ' \/ e t c \/ p a s s w d ' / ) ;
148
+ assert . strictEqual ( status , 1 ) ;
149
+ }
You can’t perform that action at this time.
0 commit comments