diff --git a/.cvsignore b/.cvsignore index 44506c6..1aa7c2d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,3 +1,4 @@ shadow-4.0.17-login.defs shadow-4.0.18.1-useradd shadow-4.1.1.tar.bz2 +shadow-4.1.2.tar.bz2 diff --git a/shadow-4.1.1-audit.patch b/shadow-4.1.1-audit.patch deleted file mode 100644 index 964e0c1..0000000 --- a/shadow-4.1.1-audit.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -up shadow-4.1.1/src/newgrp.c.audit shadow-4.1.1/src/newgrp.c ---- shadow-4.1.1/src/newgrp.c.audit 2008-04-03 15:20:25.000000000 +0200 -+++ shadow-4.1.1/src/newgrp.c 2008-04-03 15:22:00.000000000 +0200 -@@ -53,6 +53,10 @@ static GETGROUPS_T *grouplist; - static char *Prog; - static int is_newgrp; - -+#ifdef WITH_AUDIT -+ char audit_buf[80]; -+#endif -+ - /* local function prototypes */ - static void usage (void); - static void check_perms (const struct group *grp, -@@ -349,10 +353,9 @@ int main (int argc, char **argv) - #endif - - #ifdef WITH_AUDIT -- char audit_buf[80]; -- - audit_help_open (); - #endif -+ - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); diff --git a/shadow-4.1.1-saltSize.patch b/shadow-4.1.1-saltSize.patch deleted file mode 100644 index aaf1dec..0000000 --- a/shadow-4.1.1-saltSize.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up shadow-4.1.1/libmisc/salt.c.saltSize shadow-4.1.1/libmisc/salt.c ---- shadow-4.1.1/libmisc/salt.c.saltSize 2008-05-20 13:36:06.000000000 +0200 -+++ shadow-4.1.1/libmisc/salt.c 2008-05-20 13:39:30.000000000 +0200 -@@ -90,9 +90,10 @@ static void seedRNG (void) - */ - static unsigned int SHA_salt_size (void) - { -- double rand_rounds = 9 * random (); -- rand_rounds /= RAND_MAX; -- return 8 + rand_rounds; -+ unsigned int rand_rounds; -+ seedRNG (); -+ rand_rounds = random () % 9; -+ return 8 + rand_rounds; - } - - /* ! Arguments evaluated twice ! */ diff --git a/shadow-4.1.0-goodname.patch b/shadow-4.1.2-goodname.patch similarity index 64% rename from shadow-4.1.0-goodname.patch rename to shadow-4.1.2-goodname.patch index 5456ceb..273ad2b 100644 --- a/shadow-4.1.0-goodname.patch +++ b/shadow-4.1.2-goodname.patch @@ -1,7 +1,7 @@ -diff -up shadow-4.1.0/libmisc/chkname.c.goodname shadow-4.1.0/libmisc/chkname.c ---- shadow-4.1.0/libmisc/chkname.c.goodname 2007-11-11 00:45:59.000000000 +0100 -+++ shadow-4.1.0/libmisc/chkname.c 2007-12-12 13:57:20.000000000 +0100 -@@ -18,16 +18,24 @@ +diff -up shadow-4.1.2/libmisc/chkname.c.goodname shadow-4.1.2/libmisc/chkname.c +--- shadow-4.1.2/libmisc/chkname.c.goodname 2008-04-27 02:40:13.000000000 +0200 ++++ shadow-4.1.2/libmisc/chkname.c 2008-05-26 14:37:09.000000000 +0200 +@@ -50,16 +50,24 @@ static int good_name (const char *name) { /* @@ -33,7 +33,7 @@ diff -up shadow-4.1.0/libmisc/chkname.c.goodname shadow-4.1.0/libmisc/chkname.c return 0; } -@@ -43,10 +51,9 @@ int check_user_name (const char *name) +@@ -75,10 +83,9 @@ int check_user_name (const char *name) #endif /* @@ -46,7 +46,7 @@ diff -up shadow-4.1.0/libmisc/chkname.c.goodname shadow-4.1.0/libmisc/chkname.c return 0; return good_name (name); -@@ -54,11 +61,13 @@ int check_user_name (const char *name) +@@ -86,11 +93,13 @@ int check_user_name (const char *name) int check_group_name (const char *name) { @@ -65,29 +65,29 @@ diff -up shadow-4.1.0/libmisc/chkname.c.goodname shadow-4.1.0/libmisc/chkname.c return 0; return good_name (name); -diff -up shadow-4.1.0/man/groupadd.8.goodname shadow-4.1.0/man/groupadd.8 ---- shadow-4.1.0/man/groupadd.8.goodname 2007-12-12 13:51:43.000000000 +0100 -+++ shadow-4.1.0/man/groupadd.8 2007-12-12 14:00:29.000000000 +0100 -@@ -126,9 +126,7 @@ Shadow password suite configuration\. +diff -up shadow-4.1.2/man/groupadd.8.goodname shadow-4.1.2/man/groupadd.8 +--- shadow-4.1.2/man/groupadd.8.goodname 2008-05-26 14:37:09.000000000 +0200 ++++ shadow-4.1.2/man/groupadd.8 2008-05-26 14:40:51.000000000 +0200 +@@ -150,9 +150,7 @@ Shadow password suite configuration\&. .RE .SH "CAVEATS" .PP --Groupnames must begin with a lower case letter or an underscore, and only lower case letters, underscores, dashes, and dollar signs may follow\. In regular expression terms: [a\-z_][a\-z0\-9_\-]*[$] +-Groupnames must begin with a lower case letter or an underscore, and only lower case letters, underscores, dashes, and dollar signs may follow\&. In regular expression terms: [a\-z_][a\-z0\-9_\-]*[$] -.PP --Groupnames may only be up to 16 characters long\. -+Groupnames may only be up to 32 characters long\. +-Groupnames may only be up to 16 characters long\&. ++Groupnames may only be up to 32 characters long\&. .PP - You may not add a NIS or LDAP group\. This must be performed on the corresponding server\. + You may not add a NIS or LDAP group\&. This must be performed on the corresponding server\&. .PP -diff -up shadow-4.1.0/man/useradd.8.goodname shadow-4.1.0/man/useradd.8 ---- shadow-4.1.0/man/useradd.8.goodname 2007-12-12 13:51:43.000000000 +0100 -+++ shadow-4.1.0/man/useradd.8 2007-12-12 14:01:36.000000000 +0100 -@@ -242,8 +242,6 @@ You may not add a user to a NIS or LDAP +diff -up shadow-4.1.2/man/useradd.8.goodname shadow-4.1.2/man/useradd.8 +--- shadow-4.1.2/man/useradd.8.goodname 2008-05-26 14:37:09.000000000 +0200 ++++ shadow-4.1.2/man/useradd.8 2008-05-26 14:41:48.000000000 +0200 +@@ -293,8 +293,6 @@ You may not add a user to a NIS or LDAP Similarly, if the username already exists in an external user database such as NIS or LDAP, \fBuseradd\fR - will deny the user account creation request\. + will deny the user account creation request\&. -.PP --Usernames must begin with a lower case letter or an underscore, and only lower case letters, underscores, dashes, and dollar signs may follow\. In regular expression terms: [a\-z_][a\-z0\-9_\-]*[$] +-Usernames must begin with a lower case letter or an underscore, and only lower case letters, underscores, dashes, and dollar signs may follow\&. In regular expression terms: [a\-z_][a\-z0\-9_\-]*[$] .SH "CONFIGURATION" .PP The following configuration variables in diff --git a/shadow-4.1.1-redhat.patch b/shadow-4.1.2-redhat.patch similarity index 65% rename from shadow-4.1.1-redhat.patch rename to shadow-4.1.2-redhat.patch index 48ad96a..75c84a8 100644 --- a/shadow-4.1.1-redhat.patch +++ b/shadow-4.1.2-redhat.patch @@ -1,7 +1,7 @@ -diff -up shadow-4.1.1/libmisc/find_new_ids.c.redhat shadow-4.1.1/libmisc/find_new_ids.c ---- shadow-4.1.1/libmisc/find_new_ids.c.redhat 2008-04-03 12:18:51.000000000 +0200 -+++ shadow-4.1.1/libmisc/find_new_ids.c 2008-04-03 13:30:44.000000000 +0200 -@@ -26,11 +26,11 @@ int find_new_uid (int sys_user, uid_t *u +diff -up shadow-4.1.2/libmisc/find_new_ids.c.redhat shadow-4.1.2/libmisc/find_new_ids.c +--- shadow-4.1.2/libmisc/find_new_ids.c.redhat 2008-04-22 00:00:19.000000000 +0200 ++++ shadow-4.1.2/libmisc/find_new_ids.c 2008-05-26 14:18:43.000000000 +0200 +@@ -56,11 +56,11 @@ int find_new_uid (int sys_user, uid_t *u assert (uid != NULL); if (sys_user == 0) { @@ -15,7 +15,7 @@ diff -up shadow-4.1.1/libmisc/find_new_ids.c.redhat shadow-4.1.1/libmisc/find_ne uid_max = getdef_unum ("SYS_UID_MAX", uid_max); } -@@ -108,11 +108,11 @@ int find_new_gid (int sys_group, gid_t * +@@ -139,11 +139,11 @@ int find_new_gid (int sys_group, gid_t * assert (gid != NULL); if (sys_group == 0) { @@ -29,10 +29,10 @@ diff -up shadow-4.1.1/libmisc/find_new_ids.c.redhat shadow-4.1.1/libmisc/find_ne gid_max = getdef_unum ("SYS_GID_MAX", gid_max); } -diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c ---- shadow-4.1.1/src/useradd.c.redhat 2008-03-08 23:42:05.000000000 +0100 -+++ shadow-4.1.1/src/useradd.c 2008-04-03 14:07:32.000000000 +0200 -@@ -82,7 +82,7 @@ +diff -up shadow-4.1.2/src/useradd.c.redhat shadow-4.1.2/src/useradd.c +--- shadow-4.1.2/src/useradd.c.redhat 2008-05-19 22:31:52.000000000 +0200 ++++ shadow-4.1.2/src/useradd.c 2008-05-26 14:18:43.000000000 +0200 +@@ -85,7 +85,7 @@ static gid_t def_group = 100; static const char *def_gname = "other"; static const char *def_home = "/home"; @@ -41,7 +41,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c static const char *def_template = SKEL_DIR; static const char *def_create_mail_spool = "no"; -@@ -94,7 +94,7 @@ static char def_file[] = USER_DEFAULTS_F +@@ -97,7 +97,7 @@ static char def_file[] = USER_DEFAULTS_F #define VALID(s) (strcspn (s, ":\n") == strlen (s)) static const char *user_name = ""; @@ -50,7 +50,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c static uid_t user_id; static gid_t user_gid; static const char *user_comment = ""; -@@ -130,6 +130,7 @@ static int +@@ -133,6 +133,7 @@ static int kflg = 0, /* specify a directory to fill new user directory */ lflg = 0, /* do not add user to lastlog database file */ mflg = 0, /* create user's home directory if it doesn't exist */ @@ -58,7 +58,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c Nflg = 0, /* do not create a group having the same name as the user, but add the user to def_group (or the group specified with -g) */ oflg = 0, /* permit non-unique user ID to be specified with -u */ rflg = 0, /* create a system account */ -@@ -653,6 +654,7 @@ static void usage (void) +@@ -656,6 +657,7 @@ static void usage (void) " faillog databases\n" " -m, --create-home create home directory for the new user\n" " account\n" @@ -66,7 +66,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c " -N, --no-user-group do not create a group with the same name as\n" " the user\n" " -o, --non-unique allow create user with duplicate\n" -@@ -883,7 +885,7 @@ static void process_flags (int argc, cha +@@ -886,7 +888,7 @@ static void process_flags (int argc, cha {NULL, 0, NULL, '\0'} }; while ((c = @@ -75,7 +75,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c long_options, NULL)) != -1) { switch (c) { case 'b': -@@ -1023,6 +1025,10 @@ static void process_flags (int argc, cha +@@ -1026,6 +1028,10 @@ static void process_flags (int argc, cha case 'm': mflg++; break; @@ -86,7 +86,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c case 'N': Nflg++; break; -@@ -1076,6 +1082,9 @@ static void process_flags (int argc, cha +@@ -1079,6 +1085,9 @@ static void process_flags (int argc, cha Uflg = getdef_bool ("USERGROUPS_ENAB"); } @@ -96,7 +96,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c /* * Certain options are only valid in combination with others. * Check it here so that they can be specified in any order. -@@ -1625,6 +1634,14 @@ int main (int argc, char **argv) +@@ -1628,6 +1637,14 @@ int main (int argc, char **argv) } #endif /* USE_PAM */ @@ -111,7 +111,7 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c /* * See if we are messing with the defaults file, or creating * a new user. -@@ -1724,27 +1741,22 @@ int main (int argc, char **argv) +@@ -1727,27 +1744,22 @@ int main (int argc, char **argv) ("%s: warning: the home directory already exists.\n" "Not copying any file from skel directory into it.\n"), Prog); @@ -154,33 +154,30 @@ diff -up shadow-4.1.1/src/useradd.c.redhat shadow-4.1.1/src/useradd.c close_files (); -diff -up shadow-4.1.1/src/groupadd.c.redhat shadow-4.1.1/src/groupadd.c -diff -up shadow-4.1.1/man/useradd.8.redhat shadow-4.1.1/man/useradd.8 ---- shadow-4.1.1/man/useradd.8.redhat 2008-04-03 00:43:14.000000000 +0200 -+++ shadow-4.1.1/man/useradd.8 2008-04-03 14:20:23.000000000 +0200 -@@ -25,9 +25,9 @@ When invoked without the - \fB\-D\fR - option, the +diff -up shadow-4.1.2/man/useradd.8.redhat shadow-4.1.2/man/useradd.8 +--- shadow-4.1.2/man/useradd.8.redhat 2008-05-25 01:20:26.000000000 +0200 ++++ shadow-4.1.2/man/useradd.8 2008-05-26 14:26:14.000000000 +0200 +@@ -27,7 +27,7 @@ option, the \fBuseradd\fR --command creates a new user account using the values specified on the command line plus the default values from the system\. Depending on command line options, the -+command creates a new user account using the values specified on the command line and the default values from the system. Depending on command line options, the + command creates a new user account using the values specified on the command line plus the default values from the system\&. Depending on command line options, the \fBuseradd\fR --command will update system files and may also create the new user\'s home directory and copy initial files\. -+command will update system files and may also create the new user's home directory and copy initial files. The version provided with Red Hat Linux will create a group for each user added to the system by default. +-command will update system files and may also create the new user\'s home directory and copy initial files\&. ++command will update system files and may also create the new user\'s home directory and copy initial files\&. The version provided with Red Hat Linux will create a group for each user added to the system by default\&. .SH "OPTIONS" .PP The options which apply to the -@@ -84,7 +84,7 @@ The number of days after a password expi +@@ -84,8 +84,7 @@ The number of days after a password expi .PP \fB\-g\fR, \fB\-\-gid\fR \fIGROUP\fR .RS 4 --The group name or number of the user\'s initial login group\. The group name must exist\. A group number must refer to an already existing group\. The default group number is 1 or whatever is specified in -+The group name or number of the user\'s initial login group\. The group name must exist\. A group number must refer to an already existing group\. - \fI/etc/default/useradd\fR\. +-The group name or number of the user\'s initial login group\&. The group name must exist\&. A group number must refer to an already existing group\&. The default group number is 1 or whatever is specified in +-\fI/etc/default/useradd\fR\&. ++The group name or number of the user\'s initial login group\&. The group name must exist\&. A group number must refer to an already existing group\&. .RE .PP -@@ -100,6 +100,13 @@ option\. The default is for the user to - Display help message and exit\. + \fB\-G\fR, \fB\-\-groups\fR \fIGROUP1\fR[\fI,GROUP2,\&.\&.\&.\fR[\fI,GROUPN\fR]]] +@@ -143,6 +142,13 @@ Do not add the user to the lastlog and f + By default, the user\'s entries in the lastlog and faillog databases are resetted to avoid reusing the entry from a previously deleted user\&. .RE .PP +\fB-M\fR @@ -192,9 +189,9 @@ diff -up shadow-4.1.1/man/useradd.8.redhat shadow-4.1.1/man/useradd.8 +.PP \fB\-m\fR, \fB\-\-create\-home\fR .RS 4 - The user\'s home directory will be created if it does not exist\. The files contained in -@@ -174,6 +181,19 @@ The encrypted password, as returned by - \fBcrypt\fR(3)\. The default is to disable the account\. + Create the user\'s home directory if it does not exist\&. The files and directories contained in the skeleton directory (which can be defined with the +@@ -195,6 +201,19 @@ range, defined in + counterparts for the creation of groups)\&. .RE .PP +\fB-r\fR @@ -212,18 +209,18 @@ diff -up shadow-4.1.1/man/useradd.8.redhat shadow-4.1.1/man/useradd.8 +.PP \fB\-s\fR, \fB\-\-shell\fR \fISHELL\fR .RS 4 - The name of the user\'s login shell\. The default is to leave this field blank, which causes the system to select the default login shell\. -@@ -244,6 +264,8 @@ The name of a new user\'s login shell\. + The name of the user\'s login shell\&. The default is to leave this field blank, which causes the system to select the default login shell\&. +@@ -265,6 +284,8 @@ The name of a new user\'s login shell\&. The system administrator is responsible for placing the default user files in the \fI/etc/skel/\fR - directory\. + directory\&. +.br -+This version of useradd was modified by Red Hat to suit Red Hat user/group conventions\. ++This version of useradd was modified by Red Hat to suit Red Hat user/group conventions\&. .SH "CAVEATS" .PP - You may not add a user to a NIS or LDAP group\. This must be performed on the corresponding server\. -@@ -381,6 +403,11 @@ Secure user account information\. - Group account information\. + You may not add a user to a NIS or LDAP group\&. This must be performed on the corresponding server\&. +@@ -407,6 +428,11 @@ Group account information\&. + Secure group account information\&. .RE .PP +\fI/etc/gshadow\fR @@ -233,10 +230,10 @@ diff -up shadow-4.1.1/man/useradd.8.redhat shadow-4.1.1/man/useradd.8 +.PP \fI/etc/default/useradd\fR .RS 4 - Default values for account creation\. -diff -up shadow-4.1.1/man/groupadd.8.redhat shadow-4.1.1/man/groupadd.8 ---- shadow-4.1.1/man/groupadd.8.redhat 2008-04-03 00:42:54.000000000 +0200 -+++ shadow-4.1.1/man/groupadd.8 2008-04-03 14:27:04.000000000 +0200 + Default values for account creation\&. +diff -up shadow-4.1.2/man/groupadd.8.redhat shadow-4.1.2/man/groupadd.8 +--- shadow-4.1.2/man/groupadd.8.redhat 2008-05-25 01:20:05.000000000 +0200 ++++ shadow-4.1.2/man/groupadd.8 2008-05-26 14:35:49.000000000 +0200 @@ -14,7 +14,7 @@ groupadd \- create a new group .SH "SYNOPSIS" @@ -247,26 +244,26 @@ diff -up shadow-4.1.1/man/groupadd.8.redhat shadow-4.1.1/man/groupadd.8 .PP The @@ -34,11 +34,22 @@ This option causes the command to simply - is turned off)\. + is turned off)\&. .RE .PP +\fB-r\fR +.RS 4 +This flag instructs +\fBgroupadd\fR -+to add a system account\. The first available ++to add a system account\. The first available +\fIgid\fR -+lower than 499 will be automatically selected unless the ++lower than 500 will be automatically selected unless the +\fB-g\fR +option is also given on the command line\. This is an option added by Red Hat\. +.RE +.PP \fB\-g\fR, \fB\-\-gid\fR \fIGID\fR .RS 4 - The numerical value of the group\'s ID\. This value must be unique, unless the + The numerical value of the group\'s ID\&. This value must be unique, unless the \fB\-o\fR --option is used\. The value must be non\-negative\. The default is to use the smallest ID value greater than 999 and greater than every other group\. Values between 0 and 999 are typically reserved for system accounts\. -+option is used\. The value must be non\-negative\. The default is to use the smallest ID value greater than 499 and greater than every other group\. Values between 0 and 500 are typically reserved for system accounts\. +-option is used\&. The value must be non\-negative\&. The default is to use the smallest ID value greater than 999 and greater than every other group\&. Values between 0 and 999 are typically reserved for system accounts\&. ++option is used\&. The value must be non\-negative\&. The default is to use the smallest ID value greater than 499 and greater than every other group\&. Values between 0 and 500 are typically reserved for system accounts\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR diff --git a/shadow-4.1.1-sysAccountDownhill.patch b/shadow-4.1.2-sysAccountDownhill.patch similarity index 61% rename from shadow-4.1.1-sysAccountDownhill.patch rename to shadow-4.1.2-sysAccountDownhill.patch index 63f6911..2071190 100644 --- a/shadow-4.1.1-sysAccountDownhill.patch +++ b/shadow-4.1.2-sysAccountDownhill.patch @@ -1,7 +1,7 @@ -diff -up shadow-4.1.1/libmisc/find_new_ids.c.sysAccountDownhill shadow-4.1.1/libmisc/find_new_ids.c ---- shadow-4.1.1/libmisc/find_new_ids.c.sysAccountDownhill 2008-04-04 21:46:08.000000000 +0200 -+++ shadow-4.1.1/libmisc/find_new_ids.c 2008-04-04 21:50:04.000000000 +0200 -@@ -22,6 +22,7 @@ int find_new_uid (int sys_user, uid_t *u +diff -up shadow-4.1.2/libmisc/find_new_ids.c.sysAccountDownhill shadow-4.1.2/libmisc/find_new_ids.c +--- shadow-4.1.2/libmisc/find_new_ids.c.sysAccountDownhill 2008-05-26 14:52:49.000000000 +0200 ++++ shadow-4.1.2/libmisc/find_new_ids.c 2008-05-26 14:58:55.000000000 +0200 +@@ -52,6 +52,7 @@ int find_new_uid (int sys_user, uid_t *u { const struct passwd *pwd; uid_t uid_min, uid_max, user_id; @@ -9,7 +9,7 @@ diff -up shadow-4.1.1/libmisc/find_new_ids.c.sysAccountDownhill shadow-4.1.1/lib assert (uid != NULL); -@@ -32,6 +33,8 @@ int find_new_uid (int sys_user, uid_t *u +@@ -62,6 +63,8 @@ int find_new_uid (int sys_user, uid_t *u uid_min = getdef_unum ("SYS_UID_MIN", 1); uid_max = getdef_unum ("UID_MIN", 500) - 1; uid_max = getdef_unum ("SYS_UID_MAX", uid_max); @@ -18,7 +18,7 @@ diff -up shadow-4.1.1/libmisc/find_new_ids.c.sysAccountDownhill shadow-4.1.1/lib } if ( (NULL != preferred_uid) -@@ -61,8 +64,24 @@ int find_new_uid (int sys_user, uid_t *u +@@ -91,12 +94,28 @@ int find_new_uid (int sys_user, uid_t *u pw_rewind (); while ( ((pwd = getpwent ()) != NULL) || ((pwd = pw_next ()) != NULL)) { @@ -33,19 +33,23 @@ diff -up shadow-4.1.1/libmisc/find_new_ids.c.sysAccountDownhill shadow-4.1.1/lib + /* create index of occupied system accounts UIDs */ + if (pwd->pw_uid <= uid_max) + index[pwd->pw_uid] = 1; -+ } -+ } -+ + } + } + endpwent (); + + /* find free system account */ + if(sys_user) { + for( user_id = uid_max; (user_id >= uid_min) && index[user_id]; user_id--); + if ( user_id < uid_min ) { + fputs (_("Can't get unique UID (no more available UIDs)\n"), stderr); + return -1; - } - } - -@@ -104,6 +123,7 @@ int find_new_gid (int sys_group, gid_t * ++ } ++ } ++ + /* + * If a user with UID equal to UID_MAX exists, the above algorithm + * will give us UID_MAX+1 even if not unique. Search for the first +@@ -135,6 +154,7 @@ int find_new_gid (int sys_group, gid_t * { const struct group *grp; gid_t gid_min, gid_max, group_id; @@ -53,7 +57,7 @@ diff -up shadow-4.1.1/libmisc/find_new_ids.c.sysAccountDownhill shadow-4.1.1/lib assert (gid != NULL); -@@ -114,6 +134,8 @@ int find_new_gid (int sys_group, gid_t * +@@ -145,6 +165,8 @@ int find_new_gid (int sys_group, gid_t * gid_min = getdef_unum ("SYS_GID_MIN", 1); gid_max = getdef_unum ("GID_MIN", 500) - 1; gid_max = getdef_unum ("SYS_GID_MAX", gid_max); @@ -62,31 +66,32 @@ diff -up shadow-4.1.1/libmisc/find_new_ids.c.sysAccountDownhill shadow-4.1.1/lib } if ( (NULL != preferred_gid) -@@ -142,11 +164,27 @@ int find_new_gid (int sys_group, gid_t * +@@ -173,12 +195,28 @@ int find_new_gid (int sys_group, gid_t * gr_rewind (); while ( ((grp = getgrent ()) != NULL) || ((grp = gr_next ()) != NULL)) { - if ((grp->gr_gid >= group_id) && (grp->gr_gid <= gid_max)) { - group_id = grp->gr_gid + 1; -+ if (sys_group == 0) { -+ if ((grp->gr_gid >= group_id) && (grp->gr_gid <= gid_max)) { -+ group_id = grp->gr_gid + 1; -+ } -+ } -+ else { -+ /* create index of occupied system accounts GIDs */ -+ if (grp->gr_gid <= gid_max) -+ index[grp->gr_gid] = 1; ++ if (sys_group == 0) { ++ if ((grp->gr_gid >= group_id) && (grp->gr_gid <= gid_max)) { ++ group_id = grp->gr_gid + 1; ++ } ++ } ++ else { ++ /* create index of occupied system accounts GIDs */ ++ if (grp->gr_gid <= gid_max) ++ index[grp->gr_gid] = 1; } } + endgrent (); + /* find free system account */ + if(sys_group) { + for( group_id = gid_max; (group_id >= gid_min) && index[group_id]; group_id--); + if ( group_id < gid_min ) { -+ fputs (_("Can't get unique GID (no more available GIDs)\n"), stderr); -+ return -1; -+ } ++ fputs (_("Can't get unique GID (no more available GIDs)\n"), stderr); ++ return -1; ++ } + } + /* diff --git a/shadow-utils.spec b/shadow-utils.spec index e99796b..200f07e 100644 --- a/shadow-utils.spec +++ b/shadow-utils.spec @@ -4,20 +4,18 @@ Summary: Utilities for managing accounts and shadow password files Name: shadow-utils -Version: 4.1.1 -Release: 2%{?dist} +Version: 4.1.2 +Release: 1%{?dist} Epoch: 2 URL: http://pkg-shadow.alioth.debian.org/ Source0: ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-%{version}.tar.bz2 Source1: shadow-4.0.17-login.defs Source2: shadow-4.0.18.1-useradd -Patch0: shadow-4.1.1-redhat.patch -Patch1: shadow-4.1.1-audit.patch -Patch3: shadow-4.1.0-goodname.patch -Patch4: shadow-4.1.1-selinux.patch -Patch5: shadow-4.1.1-sysAccountDownhill.patch -Patch6: shadow-4.1.1-saltSize.patch +Patch0: shadow-4.1.2-redhat.patch +Patch1: shadow-4.1.2-goodname.patch +Patch2: shadow-4.1.1-selinux.patch +Patch3: shadow-4.1.2-sysAccountDownhill.patch License: BSD Group: System Environment/Base @@ -43,11 +41,9 @@ are used for managing group accounts. %prep %setup -q -n shadow-%{version} %patch0 -p1 -b .redhat -%patch1 -p1 -b .audit -%patch3 -p1 -b .goodname -%patch4 -p1 -b .selinux -%patch5 -p1 -b .sysAccountDownhill -%patch6 -p1 -b .saltSize +%patch1 -p1 -b .goodname +%patch2 -p1 -b .selinux +%patch3 -p1 -b .sysAccountDownhill rm po/*.gmo @@ -188,6 +184,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man8/vigr.8* %changelog +* Mon May 26 2008 Peter Vrabec 2:4.1.2-1 +- upgrade + * Tue May 20 2008 Peter Vrabec 2:4.1.1-2 - fix salt size problem (#447136) diff --git a/sources b/sources index a48c6ec..0c72fb3 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ e91727c55dbafc9915250e31535f13bb shadow-4.0.17-login.defs ebdf46b79f9b414353c9ae8aba4d55cc shadow-4.0.18.1-useradd b1aa30abb3cce16a37b53e45e1ec70a4 shadow-4.1.1.tar.bz2 +ce90cbe9cba7f6673cb10cad49083c1c shadow-4.1.2.tar.bz2