$NetBSD: patch-aa,v 1.2 2003/09/25 22:12:15 recht Exp $ --- main.c.orig 2003-07-31 12:06:55.000000000 +0200 +++ main.c @@ -166,6 +166,17 @@ int main(int argc, char **argv) char setflags[1024] = {'\0'}; int c, hdr_size; + /* open raw socket */ + sockraw = open_sockraw(); + if (sockraw == -1) { + printf("[main] can't open raw socket\n"); + exit(1); + } + if (getuid() && setuid(getuid()) == -1) { + printf("[main] can't drop privs\n"); + exit(1); + } + if (parse_options(argc, argv) == -1) { printf("hping2: missing host argument\n" "Try `hping2 --help' for more information.\n"); @@ -206,13 +217,6 @@ int main(int argc, char **argv) ifname, ifstraddr, h_if_mtu); } - /* open raw socket */ - sockraw = open_sockraw(); - if (sockraw == -1) { - printf("[main] can't open raw socket\n"); - exit(1); - } - /* set SO_BROADCAST option */ socket_broadcast(sockraw); /* set SO_IPHDRINCL option */