get_options: handle array and scalar refs on decoding
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 5 May 2017 09:10:43 +0000 (11:10 +0200)
committerFabian Gr├╝nbichler <f.gruenbichler@proxmox.com>
Fri, 5 May 2017 10:37:50 +0000 (12:37 +0200)
commitc99025689644aae5cf6c427de4cd704dc9d352c7
tree4dd6d836a19110ffb97afc05b841f1ebcb183ef2
parent87aa00de73e579ebc10a49a04c7d633953a48510
get_options: handle array and scalar refs on decoding

get_options is for parsing CLI options, here we decode after using
Getopt as we are not sure how well it handles already decoded data.
But as Gettopt can produces references for the parsed data we must
handle them explictily.
So check if we have a ARRAY or SCALAR reference and decode them
respectively.
All other reference types should not get returned from Getopt so
error out on them.

This bug was seen when viewing backup jobs, as we save the job as a
comand entry in /etc/pve/vzdump.cron and parse it then with this
function on reading.
Besides the use there we use it in the RESTHandler Packages
cli_handler sub method, so some CLI tools could be possibly affected
by this.

Fixes: 24197a9f6c698985b7255fbf7792b0b6bd8188b5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PVE/JSONSchema.pm