X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FRESTHandler.pm;h=87a2c189460adb25d0dd694c43c35be87f4a7b45;hp=41531925fe1ab7cc0be9f190494ec28e00739598;hb=771d18f5c7be2055f0c9012f7f921f6d5f6337db;hpb=b51b16e6f58de4cb385bd461d97866b3d94c93ec diff --git a/src/PVE/RESTHandler.pm b/src/PVE/RESTHandler.pm index 4153192..87a2c18 100644 --- a/src/PVE/RESTHandler.pm +++ b/src/PVE/RESTHandler.pm @@ -275,8 +275,6 @@ sub AUTOLOAD { my $sub = $AUTOLOAD; (my $method = $sub) =~ s/.*:://; - $method =~ s/.*:://; - my $info = $this->map_method_by_name($method); *{$sub} = sub { @@ -388,16 +386,18 @@ sub handle { # warn "validate ". Dumper($param}) . "\n" . Dumper($schema); PVE::JSONSchema::validate($param, $schema); # untaint data (already validated) + my $extra = delete $param->{'extra-args'}; while (my ($key, $val) = each %$param) { ($param->{$key}) = $val =~ /^(.*)$/s; } + $param->{'extra-args'} = [map { /^(.*)$/ } @$extra] if $extra; } my $result = &$func($param); # todo: this is only to be safe - disable? if (my $schema = $info->{returns}) { - PVE::JSONSchema::validate($result, $schema, "Result verification vailed\n"); + PVE::JSONSchema::validate($result, $schema, "Result verification failed\n"); } return $result;