]> git.proxmox.com Git - pve-storage.git/commitdiff
status: factoring out normalize_content_filename
authorLorenz Stechauner <l.stechauner@proxmox.com>
Tue, 22 Jun 2021 09:19:21 +0000 (11:19 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 23 Jun 2021 20:28:44 +0000 (22:28 +0200)
Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
PVE/API2/Storage/Status.pm
PVE/Storage.pm

index 70692444c6177b3847508d16719347ca6e3e39c7..11ad60f0058e05e96253c8eedf3c01fd9a55ee11 100644 (file)
@@ -413,11 +413,7 @@ __PACKAGE__->register_method ({
        my $size = -s $tmpfilename;
        die "temporary file '$tmpfilename' does not exist\n" if !defined($size);
 
-       my $filename = $param->{filename};
-
-       chomp $filename;
-       $filename =~ s/^.*[\/\\]//;
-       $filename =~ s/[^-a-zA-Z0-9_.]/_/g;
+       my $filename = PVE::Storage::normalize_content_filename($param->{filename});
 
        my $path;
 
index 719fe5b329148d034f19a5f4951541576e7b65ba..b8e63114d7cd809a743475f1fb6cf6d92ff270c4 100755 (executable)
@@ -1945,4 +1945,16 @@ sub assert_sid_unused {
     return undef;
 }
 
+# removes leading/trailing spaces and (back)slashes completely
+# substitutes every non-ASCII-alphanumerical char with '_', except '_.-'
+sub normalize_content_filename {
+    my ($filename) = @_;
+
+    chomp $filename;
+    $filename =~ s/^.*[\/\\]//;
+    $filename =~ s/[^a-zA-Z0-9_.-]/_/g;
+
+    return $filename;
+}
+
 1;