Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package shadow for openSUSE:Factory checked 
in at 2022-11-09 12:55:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shadow (Old)
 and      /work/SRC/openSUSE:Factory/.shadow.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "shadow"

Wed Nov  9 12:55:54 2022 rev:51 rq:1034152 version:4.12.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/shadow/shadow.changes    2022-11-04 
17:31:25.151685235 +0100
+++ /work/SRC/openSUSE:Factory/.shadow.new.1597/shadow.changes  2022-11-09 
12:55:59.507859600 +0100
@@ -1,0 +2,8 @@
+Mon Nov  7 11:20:36 UTC 2022 - Michael Vetter <mvet...@suse.com>
+
+- Add shadow-copytree-usermod-fifo.patch:
+  Fix regression that prevented `usermod -m` to work when their
+  home directory contained at least one fifo
+  See https://github.com/shadow-maint/shadow/pull/565
+
+-------------------------------------------------------------------

New:
----
  shadow-copytree-usermod-fifo.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ shadow.spec ++++++
--- /var/tmp/diff_new_pack.t0WjeS/_old  2022-11-09 12:56:00.243863750 +0100
+++ /var/tmp/diff_new_pack.t0WjeS/_new  2022-11-09 12:56:00.247863772 +0100
@@ -63,6 +63,8 @@
 Patch10:        
https://github.com/shadow-maint/shadow/commit/eaebea55a495a56317ed85e959b3599f73c6bdf2.patch#/shadow-prefix-overflow.patch
 # PATCH-FIX-UPSTREAM shadow-chage-format.patch mvet...@suse.com -- Fix chage 
format string
 Patch11:        
https://github.com/shadow-maint/shadow/commit/e503fd574b7dbf6b21b1168e20938f0922807916.patch#/shadow-chage-format.patch
+# PATCH-FIX-UPSTREAM shadow-copytree-usermod-fifo.patch mvet...@suse.com -- 
Fix regression when openat blocks
+Patch12:        
https://github.com/shadow-maint/shadow/commit/10cd68e0f04b48363eb32d2c6e168b358fb27810.patch#/shadow-copytree-usermod-fifo.patch
 BuildRequires:  audit-devel > 2.3
 BuildRequires:  autoconf
 BuildRequires:  automake
@@ -135,6 +137,7 @@
 %endif
 %patch10 -p1
 %patch11 -p1
+%patch12 -p1
 
 iconv -f ISO88591 -t utf-8  doc/HOWTO > doc/HOWTO.utf8
 mv -v doc/HOWTO.utf8 doc/HOWTO


++++++ shadow-copytree-usermod-fifo.patch ++++++
>From 10cd68e0f04b48363eb32d2c6e168b358fb27810 Mon Sep 17 00:00:00 2001
From: Samanta Navarro <feri...@riseup.net>
Date: Sun, 4 Sep 2022 11:58:03 +0000
Subject: [PATCH] copy_tree: do not block on fifos

Fixes regression introduced in faeab50e710131816b261de66141524898c2c487.

If a directory contains fifos, then openat blocks until the other side
of the fifo is connected as well.

This means that users can prevent "usermod -m" from completing if their
home directories contain at least one fifo.
---
 libmisc/copydir.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libmisc/copydir.c b/libmisc/copydir.c
index b6025f4c7..5fb47da01 100644
--- a/libmisc/copydir.c
+++ b/libmisc/copydir.c
@@ -126,12 +126,12 @@ static int perm_copy_path(const struct path_info *src,
 {
        int src_fd, dst_fd, ret;
 
-       src_fd = openat(src->dirfd, src->name, O_RDONLY | O_NOFOLLOW | 
O_CLOEXEC);
+       src_fd = openat(src->dirfd, src->name, O_RDONLY | O_NOFOLLOW | 
O_NONBLOCK | O_CLOEXEC);
        if (src_fd < 0) {
                return -1;
        }
 
-       dst_fd = openat(dst->dirfd, dst->name, O_RDONLY | O_NOFOLLOW | 
O_CLOEXEC);
+       dst_fd = openat(dst->dirfd, dst->name, O_RDONLY | O_NOFOLLOW | 
O_NONBLOCK | O_CLOEXEC);
        if (dst_fd < 0) {
                (void) close (src_fd);
                return -1;
@@ -152,12 +152,12 @@ static int attr_copy_path(const struct path_info *src,
 {
        int src_fd, dst_fd, ret;
 
-       src_fd = openat(src->dirfd, src->name, O_RDONLY | O_NOFOLLOW | 
O_CLOEXEC);
+       src_fd = openat(src->dirfd, src->name, O_RDONLY | O_NOFOLLOW | 
O_NONBLOCK | O_CLOEXEC);
        if (src_fd < 0) {
                return -1;
        }
 
-       dst_fd = openat(dst->dirfd, dst->name, O_RDONLY | O_NOFOLLOW | 
O_CLOEXEC);
+       dst_fd = openat(dst->dirfd, dst->name, O_RDONLY | O_NOFOLLOW | 
O_NONBLOCK | O_CLOEXEC);
        if (dst_fd < 0) {
                (void) close (src_fd);
                return -1;

Reply via email to