[pve-devel] [PATCH pve-storage/pve-manager v3 0/4] fix #623: show isos/vztmpl/snippets in subdirs

Noel Ullreich n.ullreich at proxmox.com
Thu Jun 15 14:03:25 CEST 2023


This patch fixes #623, allowing isos/vztmpl/snippets in subdirectories.
This feature is opt-in and can be set from the API, web interface or
with `pvesm`.

I addressed the security concerns raised by Fabian, now parent
directories in the path (i.e. `/my/path/../somewhere/`) are forbidded.
I have kept the permission to use symlinks, however, if this is a
security issue, symlinks can easily be forbidden as well. This,
however, would be a breaking change.

parts of the tests as well as the regex for checking, if a `/../` is in
the path have been taken and/or adapted from an older patch that was
never merged:
https://lists.proxmox.com/pipermail/pve-devel/2020-May/043622.html

This is a complete rework from v1, so I don't see a point in writing
what the differences are. It's all different.

----
changes from v2:
* rebased so that applying with new structure in pve-storage works 
(/PVE was moved to /src/PVE/)
* fixed the path of the volid for snippets in Pluggin.pm (thanks @Markus)

Noel Ullreich (4):

pve-storage:
  recursively go through subdirs to find files
  add `subdir-depth` option to filesystems
  update test for recursive subdir search

 src/PVE/Storage.pm                 |  7 +++
 src/PVE/Storage/CIFSPlugin.pm      |  1 +
 src/PVE/Storage/CephFSPlugin.pm    |  1 +
 src/PVE/Storage/DirPlugin.pm       |  1 +
 src/PVE/Storage/GlusterfsPlugin.pm |  1 +
 src/PVE/Storage/NFSPlugin.pm       |  1 +
 src/PVE/Storage/Plugin.pm          | 63 +++++++++++++++++----------
 src/test/filesystem_path_test.pm   | 18 ++++++++
 src/test/list_volumes_test.pm      | 68 ++++++++++++++++++++++++++++++
 src/test/parse_volname_test.pm     | 40 ++++++++++++++++++
 10 files changed, 179 insertions(+), 22 deletions(-)

pve-manager:
 www/manager6/storage/Base.js | 11 +++++++++++
 1 file changed, 11 insertions(+)
-- 
2.30.2






More information about the pve-devel mailing list