qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] Check backing_file chain's loop


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [RFC] Check backing_file chain's loop
Date: Thu, 30 May 2013 14:48:30 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, May 30, 2013 at 06:12:00AM -0600, Eric Blake wrote:
> On 05/30/2013 04:14 AM, Dongxu Wang wrote:
> > Hi,
> > 
> > Now block layer does not check whether backing_file chain can be a
> > circle, do you think it is necessary to do a check?
> > 
> > For example,  1.qcow2's backing_file is 2.qcow2 and 2.qcow2's
> > backing_file is 1.qcow2, then any IO operation will be a fault.
> > 
> > If necessary, I will post a patch to fix.
> 
> Yes, it's worth patching.
> 
> > 
> > [$] qemu-img create -f qcow2 1.qcow2
> > qemu-img: Image creation needs a size parameter
> > [$] qemu-img create -f qcow2 1.qcow2 8M
> > Formatting '1.qcow2', fmt=qcow2 size=8388608 encryption=off
> > cluster_size=65536 lazy_refcounts=off
> > [$] qemu-img create -f qcow2 2.qcow2 -o backing_file=1.qcow2
> > Formatting '2.qcow2', fmt=qcow2 size=8388608 backing_file='1.qcow2'
> > encryption=off cluster_size=65536 lazy_refcounts=off
> > [$] qemu-img create -f qcow2 1.qcow2 -o backing_file=2.qcow2
> > Formatting '1.qcow2', fmt=qcow2 size=8388608 backing_file='2.qcow2'
> > encryption=off cluster_size=65536 lazy_refcounts=off
> > [$] qemu-io -c "read -v 0 512" 1.qcow2
> > ^CSegmentation fault (core dumped)
> 
> Also make sure that 'qemu-img info 1.qcow2' and 'qemu-img info
> --backing-chain 1.qcow2' don't crash.

qemu-img info --backing-chain detects cycles and returns an error, see
the hash table in collect_image_info_list().

We should protect bdrv_open() too.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]