[pve-devel] applied: [PATCH manager] fix #1539: add missing shellquote for proxied commands of pvesh
Wolfgang Bumiller
w.bumiller at proxmox.com
Tue Oct 31 09:02:58 CET 2017
applied to master & stable-4
On Fri, Oct 27, 2017 at 02:13:48PM +0200, Dominik Csapak wrote:
> if we do not do this, passing arguments with spaces
> (e.g., pvesh set YYY --param "one word")
> leads to ssh calls like this:
> ssh REMOTE pvesh set YYY --param one word
>
> which cannot be parsed correctly
>
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
> bin/pvesh | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/bin/pvesh b/bin/pvesh
> index 936a849b..36ce7636 100755
> --- a/bin/pvesh
> +++ b/bin/pvesh
> @@ -10,6 +10,7 @@ use File::Basename;
> use Getopt::Long;
> use HTTP::Status qw(:constants :is status_message);
> use Text::ParseWords;
> +use String::ShellQuote;
> use PVE::JSONSchema;
> use PVE::SafeSyslog;
> use PVE::Cluster;
> @@ -257,8 +258,9 @@ sub check_proxyto {
> sub proxy_handler {
> my ($node, $remip, $dir, $cmd, $args) = @_;
>
> + my $cmdargs = [String::ShellQuote::shell_quote(@$args)];
> my $remcmd = ['ssh', '-o', 'BatchMode=yes', "root\@$remip",
> - 'pvesh', '--noproxy', $cmd, $dir, @$args];
> + 'pvesh', '--noproxy', $cmd, $dir, @$cmdargs];
>
> system(@$remcmd) == 0 || die "proxy handler failed\n";
> }
> --
> 2.11.0
More information about the pve-devel
mailing list