I found a pointer bug that causes a segfault in pam_krb5-1.0.3:

In pam_krb5_prompter.c the following variables are defined:

    const struct pam_message **conv_arg;
    struct pam_message  *msg, **p;

further down in the file, the following assignment is made:

    conv_arg = (const struct pam_message **)msg;

assigning a (pam_message *) to a (pam_message **). The attached patch 
fixes the problem.

----------------------------------------------------------------------
| Jim Hranicky, Senior SysAdmin                   UF/CISE Department |
| E314D CSE Building                            Phone (352) 392-1499 |
| [EMAIL PROTECTED]                      http://www.cise.ufl.edu/~jfh |
----------------------------------------------------------------------
*** ../pam_krb5-1.0.3/pam_krb5_prompter.c       Mon Sep 24 10:58:15 2001
--- pam_krb5_prompter.c Wed Mar  5 09:42:27 2003
***************
*** 115,121 ****
  #if defined(PAM_LINUX_CODEBASE)
      conv_arg = (const struct pam_message **)p;
  #else
!     conv_arg = (const struct pam_message **)msg;
  #endif
      pamret = conv->conv(pam_prompts, conv_arg, &resp, conv->appdata_ptr);
      if (pamret != 0) {
--- 115,121 ----
  #if defined(PAM_LINUX_CODEBASE)
      conv_arg = (const struct pam_message **)p;
  #else
!     conv_arg = (const struct pam_message **)&msg;
  #endif
      pamret = conv->conv(pam_prompts, conv_arg, &resp, conv->appdata_ptr);
      if (pamret != 0) {
________________________________________________
Kerberos mailing list           [EMAIL PROTECTED]
https://mailman.mit.edu/mailman/listinfo/kerberos

Reply via email to