qemu-img: add support for --object with 'dd' command
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: Fam Zheng <famz@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-id: 20170515164712.6643-2-berrange@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
		
							parent
							
								
									caa31bf28c
								
							
						
					
					
						commit
						83d4bf943e
					
				
							
								
								
									
										18
									
								
								qemu-img.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								qemu-img.c
									
									
									
									
									
								
							| @ -4158,6 +4158,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}, | ||||
|         { "force-share", no_argument, 0, 'U'}, | ||||
|         { 0, 0, 0, 0 } | ||||
| @ -4186,6 +4187,15 @@ static int img_dd(int argc, char **argv) | ||||
|         case 'U': | ||||
|             force_share = true; | ||||
|             break; | ||||
|         case OPTION_OBJECT: { | ||||
|             QemuOpts *opts; | ||||
|             opts = qemu_opts_parse_noisily(&qemu_object_opts, | ||||
|                                            optarg, true); | ||||
|             if (!opts) { | ||||
|                 ret = -1; | ||||
|                 goto out; | ||||
|             } | ||||
|         }   break; | ||||
|         case OPTION_IMAGE_OPTS: | ||||
|             image_opts = true; | ||||
|             break; | ||||
| @ -4230,6 +4240,14 @@ 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)) { | ||||
|         ret = -1; | ||||
|         goto out; | ||||
|     } | ||||
| 
 | ||||
|     blk1 = img_open(image_opts, in.filename, fmt, 0, false, false, | ||||
|                     force_share); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Daniel P. Berrange
						Daniel P. Berrange