Changeset 164 in openpam


Ignore:
Timestamp:
Jun 30, 2002, 11:11:38 PM (12 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.