]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/RESTHandler.pm
remove + from getopt's prefix_pattern
[pve-common.git] / src / PVE / RESTHandler.pm
index 41531925fe1ab7cc0be9f190494ec28e00739598..87a2c189460adb25d0dd694c43c35be87f4a7b45 100644 (file)
@@ -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;