[Qemu-devel] [PATCH] 9pfs: don't use AT_EMPTY_PATH in local_set_cred_passthrough()

Greg Kurz posted 1 patch 7 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/148862487677.5452.160308730808722965.stgit@bahia.lan
Test checkpatch passed
Test docker passed
hw/9pfs/9p-local.c |    2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] 9pfs: don't use AT_EMPTY_PATH in local_set_cred_passthrough()
Posted by Greg Kurz 7 years ago
The name argument can never be an empty string, and dirfd always point to
the containing directory of the file name. AT_EMPTY_PATH is hence useless
here. Also it breaks build with glibc version 2.13 and older.

It is actually an oversight of a previous tentative patch to implement this
function. We can safely drop it.

Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Greg Kurz <groug@kaod.org>
---
 hw/9pfs/9p-local.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index ea9a1ced0394..45e9a1f9b0ca 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -349,7 +349,7 @@ static int local_set_cred_passthrough(FsContext *fs_ctx, int dirfd,
                                       const char *name, FsCred *credp)
 {
     if (fchownat(dirfd, name, credp->fc_uid, credp->fc_gid,
-                 AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH) < 0) {
+                 AT_SYMLINK_NOFOLLOW) < 0) {
         /*
          * If we fail to change ownership and if we are
          * using security model none. Ignore the error


Re: [Qemu-devel] [PATCH] 9pfs: don't use AT_EMPTY_PATH in local_set_cred_passthrough()
Posted by Mark Cave-Ayland 7 years ago
On 04/03/17 10:54, Greg Kurz wrote:

> The name argument can never be an empty string, and dirfd always point to
> the containing directory of the file name. AT_EMPTY_PATH is hence useless
> here. Also it breaks build with glibc version 2.13 and older.
> 
> It is actually an oversight of a previous tentative patch to implement this
> function. We can safely drop it.
> 
> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Signed-off-by: Greg Kurz <groug@kaod.org>
> ---
>  hw/9pfs/9p-local.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> index ea9a1ced0394..45e9a1f9b0ca 100644
> --- a/hw/9pfs/9p-local.c
> +++ b/hw/9pfs/9p-local.c
> @@ -349,7 +349,7 @@ static int local_set_cred_passthrough(FsContext *fs_ctx, int dirfd,
>                                        const char *name, FsCred *credp)
>  {
>      if (fchownat(dirfd, name, credp->fc_uid, credp->fc_gid,
> -                 AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH) < 0) {
> +                 AT_SYMLINK_NOFOLLOW) < 0) {
>          /*
>           * If we fail to change ownership and if we are
>           * using security model none. Ignore the error
> 
> 

Thanks Greg - this, along with the updated version of the previous patch
fixes the build for me.

Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.


Re: [Qemu-devel] [PATCH] 9pfs: don't use AT_EMPTY_PATH in local_set_cred_passthrough()
Posted by Eric Blake 7 years ago
On 03/04/2017 04:54 AM, Greg Kurz wrote:
> The name argument can never be an empty string, and dirfd always point to
> the containing directory of the file name. AT_EMPTY_PATH is hence useless
> here. Also it breaks build with glibc version 2.13 and older.
> 
> It is actually an oversight of a previous tentative patch to implement this
> function. We can safely drop it.
> 
> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Signed-off-by: Greg Kurz <groug@kaod.org>
> ---
>  hw/9pfs/9p-local.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org