Mailinglist Archive: opensuse-bugs (13048 mails)

< Previous Next >
[Bug 441144] kdm freezes if fingerprintreader is enabled
  • From: bugzilla_noreply@xxxxxxxxxx
  • Date: Thu, 8 Jan 2009 09:52:44 -0700 (MST)
  • Message-id: <20090108165244.B1687245394@xxxxxxxxxxxxxxxxxxxxxx>
https://bugzilla.novell.com/show_bug.cgi?id=441144

User mischa.salle@xxxxxxxxx added comment
https://bugzilla.novell.com/show_bug.cgi?id=441144#c34





--- Comment #34 from Mischa Salle <mischa.salle@xxxxxxxxx> 2009-01-08 09:52:43
MST ---
Created an attachment (id=263921)
--> (https://bugzilla.novell.com/attachment.cgi?id=263921)
Updated pam_fp.c to make kdm etc work with pam_fp

I managed to get kdm/kdesktop_lock to work as described by Alexander Lavrinenko
in comment #26, but only after hacking the pam_fp source code. I am using the
opensuse 11.1 release version: kde4-kdm-4.1.3-10.1, pam_fp-0.1-11.5,
libfprint0-0.0.6-8.16, libfprint-devel-0.0.6-8.16
I am not 100% sure what happens but two changes in pam_fp.c are necessary to
make it work:

1) In the original code in function pam_fp_prompt() there is a wait(NULL)
statement which is the one that hangs. Changing it into
waitpid((pid_t)-1,&stat_loc,WNOHANG) stops it from hanging after a password is
entered. Somehow, the child, which is basically pam_fp_swipe(), doesn't
respond. It doesn't seem to be a problem if wait doesn't hang (so WNOHANG) but
it needs to be figured out why the child doesn't respond. I have a feeling it
has to do with kdm_greet which is suspended when pam_fp is active. The child
itself does disappear so there is not a real problem this way...

2) In the reclaim loop it is necessary to first deinit pam_fp, using the
pam_fp_libfprint_deinit function, otherwise the device is still in use and it
will give a fp_dev_open() failed error if we need to swipe again after a
mis-swipe. I have changed deinit slightly to prevent double free()'s or
close()'s.


--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

< Previous Next >