Getting a network trace from a single application(jonasdn.blogspot.com) |
Getting a network trace from a single application(jonasdn.blogspot.com) |
One thing: the "Handle exceptions of setuid() and setgid()" commit message caught my eye, so I took a look:
if (setuid(uid) < 0) {
fprintf(stderr, "Unable to set process user ID");
}
You probably want to add an exit() here, as well as to the preceeding setgid() call. Also, the earlier initgroups() can fail, too, so its result should also be checked. #define APP_TIMEOUT (2000000L) /* 2 seconds */
...
usleep(APP_TIMEOUT);
usleep limits its argument's range to values from 0 to 1000000 and is considered obsolete. Please use nanosleep instead.