aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mandriva.org>2007-02-26 12:53:08 +0000
committerThierry Vignaud <tv@mandriva.org>2007-02-26 12:53:08 +0000
commit55134df21e79194855523eea5fbfd899b4cf1475 (patch)
treeedabeee70dfea1881bdbc7df3f4f9a68e446ceca
parent997efb3e6b8538063ea6cc14052ba33905fdd6bb (diff)
downloaduserdrake-55134df21e79194855523eea5fbfd899b4cf1475.tar
userdrake-55134df21e79194855523eea5fbfd899b4cf1475.tar.gz
userdrake-55134df21e79194855523eea5fbfd899b4cf1475.tar.bz2
userdrake-55134df21e79194855523eea5fbfd899b4cf1475.tar.xz
userdrake-55134df21e79194855523eea5fbfd899b4cf1475.zip
(RefreshUsersFull) fix crash when /etc/passwd contains mixed UTF-8 &
ISO-Latin1 encoded characters (#28888)
-rwxr-xr-xuserdrake7
1 files changed, 7 insertions, 0 deletions
diff --git a/userdrake b/userdrake
index 6bf7d52..32d161f 100755
--- a/userdrake
+++ b/userdrake
@@ -218,7 +218,14 @@ sub RefreshUsersFull {
$utree_model->clear;
my @UserReal;
LOOP: foreach my $l (@$users) { next LOOP if $filterusers && $l->Uid($GetValue) <= 499 || $l->Uid($GetValue) == 65534; push(@UserReal, $l) if $l->UserName($GetValue) =~ /^\Q$strfilt/ }
+ my $i;
foreach my $l (@UserReal) {
+ $i++;
+ my $uid = $l->Uid($GetValue);
+ if (!defined $uid) {
+ warn "bogus user at line $i\n";
+ next;
+ }
my $a = $l->Gid($GetValue); $group = $ctx->LookupGroupById($a); $groupnm = ''; $expr = ComputeLockExpire($l);
$group and $groupnm = $group->GroupName($GetValue);
my $s = $l->Gecos($GetValue);