qemu-stable
[Top][All Lists]
Advanced

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

Re: [PATCH 0/6] 9pfs: fix fstat() after unlink() (with a Linux guest)


From: Greg Kurz
Subject: Re: [PATCH 0/6] 9pfs: fix fstat() after unlink() (with a Linux guest)
Date: Mon, 25 Nov 2024 10:05:35 +0100

On Mon, 25 Nov 2024 09:45:54 +0100
Greg Kurz <groug@kaod.org> wrote:

> On Sun, 24 Nov 2024 17:28:40 +0100
> Christian Schoenebeck <qemu_oss@crudebyte.com> wrote:
> 
> > This fixes an infamous, long standing bug:
> > https://gitlab.com/qemu-project/qemu/-/issues/103
> > 
> 
> \o/
> 
> It is great if you manage to fix that once and far all !
> 

For the records. Original report was :

https://bugs.launchpad.net/qemu/+bug/1336794

> > * Actual fix of this bug is patch 5.
> > 
> > * Patches 1 and 6 add a test case to verify the expected behaviour.
> > 
> > * The other patches (2, 3, 4) are basically just minor cleanup patches more
> >   or less (un)related that I simply did not bother to send separately.
> > 
> > Probably there are still other 9p request types that should be fixed for 
> > this
> > use-after-unlink idiom, but this series fixes the mentioned bug report as
> > described by reporter, so fair enough to round this up here for now.
> > 
> 
> When I last worked on that issue I had spotted some other places to fix.
> 
> Maybe you can find some ideas for future work at :
> 
> https://github.com/gkurz/qemu/tree/9p-attr-fixes
> 
> > Simple test app to verify this behaviour on a Linux guest:
> > 
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <sys/types.h>
> > #include <sys/stat.h>
> > #include <unistd.h>
> > #include <fcntl.h>
> > 
> > int main() {
> >   struct stat st;
> >   int fd = open("doa-file", O_RDWR | O_CREAT | O_EXCL, 0600);
> >   unlink("doa-file");
> >   int res = fstat(fd, &st);
> >   printf("fstat() = %d\n", res);
> >   return res;
> > }
> > 
> > Christian Schoenebeck (6):
> >   tests/9p: add 'use-after-unlink' test
> >   tests/9p: fix Rreaddir response name
> >   tests/9p: add missing Rgetattr response name
> >   9pfs: remove obsolete comment in v9fs_getattr()
> >   9pfs: fix 'Tgetattr' after unlink
> >   tests/9p: also check 'Tgetattr' in 'use-after-unlink' test
> > 
> >  hw/9pfs/9p.c                          | 12 ++++---
> >  tests/qtest/libqos/virtio-9p-client.c |  3 +-
> >  tests/qtest/virtio-9p-test.c          | 46 +++++++++++++++++++++++++++
> >  3 files changed, 55 insertions(+), 6 deletions(-)
> > 
> 
> Cheers,
> 



-- 
Greg



reply via email to

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