Blame SOURCES/shadow-4.6-sysugid-min-limit.patch

b8f1b8
diff -up shadow-4.6/libmisc/find_new_gid.c.min-limit shadow-4.6/libmisc/find_new_gid.c
b8f1b8
--- shadow-4.6/libmisc/find_new_gid.c.min-limit	2018-04-29 18:42:37.000000001 +0200
b8f1b8
+++ shadow-4.6/libmisc/find_new_gid.c	2018-11-06 10:51:20.554963292 +0100
b8f1b8
@@ -82,6 +82,13 @@ static int get_ranges (bool sys_group, g
b8f1b8
                             (unsigned long) *max_id);
b8f1b8
 			return EINVAL;
b8f1b8
 		}
b8f1b8
+		/*
b8f1b8
+		 * Zero is reserved for root and the allocation algorithm does not
b8f1b8
+		 * work right with it.
b8f1b8
+		 */
b8f1b8
+		if (*min_id == 0) {
b8f1b8
+			*min_id = (gid_t) 1;
b8f1b8
+		}
b8f1b8
 	} else {
b8f1b8
 		/* Non-system groups */
b8f1b8
 
b8f1b8
diff -up shadow-4.6/libmisc/find_new_uid.c.min-limit shadow-4.6/libmisc/find_new_uid.c
b8f1b8
--- shadow-4.6/libmisc/find_new_uid.c.min-limit	2018-04-29 18:42:37.000000001 +0200
b8f1b8
+++ shadow-4.6/libmisc/find_new_uid.c	2018-11-06 10:51:39.341399569 +0100
b8f1b8
@@ -82,6 +82,13 @@ static int get_ranges (bool sys_user, ui
b8f1b8
                             (unsigned long) *max_id);
b8f1b8
 			return EINVAL;
b8f1b8
 		}
b8f1b8
+		/*
b8f1b8
+		 * Zero is reserved for root and the allocation algorithm does not
b8f1b8
+		 * work right with it.
b8f1b8
+		 */
b8f1b8
+		if (*min_id == 0) {
b8f1b8
+			*min_id = (uid_t) 1;
b8f1b8
+		}
b8f1b8
 	} else {
b8f1b8
 		/* Non-system users */
b8f1b8