Changeset 523:0c640b607a7f in roaraudio


Ignore:
Timestamp:
08/16/08 00:26:43 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

it should now be possible to use --setuid/--setgid on non unix sockets

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/roard.c

    r519 r523  
    311311  } 
    312312 
     313  if ( (grp = getgrnam(sock_grp)) == NULL ) { 
     314   ROAR_ERR("Can not get GID for group %s: %s", sock_grp, strerror(errno)); 
     315  } 
     316  if ( sock_user || (setids & R_SETUID) ) { 
     317   if ( (pwd = getpwnam(sock_user)) == NULL ) { 
     318    ROAR_ERR("Can not get UID for user %s: %s", sock_user, strerror(errno)); 
     319   } 
     320  } 
     321 
    313322  if ( *server == '/' ) { 
    314    if ( sock_user ) { 
    315     if ( (pwd = getpwnam(sock_user)) == NULL ) { 
    316      ROAR_ERR("Can not get UID for user %s: %s", sock_user, strerror(errno)); 
    317     } 
    318    } 
    319    if ( (grp = getgrnam(sock_grp)) == NULL ) { 
    320     ROAR_ERR("Can not get GID for group %s: %s", sock_grp, strerror(errno)); 
    321    } else { 
     323   if ( grp ) { 
    322324    if ( pwd ) { 
    323325     chown(server, pwd->pw_uid, grp->gr_gid); 
     
    372374   ROAR_ERR("Can not clear supplementary group IDs: %s", strerror(errno)); 
    373375  } 
    374   if ( setgid(grp->gr_gid) == -1 ) { 
     376  if ( !grp || setgid(grp->gr_gid) == -1 ) { 
    375377   ROAR_ERR("Can not set GroupID: %s", strerror(errno)); 
    376378  } 
Note: See TracChangeset for help on using the changeset viewer.