Skip to content

[bug] Accessing junction folder from within $APP folder on Windows #4882

@martin-ocasek

Description

@martin-ocasek

Describe the bug

When a junction is created in the $APP Base directory on windows
eg. mklink /J C:\Users\<user>\AppData\Roaming\<identifier>\TestFolder C:\Dev\TestFolder)
The folder is accessible together with all files and folders inside using fs if read from the root directory
const entries = await readDir('', { dir: BaseDirectory.App, recursive: true });
But when trying to read the folder directly using
const entries = await readDir('TestFolder', { dir: BaseDirectory.App, recursive: true });
it fails with an error
Uncaught (in promise) path not allowed on the configured scope: C:\Users\<user>\AppData\Roaming\<identifier>\TestFolder

Reproduction

  1. Create Junction in $APP directory
  2. Try to access that directory recursively with readDir with empty dir parameter
  3. Folder and its contents can be read
  4. Try to access that directory again with readDir but with the name of the directory as dir parameter

Expected behavior

I would expect to either not be able to access the folder at all, or be able to access it directly as well if it is accessible from root recursively.

Platform and versions

Environment
  › OS: Windows 10.0.19044 X64
  › Webview2: 103.0.1264.77
  › MSVC:
      - Visual Studio Community 2019
      - Visual Studio Build Tools 2019
  › Node.js: 16.13.1
  › npm: 8.1.2
  › pnpm: 6.11.0
  › yarn: 1.22.15
  › rustup: 1.25.1
  › rustc: 1.62.1
  › cargo: 1.62.1
  › Rust toolchain: stable-x86_64-pc-windows-msvc

Packages
  › @tauri-apps/cli [NPM]: 1.0.5
  › @tauri-apps/api [NPM]: 1.0.2
  › tauri [RUST]: 1.0.5,
  › tauri-build [RUST]: 1.0.4,
  › tao [RUST]: 0.12.2,
  › wry [RUST]: 0.19.0,

App
  › build-type: bundle
  › CSP: unset
  › distDir: ../dist
  › devPath: http://localhost:5173/
  › framework: Vue.js

App directory structure
  ├─ .vscode
  ├─ dist
  ├─ node_modules
  ├─ public
  ├─ src
  └─ src-tauri

Stack trace

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions