diff mbox series

package/fakeroot: fix for fchownat/fchmodat

Message ID 20200510203509.7628-1-nolange79@gmail.com
State Accepted
Headers show
Series package/fakeroot: fix for fchownat/fchmodat | expand

Commit Message

Norbert Lange May 10, 2020, 8:35 p.m. UTC
fakeroot does mask out necessary flags, instead pass through
the flags that are supported by fstatat

Upstream BR: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959876

Signed-off-by: Norbert Lange <nolange79@gmail.com>
---
 ...Fix-forwarding-fchownat-fchmod-flags.patch | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch

Comments

Yann E. MORIN May 13, 2020, 8:27 p.m. UTC | #1
Norbert, All,

On 2020-05-10 22:35 +0200, Norbert Lange spake thusly:
> fakeroot does mask out necessary flags, instead pass through
> the flags that are supported by fstatat
> 
> Upstream BR: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959876

I think you might get better/quicker feedback by opening a merge-request
on the gitlab repo;

    https://salsa.debian.org/clint/fakeroot/

> Signed-off-by: Norbert Lange <nolange79@gmail.com>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  ...Fix-forwarding-fchownat-fchmod-flags.patch | 28 +++++++++++++++++++
>  1 file changed, 28 insertions(+)
>  create mode 100644 package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch
> 
> diff --git a/package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch b/package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch
> new file mode 100644
> index 0000000000..fc74543378
> --- /dev/null
> +++ b/package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch
> @@ -0,0 +1,28 @@
> +Forward supported flags to fstatat, this fixes issues like
> +using an empty path
> +
> +Upstream BR: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959876
> +
> +Signed-off-by: Norbert Lange <nolange79@gmail.com>
> +
> +diff -burN fakeroot-1.20.2.org/libfakeroot.c fakeroot-1.20.2/libfakeroot.c
> +--- fakeroot-1.20.2.org/libfakeroot.c	2014-10-05 17:16:00.000000000 +0200
> ++++ fakeroot-1.20.2/libfakeroot.c	2020-05-10 22:24:18.896625085 +0200
> +@@ -880,7 +880,7 @@
> +   /* If AT_SYMLINK_NOFOLLOW is set in the fchownat call it should
> +      be when we stat it. */
> +   INT_STRUCT_STAT st;
> +-  r=INT_NEXT_FSTATAT(dir_fd, path, &st, (flags & AT_SYMLINK_NOFOLLOW));
> ++  r=INT_NEXT_FSTATAT(dir_fd, path, &st, (flags & (AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH | AT_NO_AUTOMOUNT)));
> +
> +   if(r)
> +     return(r);
> +@@ -1017,7 +1017,7 @@
> +
> +   /* If AT_SYMLINK_NOFOLLOW is set in the fchownat call it should
> +      be when we stat it. */
> +-  r=INT_NEXT_FSTATAT(dir_fd, path, &st, flags & AT_SYMLINK_NOFOLLOW);
> ++  r=INT_NEXT_FSTATAT(dir_fd, path, &st, flags & (AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH | AT_NO_AUTOMOUNT));
> +
> +   if(r)
> +     return(r);
> -- 
> 2.26.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Peter Korsgaard May 22, 2020, 7:44 a.m. UTC | #2
>>>>> "Norbert" == Norbert Lange <nolange79@gmail.com> writes:

 > fakeroot does mask out necessary flags, instead pass through
 > the flags that are supported by fstatat

 > Upstream BR: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959876

 > Signed-off-by: Norbert Lange <nolange79@gmail.com>

Committed to 2020.02.x, thanks.
diff mbox series

Patch

diff --git a/package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch b/package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch
new file mode 100644
index 0000000000..fc74543378
--- /dev/null
+++ b/package/fakeroot/0004-Fix-forwarding-fchownat-fchmod-flags.patch
@@ -0,0 +1,28 @@ 
+Forward supported flags to fstatat, this fixes issues like
+using an empty path
+
+Upstream BR: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959876
+
+Signed-off-by: Norbert Lange <nolange79@gmail.com>
+
+diff -burN fakeroot-1.20.2.org/libfakeroot.c fakeroot-1.20.2/libfakeroot.c
+--- fakeroot-1.20.2.org/libfakeroot.c	2014-10-05 17:16:00.000000000 +0200
++++ fakeroot-1.20.2/libfakeroot.c	2020-05-10 22:24:18.896625085 +0200
+@@ -880,7 +880,7 @@
+   /* If AT_SYMLINK_NOFOLLOW is set in the fchownat call it should
+      be when we stat it. */
+   INT_STRUCT_STAT st;
+-  r=INT_NEXT_FSTATAT(dir_fd, path, &st, (flags & AT_SYMLINK_NOFOLLOW));
++  r=INT_NEXT_FSTATAT(dir_fd, path, &st, (flags & (AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH | AT_NO_AUTOMOUNT)));
+
+   if(r)
+     return(r);
+@@ -1017,7 +1017,7 @@
+
+   /* If AT_SYMLINK_NOFOLLOW is set in the fchownat call it should
+      be when we stat it. */
+-  r=INT_NEXT_FSTATAT(dir_fd, path, &st, flags & AT_SYMLINK_NOFOLLOW);
++  r=INT_NEXT_FSTATAT(dir_fd, path, &st, flags & (AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH | AT_NO_AUTOMOUNT));
+
+   if(r)
+     return(r);