Andrew, Sorry for the delay in the response. #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_stack.so service=system-auth auth required /lib/security/pam_nologin.so account required /lib/security/pam_stack.so service=system-auth password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth session optional /lib/security/pam_console.so [forbeskm@radii ~]$ rpm -qva | grep pam pam-0.75-32 pam_krb5-1.55-1 pam-devel-0.75-32 pam_smb-1.1.6-2 [forbeskm@radii ~]$ Mike On Sat, 3 Aug 2002, Andrew Morgan wrote: > what does your /etc/pam.d/login file look like? > what version of libpam do you have? > > Thanks > > Andrew > > Forbes Mike wrote: > > > > I am experiencing a rather large memory leaks when using pam and the krb5 > > perl mod from RedHat. > > > > I am using this via the radius server radiator and am working around it > > at the moment by using fork. I would like to get a fix for the leak. Any > > ideas on where to go for help on this?? > > > > Thanks, > > > > Mike Forbes > > > > Output from yamd is also included. > > > > I have attached a simple program that demonstrates the problem. If you > > edit it for a valid username and password, compile it with: > > > > gcc -g -o pam pam.c -lpam > > > > it will grow without bounds > > > > Yamd shows that there is a major memory loss (2 blocks of 8192 bytes) deep > > inside the PAM library for each iteration: > > > > > WARNING: Memory leak > > > Address 0x4062d000, size 8192 > > > Allocated by realloc at > > > BEGIN TRACEBACK > > > ./pam(__libc_realloc+0x31)[0x4207afa1] > > > [0x404ebf60] > > > [0x404ed172] > > > [0x404e95c5] > > > /lib/libpam.so.0[0x40038b52] > > > /lib/libpam.so.0(_pam_dispatch+0x1b0)[0x40038e80] > > > [0x4024aaec] > > > [0x40249ccd] > > > /lib/libpam.so.0[0x40038b52] > > > /lib/libpam.so.0(_pam_dispatch+0x1b0)[0x40038e80] > > > /lib/libpam.so.0(pam_authenticate+0x6b)[0x4003a60f] > > > ./pam(pam_start+0x252)[0x80487b6] > > > ./pam(__libc_start_main+0x95)[0x42017499] > > > ./pam(pam_start+0x4d)[0x80485b1] > > > END TRACEBACK > > > Realloced from NULL > > > > > > > #include <security/pam_appl.h> > > > > char* username = "mikem"; > > char* password = "mycorrectpassword"; > > char* service = "login"; > > > > int conv(int num_msg, const struct pam_message **msg, > > struct pam_response **resp, void *appdata_ptr) > > { > > int i; > > > > struct pam_response *reply; > > reply = (struct pam_response *)malloc(num_msg * sizeof(struct > > pam_response)); > > for (i = 0; i < num_msg; i++) > > { > > // printf("its %d, %s\n", (*msg)[i].msg_style, (*msg)[i].msg); > > reply[i].resp_retcode = 0; > > reply[i].resp = (char *)strdup(password); > > } > > *resp = reply; > > return 0; > > } > > > > main() > > { > > int result; > > pam_handle_t * pamh; > > struct pam_conv pam_conv; > > int i = 0; > > pam_conv.conv = &conv; > > while (i++ < 1000000) > > { > > result = pam_start(service, username, &pam_conv, &pamh); > > if (result == PAM_SUCCESS) > > { > > result = pam_authenticate(pamh, 0); > > //printf("pam_auth result %d\n", result); > > pam_end(pamh, 0); > > } > > } > > } > > > > _______________________________________________ > > > > Pam-list@redhat.com > > https://listman.redhat.com/mailman/listinfo/pam-list > > > > _______________________________________________ > > Pam-list@redhat.com > https://listman.redhat.com/mailman/listinfo/pam-list >