qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] Fix bug with virtio-9p fsync


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH] Fix bug with virtio-9p fsync
Date: Tue, 26 Apr 2011 10:18:10 +0100

On Mon, Apr 25, 2011 at 6:54 PM, Sassan Panahinejad <address@hidden> wrote:

Thanks for finding and fixing this.  Please see this wiki page on
contributing patches to QEMU:
http://wiki.qemu.org/Contribute/SubmitAPatch

> v9fs_fsync and possibly others break when asked to operate on a directory.
> It does not check fid_type to see if it is operating on a directory and 
> therefore accesses the wrong element of the fs union.
> This error can result in guest applications failing (in my case it was dpkg).
> This patch fixes the issue, although there may be other, similar bugs in 
> virtio-9p.
> ---
>  hw/virtio-9p.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)

Missing Signed-off-by:.

> diff --git a/hw/virtio-9p.c b/hw/virtio-9p.c
> index 7e29535..09fb5da 100644
> --- a/hw/virtio-9p.c
> +++ b/hw/virtio-9p.c
> @@ -1875,7 +1875,10 @@ static void v9fs_fsync(V9fsState *s, V9fsPDU *pdu)
>         v9fs_post_do_fsync(s, pdu, err);
>         return;
>     }
> -    err = v9fs_do_fsync(s, fidp->fs.fd, datasync);
> +    if (fidp->fid_type == P9_FID_DIR)
> +        err = v9fs_do_fsync(s, dirfd(fidp->fs.dir), datasync);
> +    else
> +        err = v9fs_do_fsync(s, fidp->fs.fd, datasync);

Please follow QEMU coding style and always use {} with if ... else.

Stefan



reply via email to

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