Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian....@packages.debian.org
Usertags: pu

deluser -f does not really force the removal of users, as it contains
missing cleanups in error paths.  This problem is fixed in Stretch with
1:4.2-3.1.

diff -Nru shadow-4.2/debian/changelog shadow-4.2/debian/changelog
--- shadow-4.2/debian/changelog 2014-11-19 20:59:09.000000000 +0000
+++ shadow-4.2/debian/changelog 2015-11-17 15:23:03.000000000 +0000
@@ -1,3 +1,10 @@
+shadow (1:4.2-3+deb8u1) jessie; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix error handling in busy user detection. (Closes: #778287)
+
+ -- Bastian Blank <bastian.bl...@credativ.de>  Thu, 12 Nov 2015 14:33:33 +0000
+
 shadow (1:4.2-3) unstable; urgency=low
 
   * Enforce hardened builds to workaround cdbs sometimes not building
diff -Nru shadow-4.2/debian/patches/1020_fix_user_busy_errors 
shadow-4.2/debian/patches/1020_fix_user_busy_errors
--- shadow-4.2/debian/patches/1020_fix_user_busy_errors 1970-01-01 
00:00:00.000000000 +0000
+++ shadow-4.2/debian/patches/1020_fix_user_busy_errors 2015-11-17 
15:20:08.000000000 +0000
@@ -0,0 +1,38 @@
+Description: Fix user_busy to not leave subuid open in case of error.
+Author: William Grant <wgr...@ubuntu.com>
+Bug: https://bugs.launchpad.net/ubuntu/vivid/+source/shadow/+bug/1436937
+
+Index: shadow-4.2/libmisc/user_busy.c
+===================================================================
+--- shadow-4.2.orig/libmisc/user_busy.c
++++ shadow-4.2/libmisc/user_busy.c
+@@ -175,6 +175,9 @@ static int user_busy_processes (const ch
+       if (stat ("/", &sbroot) != 0) {
+               perror ("stat (\"/\")");
+               (void) closedir (proc);
++#ifdef ENABLE_SUBIDS
++              sub_uid_close();
++#endif                                /* ENABLE_SUBIDS */
+               return 0;
+       }
+ 
+@@ -212,6 +215,9 @@ static int user_busy_processes (const ch
+ 
+               if (check_status (name, tmp_d_name, uid) != 0) {
+                       (void) closedir (proc);
++#ifdef ENABLE_SUBIDS
++                      sub_uid_close();
++#endif                                /* ENABLE_SUBIDS */
+                       fprintf (stderr,
+                                _("%s: user %s is currently used by process 
%d\n"),
+                                Prog, name, pid);
+@@ -232,6 +238,9 @@ static int user_busy_processes (const ch
+                               }
+                               if (check_status (name, task_path+6, uid) != 0) 
{
+                                       (void) closedir (proc);
++#ifdef ENABLE_SUBIDS
++                                      sub_uid_close();
++#endif                                /* ENABLE_SUBIDS */
+                                       fprintf (stderr,
+                                                _("%s: user %s is currently 
used by process %d\n"),
+                                                Prog, name, pid);
diff -Nru shadow-4.2/debian/patches/series shadow-4.2/debian/patches/series
--- shadow-4.2/debian/patches/series    2014-11-19 20:48:40.000000000 +0000
+++ shadow-4.2/debian/patches/series    2015-11-17 15:20:08.000000000 +0000
@@ -34,3 +34,4 @@
 #userns/16_add-argument-sanity-checking.patch
 1000_configure_userns
 1010_vietnamese_translation
+1020_fix_user_busy_errors

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.2.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to