Author: jsuchome Date: Mon Mar 8 11:55:56 2010 New Revision: 61178 URL: http://svn.opensuse.org/viewcvs/yast?rev=61178&view=rev Log: - handle possible empty shadow (bnc#583338) - 2.19.5 Modified: trunk/users/VERSION trunk/users/package/yast2-users.changes trunk/users/src/Users.pm trunk/users/src/UsersPasswd.pm Modified: trunk/users/VERSION URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/VERSION?rev=61178&r1=61177&r2=61178&view=diff ============================================================================== --- trunk/users/VERSION (original) +++ trunk/users/VERSION Mon Mar 8 11:55:56 2010 @@ -1 +1 @@ -2.19.4 +2.19.5 Modified: trunk/users/package/yast2-users.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/package/yast2-users.changes?rev=61178&r1=61177&r2=61178&view=diff ============================================================================== --- trunk/users/package/yast2-users.changes (original) +++ trunk/users/package/yast2-users.changes Mon Mar 8 11:55:56 2010 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Mon Mar 8 11:55:53 CET 2010 - jsuchome@suse.cz + +- handle possible empty shadow (bnc#583338) +- 2.19.5 + +------------------------------------------------------------------- Fri Feb 26 14:20:43 CET 2010 - jsuchome@suse.cz - password warnings merged into one big message (bnc#571777) Modified: trunk/users/src/Users.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/Users.pm?rev=61178&r1=61177&r2=61178&view=diff ============================================================================== --- trunk/users/src/Users.pm (original) +++ trunk/users/src/Users.pm Mon Mar 8 11:55:56 2010 @@ -4057,11 +4057,19 @@ my $cmd = "/bin/cp $base_directory/shadow $base_directory/shadow.YaST2save"; if (SCR->Execute (".target.bash", $cmd) != 0) { - y2error ("creating backup of $base_directory/shadow failed"); - return 0; + if (FileUtils->Exists ("$base_directory/shadow")) { + y2error ("creating backup of $base_directory/shadow failed"); + return 0; + } else { + y2milestone ("$base_directory/shadow does not exists, so it won't be written"); + return 1; + } + } + else + { + y2usernote ("Backup created: '$cmd'"); + return UsersPasswd->WriteShadow (\%shadow); } - y2usernote ("Backup created: '$cmd'"); - return UsersPasswd->WriteShadow (\%shadow); } ##------------------------------------ Modified: trunk/users/src/UsersPasswd.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/UsersPasswd.pm?rev=61178&r1=61177&r2=61178&view=diff ============================================================================== --- trunk/users/src/UsersPasswd.pm (original) +++ trunk/users/src/UsersPasswd.pm Mon Mar 8 11:55:56 2010 @@ -68,6 +68,9 @@ # data correctly initialized ? (Read must be called before Get*) my $initialized = 0; +# indicates that /etc/shadow is missing (may be intentional, see bnc#583338) +my $no_shadow = 0; + #--------------------------------------------------------------------- #-------------------------------------------------- internal functions @@ -100,11 +103,13 @@ %shadow_tmp = (); @plus_lines_shadow = (); @comments_shadow = (); + $no_shadow = 0; my $file = "$base_directory/shadow"; if (! FileUtils->Exists ($file)) { y2warning ("$file is not available!"); + $no_shadow = 1; return 1; } my $in = SCR->Read (".target.string", $file); @@ -421,6 +426,10 @@ "userPassword" => undef, "type" => $user_type }; + # sometimes real password might be in /etc/passwd + if ($password ne "" && $password ne "x" && $no_shadow) { + $users{$user_type}{$username}{"userPassword"} = $password; + } if (! defined $shadow_tmp{$username}) { y2debug ("There is no shadow entry for user $username."); @@ -688,6 +697,10 @@ my %user = %{$users_w{$type}{$username}}; my $pass = "x"; + if ($no_shadow && $user{"userPassword"}) + { + $pass = $user{"userPassword"}; + } my $cn = $user{"cn"} || ""; if (defined $user{"addit_data"} && $user{"addit_data"} ne "") { $cn .= ",".$user{"addit_data"}; -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org