Bug 453767 - Passwords containing wide characters causes system error
Patch by David Lawrence <dkl@redhat.com> - a/r=mkanat git-svn-id: svn://10.0.0.236/trunk@254181 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
a42e91477a
commit
36109e6138
@ -53,6 +53,11 @@ sub check_credentials {
|
||||
"SELECT cryptpassword FROM profiles WHERE userid = ?",
|
||||
undef, $user_id);
|
||||
|
||||
# Wide characters cause crypt to die
|
||||
if (Bugzilla->params->{'utf8'}) {
|
||||
utf8::encode($password) if utf8::is_utf8($password);
|
||||
}
|
||||
|
||||
# Using the internal crypted password as the salt,
|
||||
# crypt the password the user entered.
|
||||
my $entered_password_crypted = crypt($password, $real_password_crypted);
|
||||
|
||||
@ -480,6 +480,11 @@ sub bz_crypt {
|
||||
$salt .= $saltchars[rand(64)];
|
||||
}
|
||||
|
||||
# Wide characters cause crypt to die
|
||||
if (Bugzilla->params->{'utf8'}) {
|
||||
utf8::encode($password) if utf8::is_utf8($password);
|
||||
}
|
||||
|
||||
# Crypt the password.
|
||||
my $cryptedpassword = crypt($password, $salt);
|
||||
|
||||
|
||||
@ -90,8 +90,14 @@ sub SaveAccount {
|
||||
undef, $user->id);
|
||||
$oldcryptedpwd || ThrowCodeError("unable_to_retrieve_password");
|
||||
|
||||
if (crypt(scalar($cgi->param('Bugzilla_password')), $oldcryptedpwd) ne
|
||||
$oldcryptedpwd)
|
||||
my $oldpassword = $cgi->param('Bugzilla_password');
|
||||
|
||||
# Wide characters cause crypt to die
|
||||
if (Bugzilla->params->{'utf8'}) {
|
||||
utf8::encode($oldpassword) if utf8::is_utf8($oldpassword);
|
||||
}
|
||||
|
||||
if (crypt($oldpassword, $oldcryptedpwd) ne $oldcryptedpwd)
|
||||
{
|
||||
ThrowUserError("old_password_incorrect");
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user