* [pve-devel] [PATCH v2 manager] api: create pool: force first character to be a letter for new pools
@ 2025-05-26 14:19 Fiona Ebner
0 siblings, 0 replies; only message in thread
From: Fiona Ebner @ 2025-05-26 14:19 UTC (permalink / raw)
To: pve-devel
Currently, the first character can also be a digit, '.', '-', or '_'.
Almost all other configuration IDs in Proxmox VE require starting with
a letter, so force this for new pool names too.
A pool with ID '0' can be added, but not parsed, because it will
evaluate to false in PVE/AccessControl.pm's parse_user_config():
> if (!verify_poolname($pool, 1)) {
> warn "user config - ignore pool '$pool' - invalid characters in pool name\n";
> next;
> }
It's likely that it would cause other issues as well if properly
handled there.
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---
Breaking change intended for Proxmox VE 9!
Changes in v2:
* Different approach, force new pools to start with a letter.
PVE/API2/Pool.pm | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/PVE/API2/Pool.pm b/PVE/API2/Pool.pm
index 54e74455..4b5e534c 100644
--- a/PVE/API2/Pool.pm
+++ b/PVE/API2/Pool.pm
@@ -184,10 +184,13 @@ __PACKAGE__->register_method ({
my $pool = $param->{poolid};
die "pool '$pool' already exists\n" if $usercfg->{pools}->{$pool};
- if ($pool =~ m!^(.*)/[^/]+$!) {
- my $parent = $1;
+ if ($pool =~ m!^(.*)/([^/]+)$!) {
+ my ($parent, $leaf) = ($1, $2);
die "parent '$parent' of pool '$pool' does not exist\n"
if !defined($usercfg->{pools}->{$parent});
+ die "pool name must start with a letter\n" if $leaf !~ m!^[A-Za-z]!;
+ } else {
+ die "pool name must start with a letter\n" if $pool !~ m!^[A-Za-z]!;
}
$usercfg->{pools}->{$pool} = {
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-05-26 14:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-26 14:19 [pve-devel] [PATCH v2 manager] api: create pool: force first character to be a letter for new pools Fiona Ebner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.