[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 09/20] 9p: Properly check/translate flags in
From: |
Greg Kurz |
Subject: |
Re: [Qemu-devel] [PATCH v2 09/20] 9p: Properly check/translate flags in unlinkat |
Date: |
Fri, 1 Jun 2018 12:13:51 +0200 |
On Thu, 31 May 2018 21:26:04 -0400
Keno Fischer <address@hidden> wrote:
> This code previously relied on P9_DOTL_AT_REMOVEDIR and AT_REMOVEDIR
> having the same numerical value and deferred any errorchecking to the
> syscall itself. However, while the former assumption is true on Linux,
> it is not true in general. Thus, add appropriate error checking and
> translation to the 9p unlinkat server code.
>
> Signed-off-by: Keno Fischer <address@hidden>
> ---
>
Looks good but handle_unlinkat() needs to be adapted to this change.
Other backends (proxy and synth) seem to ignore the flags.
> Changes since v1:
> * Code was moved from 9p-local.c to server entry point in 9p.c
>
> hw/9pfs/9p.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
> index b80db65..a757374 100644
> --- a/hw/9pfs/9p.c
> +++ b/hw/9pfs/9p.c
> @@ -2522,7 +2522,7 @@ static void coroutine_fn v9fs_unlinkat(void *opaque)
> {
> int err = 0;
> V9fsString name;
> - int32_t dfid, flags;
> + int32_t dfid, flags, rflags = 0;
> size_t offset = 7;
> V9fsPath path;
> V9fsFidState *dfidp;
> @@ -2549,6 +2549,15 @@ static void coroutine_fn v9fs_unlinkat(void *opaque)
> goto out_nofid;
> }
>
> + if (flags & ~P9_DOTL_AT_REMOVEDIR) {
> + err = -EINVAL;
> + goto out_nofid;
> + }
> +
> + if (flags & P9_DOTL_AT_REMOVEDIR) {
> + rflags |= AT_REMOVEDIR;
> + }
> +
> dfidp = get_fid(pdu, dfid);
> if (dfidp == NULL) {
> err = -EINVAL;
> @@ -2567,7 +2576,7 @@ static void coroutine_fn v9fs_unlinkat(void *opaque)
> if (err < 0) {
> goto out_err;
> }
> - err = v9fs_co_unlinkat(pdu, &dfidp->path, &name, flags);
> + err = v9fs_co_unlinkat(pdu, &dfidp->path, &name, rflags);
> if (!err) {
> err = offset;
> }
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v2 09/20] 9p: Properly check/translate flags in unlinkat,
Greg Kurz <=