From 641ccab6c3b17f1c94676eab99e8baa9cddf5a0b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 22 Oct 2010 10:59:53 +0100 Subject: tools: Specify format of disks (RHBZ#642934,CVE-2010-3851). Sys::Guestfs::Lib is changed in two ways: firstly we take the format string from libvirt and pass it to add_drive_opts. Secondly we allow an extra format => parameter to open_guest which allows the format to be specified for disk images. All the tools are changed to add an extra --format parameter allowing the format to be specified for direct disk images. --- tools/virt-list-partitions | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'tools/virt-list-partitions') diff --git a/tools/virt-list-partitions b/tools/virt-list-partitions index 0edecc4b..53059b48 100755 --- a/tools/virt-list-partitions +++ b/tools/virt-list-partitions @@ -82,6 +82,23 @@ at all. =cut +my $format; + +=item B<--format> raw + +Specify the format of disk images given on the command line. If this +is omitted then the format is autodetected from the content of the +disk image. + +If disk images are requested from libvirt, then this program asks +libvirt for this information. In this case, the value of the format +parameter is ignored. + +If working with untrusted raw-format guest disk images, you should +ensure the format is always specified. + +=cut + my $human; =item B<-h> | B<--human-readable> @@ -116,6 +133,7 @@ Getopt::Long::Configure ("bundling"); GetOptions ("help|?" => \$help, "version" => \$version, "connect|c=s" => \$uri, + "format=s" => \$format, "human-readable|h" => \$human, "long|l" => \$long, "total|t" => \$total, @@ -133,9 +151,9 @@ pod2usage (__"virt-list-partitions: no image or VM name given") my $g; if ($uri) { - $g = open_guest (\@ARGV, address => $uri); + $g = open_guest (\@ARGV, address => $uri, format => $format); } else { - $g = open_guest (\@ARGV); + $g = open_guest (\@ARGV, format => $format); } $g->launch (); -- cgit