https://bugs.kde.org/show_bug.cgi?id=380491

Fabian Vogt <fab...@ritter-vogt.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://commits.kde.org/ksc
                   |                            |reenlocker/23fa33cedfa55cba
                   |                            |c83bbdcc514b988d721552dc
             Status|CONFIRMED                   |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Fabian Vogt <fab...@ritter-vogt.de> ---
Git commit 23fa33cedfa55cbac83bbdcc514b988d721552dc by Fabian Vogt.
Committed on 04/06/2017 at 18:57.
Pushed by fvogt into branch 'Plasma/5.10'.

Fixup protocol mismatch between greeter and kcheckpass

Summary:
The receiver (kcheckpass) reads a string and if it is !nullptr, reads an int:

        msg = GRecvStr ();
        if (msg && (GRecvInt() & IsPassword) && !*msg)

The sender (kscreenlocker_greet) sends a string and if it is not empty,
sends an int:

        GSendStr(m_password.toUtf8().constData());
        if (!m_password.isEmpty()) {
                // IsSecret
                GSendInt(1);
        }

This does not work out for empty strings, as those still have a length of 1,
resulting in kcheckpass waiting indefinitely for an int that does not get sent.
Testing for a nullptr on the sender side instead of the string length fixes
this.

Also clean up the code duplication and IsSecret (1)/IsPassword (2) mismatch.

Test Plan:
Reproduced the bug without this patch, with this patch it does not
happen anymore. Authentication still works and fails as expected.

Reviewers: #plasma

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D6091

M  +7    -15   greeter/authenticator.cpp

https://commits.kde.org/kscreenlocker/23fa33cedfa55cbac83bbdcc514b988d721552dc

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to