|
|
1.1 ! root 1: /* configuration */ ! 2: #define READMAIL "printmail" ! 3: ! 4: /* import */ ! 5: extern void readmail(); ! 6: extern void sendmail(); ! 7: extern void setnotify(); ! 8: extern char *upaspath(); ! 9: extern char *basename(); ! 10: ! 11: main(ac, av) ! 12: int ac; ! 13: char *av[]; ! 14: { ! 15: int i; ! 16: ! 17: /* skip flags */ ! 18: for (i = 1; i < ac; i++) { ! 19: if (av[i][0] == '-') { ! 20: switch (av[i][1]) { ! 21: case 'n': ! 22: setnotify(); ! 23: exit(0); ! 24: case 'f': ! 25: i++; ! 26: break; ! 27: case 'N': ! 28: sendmail(ac, av); ! 29: exit(0); ! 30: } ! 31: } else { ! 32: sendmail(ac, av); ! 33: exit(0); ! 34: } ! 35: } ! 36: ! 37: if (strcmp(basename(av[0]), "rmail") != 0) { ! 38: (void)setgid(getgid()); ! 39: (void)setuid(getuid()); ! 40: execv(upaspath(READMAIL), av); ! 41: } ! 42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.