XrdSecsssID::genID(int) constructs an XrdSecEntity object:

   myID.name = (Secure || XrdOucUtils:: UserName(geteuid(), pBuff, pgSz))
             ? (char *)"nobody"  : pBuff;
   myID.grps = (Secure || XrdOucUtils::GroupName(getegid(), gBuff, pgSz))
             ? (char *)"nogroup" : gBuff;

XrdOucUtils:: UserName returns 0 on success, however XrdOucUtils::GroupName returns the length of the group name. This means on group name of length 0 ( a 'failure') the un-initialized gBuff will be saved in myID.grps. To avoid changing the behavior of XrdOucutils::GroupName solution is:

   myID.name = (Secure || XrdOucUtils:: UserName(geteuid(), pBuff, pgSz))
             ? (char *)"nobody"  : pBuff;
   myID.grps = (Secure || XrdOucUtils::GroupName(getegid(), gBuff, pgSz) == 0)
             ? (char *)"nogroup" : gBuff;


Reply to this email directly or view it on GitHub.



Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1