Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

ioexec.cc File Reference

#include <sys/io.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>

Include dependency graph for ioexec.cc:

Include dependency graph

Go to the source code of this file.

Functions

int main (int argc, char *const *argv)


Function Documentation

int main int    argc,
char *const *    argv
 

Definition at line 11 of file ioexec.cc.

00012 {
00013   int uid, euid;
00014   uid = getuid();
00015   euid = geteuid();
00016   fprintf(stderr,"ioexec : uid=%d\n",uid);
00017   fprintf(stderr,"ioexec : euid=%d\n",euid);
00018   if(argc < 2)
00019     {
00020       fprintf(stderr,"ioexec: <CMD> . . .\n");
00021       exit(-1);
00022     }
00023   char * const * args = NULL;
00024   if(argc > 2)
00025     {
00026       args = argv+1;
00027     }
00028   if(iopl(3))
00029     {
00030       fprintf(stderr,"iopl(3): %s\n",strerror(errno));
00031       exit(-1);
00032     }
00033   if(uid != 0 && euid == 0)
00034     {
00035       setreuid(uid,uid);
00036     }
00037   if(execv(argv[1],args) < 0)
00038     {
00039       fprintf(stderr,"execv(%s, .  . .): %s\n",argv[1],strerror(errno));
00040       exit(-1);
00041     }
00042 }


Generated on Sun Dec 2 15:28:07 2001 for EMC by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001