diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-09-11 19:15:37 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-09-11 19:15:37 +0000 |
commit | f09f4c6aa02ea4012faa8491d629b9c8c3b77c71 (patch) | |
tree | e4f10a011c58422d098a486f61efcccea73c260a /usr.sbin/mrinfo/mrinfo.c | |
parent | 7021cb8f932f18e085425d77aee0302c44bb8da6 (diff) |
revoke privs at start; tested by fenner@parc.xerox.com
Diffstat (limited to 'usr.sbin/mrinfo/mrinfo.c')
-rw-r--r-- | usr.sbin/mrinfo/mrinfo.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.sbin/mrinfo/mrinfo.c b/usr.sbin/mrinfo/mrinfo.c index e8cfc4f091d..692b5250326 100644 --- a/usr.sbin/mrinfo/mrinfo.c +++ b/usr.sbin/mrinfo/mrinfo.c @@ -336,12 +336,16 @@ main(argc, argv) char *host; int curaddr; - setlinebuf(stderr); - if (geteuid() != 0) { fprintf(stderr, "mrinfo: must be root\n"); exit(1); } + + init_igmp(); + setuid(getuid()); + + setlinebuf(stderr); + argv++, argc--; while (argc > 0 && argv[0][0] == '-') { switch (argv[0][1]) { @@ -389,8 +393,6 @@ main(argc, argv) if (debug) fprintf(stderr, "Debug level %u\n", debug); - init_igmp(); - /* Check all addresses; mrouters often have unreachable interfaces */ for (curaddr = 0; hp->h_addr_list[curaddr] != NULL; curaddr++) { memcpy(&target_addr, hp->h_addr_list[curaddr], hp->h_length); |