From 31d4beb47c3639bd7f6873f903569db06606a51b Mon Sep 17 00:00:00 2001 From: Fabian Ebner Date: Thu, 18 Mar 2021 09:44:18 +0100 Subject: [PATCH] schema: check format: parse list formats as arrays Previously, the returned value would be only the last element or undef in case of an empty list. There's only a handful of callers of check_format() that look at the return value and AFAICT none of the exisitng ones is for a -list format. But best to avoid any future surprises. Signed-off-by: Fabian Ebner --- src/PVE/JSONSchema.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index f1f90ff..6297fff 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -714,9 +714,10 @@ sub check_format { if $format_type ne 'none' && ref($registered) ne 'CODE'; if ($format_type eq 'list') { + $parsed = []; # Note: we allow empty lists foreach my $v (split_list($value)) { - $parsed = $registered->($v); + push @{$parsed}, $registered->($v); } } elsif ($format_type eq 'opt') { $parsed = $registered->($value) if $value;