Index: ip/ipaddress.c =================================================================== --- ip/ipaddress.c.orig +++ ip/ipaddress.c @@ -589,6 +589,12 @@ if (flush) { int round = 0; char flushb[4096-512]; + uid_t uid = getuid(); + + if(uid) { + fprintf(stderr, "Not sufficient rights to flush\n"); + exit(EXIT_FAILURE); + } filter.flushb = flushb; filter.flushp = 0; Index: ip/iproute.c =================================================================== --- ip/iproute.c.orig +++ ip/iproute.c @@ -1153,6 +1153,12 @@ int round = 0; char flushb[4096-512]; time_t start = time(0); + uid_t uid = getuid(); + + if(uid) { + fprintf(stderr, "Not sufficient rights to flush\n"); + exit(EXIT_FAILURE); + } if (filter.tb == -1) { if (do_ipv6 != AF_INET6) {