]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/RESTHandler.pm
PVE::ACME - untaint saved account data
[pve-common.git] / src / PVE / RESTHandler.pm
index af9024eacaed59da1320e51225b11c337d5afaee..205e6efd130bf6d2e6079d67efc1742277b67f64 100644 (file)
@@ -37,7 +37,7 @@ sub api_clone_schema {
                my ($name, $idx) = ($1, $2);
                if ($idx == 0 && defined($d->{"${name}1"})) {
                    $p = "${name}[n]";
-               } elsif (defined($d->{"${name}0"})) {
+               } elsif ($idx > 0 && defined($d->{"${name}0"})) {
                    next; # only handle once for -xx0, but only if -xx0 exists
                }
            }
@@ -788,15 +788,19 @@ sub cli_handler {
     my $info = $self->map_method_by_name($name);
     $options //= {};
 
+    my $add_stdopts = $options->{'std-output-opts'};
+
     my $res;
     eval {
        my $param_map = {};
        $param_map = $compute_param_mapping_hash->($param_cb->($name)) if $param_cb;
-       my $schema = add_standard_output_parameters($info->{parameters});
+       my $schema = $add_stdopts ? add_standard_output_parameters($info->{parameters}) : $info->{parameters};
        my $param = PVE::JSONSchema::get_options($schema, $args, $arg_param, $fixed_param, $param_map);
 
-       foreach my $opt (keys %$standard_output_options) {
-           $options->{$opt} = delete $param->{$opt} if defined($param->{$opt});
+       if ($add_stdopts) {
+           foreach my $opt (keys %$standard_output_options) {
+               $options->{$opt} = delete $param->{$opt} if defined($param->{$opt});
+           }
        }
 
        if (defined($param_map)) {