[pve-devel] [PATCH storage v2] dirplugin: fix #3986: check for trailing slashes

Daniel Herzig d.herzig at proxmox.com
Fri Nov 22 14:13:05 CET 2024


Currently, setting up a directory storage with trailing slashes in
the path results in log messages with double slashes, if this path
gets expanded by an action like vzdump.

This patch removes those trailing slashes once the directory storage
class config gets updated.

Signed-off-by: Daniel Herzig <d.herzig at proxmox.com>
---
changes since v1:
* rebased onto master
* added a comment in the code
* merged Stoikos on- and Miras offlist input into a new regex

v1: https://lore.proxmox.com/pve-devel/20241113163249.76434-1-d.herzig@proxmox.com/

Notes:

Functionality can be tested by adding new directory storage with trailing
slashes either via the GUI or `pvesm add dir $STORAGENAME --path /some/path/`.

`/new/path/` will show up as `/new/path` in `/etc/pve/storage.cfg`, and trailing
slashes from earlier defined directory storage paths will be removed.

 src/PVE/Storage/DirPlugin.pm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/PVE/Storage/DirPlugin.pm b/src/PVE/Storage/DirPlugin.pm
index fb23e0a..c72c321 100644
--- a/src/PVE/Storage/DirPlugin.pm
+++ b/src/PVE/Storage/DirPlugin.pm
@@ -245,6 +245,8 @@ sub check_config {
     if ($opts->{path} !~ m|^/[-/a-zA-Z0-9_.@]+$|) {
 	die "illegal path for directory storage: $opts->{path}\n";
     }
+    # remove trailing slashes from path
+    $opts->{path} =~ s|(.*[^/])/+$|$1|;
     return $opts;
 }
 
-- 
2.39.5





More information about the pve-devel mailing list