Listing 3. A Basic Implemenation of pam_sm_setcred
  
PAM_EXTERN int pam_sm_setcred(pam_handle_t * pamh, int flags
               ,int argc, const char **argv)
{
   unsigned int ctrl;
   int retval;
   ctrl =  _set_ctrl(pamh, flags, NULL, argc, argv);
   retval = PAM_SUCCESS;
   printf("recovering return code from auth call");
   pam_get_data(pamh, "unix_setcred_return", (const void **) pretval);
   if(pretval) {
      retval = *pretval;
      free(pretval);
      printf("recovered data indicates that old retval was %d", retval);
   }
   return retval;
}
  
  
  
  
  
  
  
  
  
    Copyright © 1994 - 2018 Linux Journal.  All rights reserved.