| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11,6 +11,7 @@ const regularFolder = process.env.ALLOWEDFOLDER; | |||
| 11 | 11 | const regularFile = process.env.ALLOWEDFILE; | |
| 12 | 12 | const blockedFolder = process.env.BLOCKEDFOLDER; | |
| 13 | 13 | const blockedFile = process.env.BLOCKEDFILE; | |
| 14 | + const blockedFileURL = require('url').pathToFileURL(process.env.BLOCKEDFILE); | ||
| 14 | 15 | const relativeProtectedFile = process.env.RELATIVEBLOCKEDFILE; | |
| 15 | 16 | const relativeProtectedFolder = process.env.RELATIVEBLOCKEDFOLDER; | |
| 16 | 17 | const absoluteProtectedFile = path.resolve(relativeProtectedFile); | |
@@ -30,6 +31,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 30 | 31 | permission: 'FileSystemWrite', | |
| 31 | 32 | resource: path.toNamespacedPath(blockedFile), | |
| 32 | 33 | }); | |
| 34 | + assert.throws(() => { | ||
| 35 | + fs.writeFile(blockedFileURL, 'example', () => {}); | ||
| 36 | + }, common.expectsError({ | ||
| 37 | + code: 'ERR_ACCESS_DENIED', | ||
| 38 | + permission: 'FileSystemWrite', | ||
| 39 | + resource: path.toNamespacedPath(blockedFile), | ||
| 40 | + })); | ||
| 33 | 41 | assert.throws(() => { | |
| 34 | 42 | fs.writeFile(relativeProtectedFile, 'example', () => {}); | |
| 35 | 43 | }, { | |
@@ -91,6 +99,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 91 | 99 | permission: 'FileSystemWrite', | |
| 92 | 100 | resource: path.toNamespacedPath(blockedFile), | |
| 93 | 101 | }); | |
| 102 | + assert.throws(() => { | ||
| 103 | + fs.utimes(blockedFileURL, new Date(), new Date(), () => {}); | ||
| 104 | + }, common.expectsError({ | ||
| 105 | + code: 'ERR_ACCESS_DENIED', | ||
| 106 | + permission: 'FileSystemWrite', | ||
| 107 | + resource: path.toNamespacedPath(blockedFile), | ||
| 108 | + })); | ||
| 94 | 109 | assert.throws(() => { | |
| 95 | 110 | fs.utimes(relativeProtectedFile, new Date(), new Date(), () => {}); | |
| 96 | 111 | }, { | |
@@ -117,6 +132,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 117 | 132 | permission: 'FileSystemWrite', | |
| 118 | 133 | resource: path.toNamespacedPath(blockedFile), | |
| 119 | 134 | }); | |
| 135 | + assert.throws(() => { | ||
| 136 | + fs.lutimes(blockedFileURL, new Date(), new Date(), () => {}); | ||
| 137 | + }, common.expectsError({ | ||
| 138 | + code: 'ERR_ACCESS_DENIED', | ||
| 139 | + permission: 'FileSystemWrite', | ||
| 140 | + resource: path.toNamespacedPath(blockedFile), | ||
| 141 | + })); | ||
| 120 | 142 | } | |
| 121 | 143 | ||
| 122 | 144 | // fs.mkdir | |
@@ -169,6 +191,15 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 169 | 191 | permission: 'FileSystemWrite', | |
| 170 | 192 | resource: path.toNamespacedPath(blockedFile), | |
| 171 | 193 | }); | |
| 194 | + assert.throws(() => { | ||
| 195 | + fs.rename(blockedFileURL, path.join(blockedFile, 'renamed'), (err) => { | ||
| 196 | + assert.ifError(err); | ||
| 197 | + }); | ||
| 198 | + }, common.expectsError({ | ||
| 199 | + code: 'ERR_ACCESS_DENIED', | ||
| 200 | + permission: 'FileSystemWrite', | ||
| 201 | + resource: path.toNamespacedPath(blockedFile), | ||
| 202 | + })); | ||
| 172 | 203 | assert.throws(() => { | |
| 173 | 204 | fs.rename(relativeProtectedFile, path.join(relativeProtectedFile, 'renamed'), (err) => { | |
| 174 | 205 | assert.ifError(err); | |
@@ -263,6 +294,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 263 | 294 | code: 'ERR_ACCESS_DENIED', | |
| 264 | 295 | permission: 'FileSystemWrite', | |
| 265 | 296 | }); | |
| 297 | + assert.throws(() => { | ||
| 298 | + fs.open(blockedFileURL, fs.constants.O_RDWR | 0x10000000, common.mustNotCall()); | ||
| 299 | + }, { | ||
| 300 | + code: 'ERR_ACCESS_DENIED', | ||
| 301 | + permission: 'FileSystemWrite', | ||
| 302 | + }); | ||
| 266 | 303 | assert.rejects(async () => { | |
| 267 | 304 | await fs.promises.open(blockedFile, fs.constants.O_RDWR | fs.constants.O_NOFOLLOW); | |
| 268 | 305 | }, { | |
@@ -290,6 +327,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 290 | 327 | code: 'ERR_ACCESS_DENIED', | |
| 291 | 328 | permission: 'FileSystemWrite', | |
| 292 | 329 | }); | |
| 330 | + assert.throws(() => { | ||
| 331 | + fs.chmod(blockedFileURL, 0o755, common.mustNotCall()); | ||
| 332 | + }, { | ||
| 333 | + code: 'ERR_ACCESS_DENIED', | ||
| 334 | + permission: 'FileSystemWrite', | ||
| 335 | + }); | ||
| 293 | 336 | assert.rejects(async () => { | |
| 294 | 337 | await fs.promises.chmod(blockedFile, 0o755); | |
| 295 | 338 | }, { | |
@@ -324,6 +367,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 324 | 367 | code: 'ERR_ACCESS_DENIED', | |
| 325 | 368 | permission: 'FileSystemWrite', | |
| 326 | 369 | }); | |
| 370 | + assert.throws(() => { | ||
| 371 | + fs.appendFile(blockedFileURL, 'new data', common.mustNotCall()); | ||
| 372 | + }, { | ||
| 373 | + code: 'ERR_ACCESS_DENIED', | ||
| 374 | + permission: 'FileSystemWrite', | ||
| 375 | + }); | ||
| 327 | 376 | assert.rejects(async () => { | |
| 328 | 377 | await fs.promises.appendFile(blockedFile, 'new data'); | |
| 329 | 378 | }, { | |
@@ -340,6 +389,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 340 | 389 | code: 'ERR_ACCESS_DENIED', | |
| 341 | 390 | permission: 'FileSystemWrite', | |
| 342 | 391 | }); | |
| 392 | + assert.throws(() => { | ||
| 393 | + fs.chown(blockedFileURL, 1541, 999, common.mustNotCall()); | ||
| 394 | + }, { | ||
| 395 | + code: 'ERR_ACCESS_DENIED', | ||
| 396 | + permission: 'FileSystemWrite', | ||
| 397 | + }); | ||
| 343 | 398 | assert.rejects(async () => { | |
| 344 | 399 | await fs.promises.chown(blockedFile, 1541, 999); | |
| 345 | 400 | }, { | |
@@ -356,6 +411,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 356 | 411 | code: 'ERR_ACCESS_DENIED', | |
| 357 | 412 | permission: 'FileSystemWrite', | |
| 358 | 413 | }); | |
| 414 | + assert.throws(() => { | ||
| 415 | + fs.lchown(blockedFileURL, 1541, 999, common.mustNotCall()); | ||
| 416 | + }, { | ||
| 417 | + code: 'ERR_ACCESS_DENIED', | ||
| 418 | + permission: 'FileSystemWrite', | ||
| 419 | + }); | ||
| 359 | 420 | assert.rejects(async () => { | |
| 360 | 421 | await fs.promises.lchown(blockedFile, 1541, 999); | |
| 361 | 422 | }, { | |
@@ -372,6 +433,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 372 | 433 | code: 'ERR_ACCESS_DENIED', | |
| 373 | 434 | permission: 'FileSystemWrite', | |
| 374 | 435 | }); | |
| 436 | + assert.throws(() => { | ||
| 437 | + fs.link(blockedFileURL, path.join(blockedFolder, '/linked'), common.mustNotCall()); | ||
| 438 | + }, { | ||
| 439 | + code: 'ERR_ACCESS_DENIED', | ||
| 440 | + permission: 'FileSystemWrite', | ||
| 441 | + }); | ||
| 375 | 442 | assert.rejects(async () => { | |
| 376 | 443 | await fs.promises.link(blockedFile, path.join(blockedFolder, '/linked')); | |
| 377 | 444 | }, { | |
@@ -391,4 +458,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder); | |||
| 391 | 458 | permission: 'FileSystemWrite', | |
| 392 | 459 | resource: path.toNamespacedPath(blockedFile), | |
| 393 | 460 | }); | |
| 461 | + assert.throws(() => { | ||
| 462 | + fs.unlink(blockedFileURL, (err) => { | ||
| 463 | + assert.ifError(err); | ||
| 464 | + }); | ||
| 465 | + }, { | ||
| 466 | + code: 'ERR_ACCESS_DENIED', | ||
| 467 | + permission: 'FileSystemWrite', | ||
| 468 | + resource: path.toNamespacedPath(blockedFile), | ||
| 469 | + }); | ||
| 394 | 470 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments