From fad3edf66a21ef56b43b5e314745b167bb683175 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 25 Mar 2019 16:50:49 +0100 Subject: [PATCH] [fix] SSH login breaks if password is longer than 127 chars... --- locales/en.json | 1 + src/yunohost/tools.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/locales/en.json b/locales/en.json index 18ab84be1..694df0707 100644 --- a/locales/en.json +++ b/locales/en.json @@ -4,6 +4,7 @@ "admin_password": "Administration password", "admin_password_change_failed": "Unable to change password", "admin_password_changed": "The administration password has been changed", + "admin_password_too_long": "Please choose a password shorter than 127 characters", "app_already_installed": "{app:s} is already installed", "app_already_installed_cant_change_url": "This app is already installed. The url cannot be changed just by this function. Look into `app changeurl` if it's available.", "app_already_up_to_date": "{app:s} is already up to date", diff --git a/src/yunohost/tools.py b/src/yunohost/tools.py index a011b1546..42114c7e9 100644 --- a/src/yunohost/tools.py +++ b/src/yunohost/tools.py @@ -132,6 +132,11 @@ def tools_adminpw(auth, new_password, check_strength=True): if check_strength: assert_password_is_strong_enough("admin", new_password) + # UNIX seems to not like password longer than 127 chars ... + # e.g. SSH login gets broken (or even 'su admin' when entering the password) + if len(new_password) >= 127: + raise YunohostError('admin_password_too_long') + new_hash = _hash_user_password(new_password) try: