@@ -1516,7 +1516,7 @@ static const char *mag_deleg_ccache_dir(cmd_parms *parms, void *mconfig,
15161516#define CCMODE "mode:"
15171517#define CCUID "uid:"
15181518#define CCGID "gid:"
1519- #define NSS_BUF_LEN 2048 /* just use a uid/gid number if not big enough */
1519+
15201520static const char * mag_deleg_ccache_perms (cmd_parms * parms , void * mconfig ,
15211521 const char * w )
15221522{
@@ -1550,15 +1550,11 @@ static const char *mag_deleg_ccache_perms(cmd_parms *parms, void *mconfig,
15501550 cfg -> deleg_ccache_uid = 0 ;
15511551 }
15521552 } else {
1553- struct passwd pwd , * user ;
1554- char buf [NSS_BUF_LEN ];
1555- int ret = getpwnam_r (p , & pwd , buf , NSS_BUF_LEN , & user );
1556- if ((ret != 0 ) || user != & pwd ) {
1553+ int ret = mag_get_user_uid (p , & cfg -> deleg_ccache_uid );
1554+ if (ret != 0 ) {
15571555 ap_log_error (APLOG_MARK , APLOG_ERR , 0 , parms -> server ,
1558- "Invalid GssapiDelegCcachePerms uid value [%s]" ,
1559- p );
1560- } else {
1561- cfg -> deleg_ccache_uid = user -> pw_uid ;
1556+ "Invalid GssapiDelegCcachePerms uid value [%s](%s)" ,
1557+ p , strerror (ret ));
15621558 }
15631559 }
15641560 } else if (strncmp (w , CCGID , sizeof (CCGID ) - 1 ) == 0 ) {
@@ -1575,15 +1571,11 @@ static const char *mag_deleg_ccache_perms(cmd_parms *parms, void *mconfig,
15751571 cfg -> deleg_ccache_gid = 0 ;
15761572 }
15771573 } else {
1578- struct group grp , * group ;
1579- char buf [NSS_BUF_LEN ];
1580- int ret = getgrnam_r (p , & grp , buf , NSS_BUF_LEN , & group );
1581- if ((ret != 0 ) || group != & grp ) {
1574+ int ret = mag_get_group_gid (p , & cfg -> deleg_ccache_gid );
1575+ if (ret != 0 ) {
15821576 ap_log_error (APLOG_MARK , APLOG_ERR , 0 , parms -> server ,
1583- "Invalid GssapiDelegCcachePerms gid value [%s]" ,
1584- p );
1585- } else {
1586- cfg -> deleg_ccache_gid = group -> gr_gid ;
1577+ "Invalid GssapiDelegCcachePerms gid value [%s](%s)" ,
1578+ p , strerror (ret ));
15871579 }
15881580 }
15891581 } else {
0 commit comments