Bug 1566179

Summary: MariaDB / MySQL long password aren't accepted via password prompt
Product: Red Hat Enterprise Linux 7 Reporter: Michal Schorm <mschorm>
Component: mariadbAssignee: Michal Schorm <mschorm>
Status: CLOSED NOTABUG QA Contact: qe-baseos-daemons
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.7CC: daniel, databases-maint, mmuzila
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-16 12:30:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michal Schorm 2018-04-11 17:36:04 UTC
When using:

  mysql -u user -p

MariaDB / MySQL server will ask for the password.

If the string provided is longer that 79 characters, the server will always return an ERROR:

  # mysql -u user -p
  Enter password: 
  ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)

--

Reproducible on both MariaDB, MySQL in RHEL, RHSCL and Fedora.

Reproducer:


CREATE USER 'user'@'localhost';
SET PASSWORD FOR 'user'@'localhost' = PASSWORD('1111111111111111111111111111111111111111111111111122222222222222222222222221234');

mysql -u user -p


SET PASSWORD FOR 'user'@'localhost' = PASSWORD('11111111111111111111111111111111111111111111111111222222222222222222222222212345');

mysql -u user -p

Comment 2 Michal Schorm 2018-05-16 12:30:05 UTC
Expected:
The array for the password is capped to 80 chars.

https://github.com/MariaDB/server/blob/10.3/mysys/get_password.c#L63

Comment 3 Daniel Black 2018-05-17 05:22:39 UTC
Before I get caught out by providing a link to the windows code section,
linux has the same limit: https://github.com/MariaDB/server/blob/10.3/mysys/get_password.c#L155

The lack of a meaningful error message is a bit ugly.