diff defaults/suid-wrapper.c @ 7:ab4011ea1463

using C wrapper instead of perl wrapper.
author Robert McIntyre <rlm@mit.edu>
date Tue, 08 Jan 2013 18:10:15 +0000
parents
children
line wrap: on
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/defaults/suid-wrapper.c	Tue Jan 08 18:10:15 2013 +0000
     1.3 @@ -0,0 +1,12 @@
     1.4 +#include <unistd.h>
     1.5 +#include <errno.h>
     1.6 +
     1.7 +main( int argc, char ** argv, char ** envp )
     1.8 +{
     1.9 +              if( setgid(getegid()) ) perror( "setgid" );
    1.10 +              if( setuid(geteuid()) ) perror( "setuid" );
    1.11 +              envp = 0; /* blocks IFS attack on non-bash shells */
    1.12 +              system( "/usr/bin/hg", argv, envp );
    1.13 +              perror( argv[0] );
    1.14 +              return errno;
    1.15 +}