----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/111261/#review35196 -----------------------------------------------------------
kcheckpass/checkpass_osfc2passwd.c <http://git.reviewboard.kde.org/r/111261/#comment25787> you are inconsistent about the operator placement. above you used qt-style start-of-line, while here it is end-of-line. i don't care too much if it matches the surrounding code in each file respectively. however, i think i wouldn't wrap any of these statements to start with - they are short enough for my taste (qt has a 100 column soft limit). kdm/backend/client.c <http://git.reviewboard.kde.org/r/111261/#comment25786> i really meant line 543. ;) just as the code using it, it must be in the else branch of PAM and AIX. - Oswald Buddenhagen On June 27, 2013, 6:05 p.m., mancha mancha wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/111261/ > ----------------------------------------------------------- > > (Updated June 27, 2013, 6:05 p.m.) > > > Review request for kde-workspace. > > > Description > ------- > > Background: > Beginning with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL (w/ NULL > return) if the salt violates specifications. Additionally, on FIPS-140 > enabled Linux systems, DES or MD5 encrypted passwords passed to crypt() fail > with EPERM (w/ NULL return). > > Description: > If KDM uses raw crypt() authentication (or pw_encrypt() on a patched Shadow > system; see: > https://alioth.debian.org/tracker/index.php?func=detail&aid=314234 ), instead > of higher-level authentication such as PAM, and that crypt() can return a > NULL pointer (as glibc 2.17+ does when passed a DES/MD5 encrypted passwords > on Linux systems in FIPS-140 mode), then attempting to login to such an > account via KDM crashes the daemon. > > ----- > kdm[1879]: segfault at 0 ip b74a1909 sp bfd209d4 error 4 in > libc-2.17.so[b7421000+186000] > kdm[1841]: Unknown session exit code 0 (sig 11) from manager process > ----- > > Likewise, KCheckPass, when called in a similar scenario as KDM above, or when > attempting to pass invalid input to crypt()/pw_encrypt() such as a "locked" > account that has a "!" prepended in the password field, will crash. > > ----- > kcheckpass[1927]: segfault at 0 ip b762b910 sp bffb0494 error 4 in > libc-2.17.so[b75ab000+186000] > ----- > > Note: an earlier (and buggy) patch was emailed directly to ML (not via RR). > Please disregard that submission entirely. > > > Diffs > ----- > > kcheckpass/checkpass_etcpasswd.c 1dbe06f > kcheckpass/checkpass_osfc2passwd.c 9a074f9 > kcheckpass/checkpass_shadow.c ec3a4e0 > kdm/backend/client.c bdff6da > > Diff: http://git.reviewboard.kde.org/r/111261/diff/ > > > Testing > ------- > > Tests conducted on KDE-Workspace 4.10.4 confirm attached patch corrects the > issues described above. Before applying the patch, KDM and KCheckPass > segfault as shown in log snippets above. After applying the patch, both > properly handle NULL returns from crypt() and pw_encrypt(). > > > Thanks, > > mancha mancha > >