Changeset 164 in openpam


Ignore:
Timestamp:
Jun 30, 2002, 11:11:38 PM (13 years ago)
Author:
des
Message:

Add the PAM_REPOSITORY item (from Solaris 9).

Sponsored by: DARPA, NAI Labs

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/security/pam_constants.h

    r161 r164  
    3232 * SUCH DAMAGE.
    3333 *
    34  * $P4: //depot/projects/openpam/include/security/pam_constants.h#16 $
     34 * $P4: //depot/projects/openpam/include/security/pam_constants.h#17 $
    3535 */
    3636
     
    123123        PAM_AUTHTOK_PROMPT              =  10,          /* OpenPAM extension */
    124124        PAM_OLDAUTHTOK_PROMPT           =  11,          /* OpenPAM extension */
     125        PAM_REPOSITORY                  =  12,
    125126        PAM_NUM_ITEMS                                   /* OpenPAM extension */
    126127};
  • trunk/lib/pam_get_item.c

    r157 r164  
    3232 * SUCH DAMAGE.
    3333 *
    34  * $P4: //depot/projects/openpam/lib/pam_get_item.c#12 $
     34 * $P4: //depot/projects/openpam/lib/pam_get_item.c#13 $
    3535 */
    3636
     
    6868        case PAM_AUTHTOK_PROMPT:
    6969        case PAM_OLDAUTHTOK_PROMPT:
     70        case PAM_REPOSITORY:
    7071                *item = pamh->item[item_type];
    7172                return (PAM_SUCCESS);
  • trunk/lib/pam_set_item.c

    r157 r164  
    3232 * SUCH DAMAGE.
    3333 *
    34  * $P4: //depot/projects/openpam/lib/pam_set_item.c#14 $
     34 * $P4: //depot/projects/openpam/lib/pam_set_item.c#15 $
    3535 */
    3636
     
    5757{
    5858        void **slot, *tmp;
    59         size_t size;
     59        size_t nsize, osize;
    6060
    6161        if (pamh == NULL)
     
    6363
    6464        slot = &pamh->item[item_type];
    65         tmp = NULL;
    6665        switch (item_type) {
    6766        case PAM_SERVICE:
     
    7574        case PAM_AUTHTOK_PROMPT:
    7675        case PAM_OLDAUTHTOK_PROMPT:
     76                if (item != NULL)
     77                        nsize = strlen(item) + 1;
    7778                if (*slot != NULL)
    78                         size = strlen(*slot) + 1;
    79                 if (item != NULL)
    80                         if ((tmp = strdup(item)) == NULL)
    81                                 return (PAM_BUF_ERR);
     79                        osize = strlen(*slot) + 1;
     80                break;
     81        case PAM_REPOSITORY:
     82                osize = nsize = sizeof(struct pam_repository);
    8283                break;
    8384        case PAM_CONV:
    84                 size = sizeof(struct pam_conv);
    85                 if (item != NULL) {
    86                         if ((tmp = malloc(size)) == NULL)
    87                                 return (PAM_BUF_ERR);
    88                         memcpy(tmp, item, sizeof(struct pam_conv));
    89                 }
     85                osize = nsize = sizeof(struct pam_conv);
    9086                break;
    9187        default:
     
    9389        }
    9490        if (*slot != NULL) {
    95                 memset(*slot, 0xd0, size);
     91                memset(*slot, 0xd0, osize);
    9692                free(*slot);
     93        }
     94        if (item != NULL) {
     95                if ((tmp = malloc(nsize)) == NULL)
     96                        return (PAM_BUF_ERR);
     97                memcpy(tmp, item, nsize);
     98        } else {
     99                tmp = NULL;
    97100        }
    98101        *slot = tmp;
Note: See TracChangeset for help on using the changeset viewer.