| Summary: | xdm dumps core when using PAM | ||||||
|---|---|---|---|---|---|---|---|
| Product: | xorg | Reporter: | Bjoern A. Zeeb <bzeeb+patch> | ||||
| Component: | App/xdm | Assignee: | Xorg Project Team <xorg-team> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
| Severity: | major | ||||||
| Priority: | medium | CC: | bzeeb+patch | ||||
| Version: | git | ||||||
| Hardware: | All | ||||||
| OS: | FreeBSD | ||||||
| Whiteboard: | |||||||
| i915 platform: | i915 features: | ||||||
| Attachments: | 
            
  | 
      ||||||
| 
 
        
          Description
        
        
          Bjoern A. Zeeb
        
        
        
        
          2007-04-04 07:23:12 UTC
        
       
    Created attachment 9475 [details] [review] workaround applied locally to ignore further pam callbacks I'm also not sure it's the best solution, but it does seem to be an improvement to clear the pointer to the login widget when it's destroyed, and to ensure it's not null before using it in the conversation. I've updated your suggested fix a bit to do that, and will push to git master: commit 5fd44c17ddd18635646d37f8afca1f3e699553bd Author: Alan Coopersmith <alan.coopersmith@sun.com> Date: Tue Mar 16 16:33:48 2010 -0700 Reject PAM conversation calls after login dialog is closed Based on patch suggested by Bjoern A. Zeeb <bzeeb+patch@zabbadoz.net> to fix http://bugs.freedesktop.org/show_bug.cgi?id=10522 Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> diff --git a/greeter/greet.c b/greeter/greet.c index 1afe2f1..bd23ad3 100644 --- a/greeter/greet.c +++ b/greeter/greet.c @@ -342,6 +342,7 @@ CloseGreet (struct display *d) XSetAccessControl (dpy, DisableAccess); } XtDestroyWidget (toplevel); + login = NULL; /* child of toplevel, which we just destroyed */ ClearCloseOnFork (XConnectionNumber (dpy)); XCloseDisplay (dpy); Debug ("Greet connection closed\n"); @@ -707,6 +708,11 @@ static int pamconv(int num_msg, m = (struct pam_message *)*msg; r = *response; + if (login == NULL) { + status = PAM_CONV_ERR; + goto pam_error; + } + for (i = 0; i < num_msg; i++ , m++ , r++) { char *username; int promptId = 0; Thanks for providing the patch and sorry for taking so long to process.  | 
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.