On 03.02.2017 13:02, Daniel P. Berrange wrote:
> The qemu-img dd command added --image-opts support, but missed
> the corresponding --object support. This prevented passing
> secrets (eg auth passwords) needed by certain disk images.
> 
> Reviewed-by: Eric Blake <ebl...@redhat.com>
> Signed-off-by: Daniel P. Berrange <berra...@redhat.com>
> ---
>  qemu-img.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/qemu-img.c b/qemu-img.c
> index 74e3362..391a141 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -3949,6 +3949,7 @@ static int img_dd(int argc, char **argv)
>      };
>      const struct option long_options[] = {
>          { "help", no_argument, 0, 'h'},
> +        { "object", required_argument, 0, OPTION_OBJECT},
>          { "image-opts", no_argument, 0, OPTION_IMAGE_OPTS},
>          { 0, 0, 0, 0 }
>      };
> @@ -3971,6 +3972,14 @@ static int img_dd(int argc, char **argv)
>          case 'h':
>              help();
>              break;
> +        case OPTION_OBJECT: {
> +            QemuOpts *opts;
> +            opts = qemu_opts_parse_noisily(&qemu_object_opts,
> +                                           optarg, true);
> +            if (!opts) {
> +                return 1;
> +            }
> +        }   break;
>          case OPTION_IMAGE_OPTS:
>              image_opts = true;
>              break;
> @@ -4015,6 +4024,13 @@ static int img_dd(int argc, char **argv)
>          ret = -1;
>          goto out;
>      }
> +
> +    if (qemu_opts_foreach(&qemu_object_opts,
> +                          user_creatable_add_opts_foreach,
> +                          NULL, NULL)) {
> +        return 1;

Why not ret = -1; goto out; like the other code around this block?

(Same for the case block above.)

Max

> +    }
> +
>      blk1 = img_open(image_opts, in.filename, fmt, 0, false, false);
>  
>      if (!blk1) {
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to