summaryrefslogtreecommitdiff
path: root/includes/form.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/form.inc')
-rw-r--r--includes/form.inc13
1 files changed, 8 insertions, 5 deletions
diff --git a/includes/form.inc b/includes/form.inc
index 07df6d782..a6fd96536 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -727,12 +727,9 @@ function expand_password_confirm($element) {
* Validate password_confirm element.
*/
function password_confirm_validate($form) {
- if (!empty($form['pass1']['#value'])) {
- $pass1 = trim($form['pass1']['#value']);
+ $pass1 = trim($form['pass1']['#value']);
+ if (!empty($pass1)) {
$pass2 = trim($form['pass2']['#value']);
- form_set_value($form['pass1'], NULL);
- form_set_value($form['pass2'], NULL);
- form_set_value($form, $pass1);
if ($pass1 != $pass2) {
form_error($form, t('The specified passwords do not match.'));
}
@@ -741,6 +738,12 @@ function password_confirm_validate($form) {
form_error($form, t('Password field is required.'));
}
+ // Password field must be converted from a two-element array into a single
+ // string regardless of validation results.
+ form_set_value($form['pass1'], NULL);
+ form_set_value($form['pass2'], NULL);
+ form_set_value($form, $pass1);
+
return $form;
}