Changeset 18 in openpam


Ignore:
Timestamp:
Feb 2, 2002, 5:58:58 PM (17 years ago)
Author:
Dag-Erling Smørgrav
Message:

Clear module data.
Clear environment.
Use pam_set_item() rather than free() to clear items so they get
properly clobbered.

Sponsored by: DARPA, NAI Labs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/pam_end.c

    r16 r18  
    5151int
    5252pam_end(pam_handle_t *pamh,
    53         int status __unused)
     53        int status)
    5454{
    5555        pam_chain_t *module;
     56        pam_data_t *dp;
    5657        int i;
    5758
    5859        if (pamh == NULL)
    5960                return (PAM_SYSTEM_ERR);
     61
     62        /* clear module data */
     63        while ((dp = pamh->module_data) != NULL) {
     64                if (dp->cleanup)
     65                        (dp->cleanup)(pamh, dp->data, status);
     66                pamh->module_data = dp->next;
     67                free(dp->name);
     68                free(dp);
     69        }
     70
     71        /* clear environment */
     72        while (pamh->env_count)
     73                free(pamh->env[--pamh->env_count]);
     74        free(pamh->env);
    6075
    6176        /* clear chains */
     
    7388        /* clear items */
    7489        for (i = 0; i < PAM_NUM_ITEMS; ++i)
    75                 free(pamh->item[i]);
     90                pam_set_item(pamh, i, NULL);
    7691
    7792        free(pamh);
Note: See TracChangeset for help on using the changeset viewer.