Procházet zdrojové kódy

fix(core): scope should not strip the first path component, closes #3592 (#3602)

Lucas Fernandes Nogueira před 3 roky
rodič
revize
4d0e2eccd9

+ 5 - 0
.changes/fix-path-scope-first-component.md

@@ -0,0 +1,5 @@
+---
+"tauri": patch
+---
+
+Fixes filesystem and asset scope stripping the first component of the allowed path.

+ 15 - 11
core/tauri/src/api/path.rs

@@ -138,18 +138,22 @@ pub fn parse<P: AsRef<Path>>(
 ) -> crate::api::Result<PathBuf> {
   let mut p = PathBuf::new();
   let mut components = path.as_ref().components();
-  if let Some(Component::Normal(str)) = components.next() {
-    if let Some(base_directory) = BaseDirectory::from_variable(&str.to_string_lossy()) {
-      p.push(resolve_path(
-        config,
-        package_info,
-        env,
-        "",
-        Some(base_directory),
-      )?);
-    } else {
-      p.push(str);
+  match components.next() {
+    Some(Component::Normal(str)) => {
+      if let Some(base_directory) = BaseDirectory::from_variable(&str.to_string_lossy()) {
+        p.push(resolve_path(
+          config,
+          package_info,
+          env,
+          "",
+          Some(base_directory),
+        )?);
+      } else {
+        p.push(str);
+      }
     }
+    Some(component) => p.push(component),
+    None => (),
   }
 
   for component in components {