$OpenBSD: patch-ngrep_c,v 1.3 2009/03/30 21:19:02 sthen Exp $ --- ngrep.c.orig Tue Nov 28 13:38:43 2006 +++ ngrep.c Thu Mar 26 22:31:23 2009 @@ -92,7 +92,7 @@ #endif #if USE_PCRE -#include "pcre-5.0/pcre.h" +#include "pcre.h" #else #include "regex-0.12/regex.h" #endif @@ -549,6 +549,10 @@ int main(int argc, char **argv) { link_offset = PPPHDR_SIZE; break; + case DLT_PPP_ETHER: + link_offset = PPPOEHDR_SIZE; + break; + #if HAVE_DLT_LOOP case DLT_LOOP: #endif @@ -1197,6 +1201,14 @@ void drop_privs(void) { perror("attempt to drop privileges failed"); clean_exit(-1); } + if (chroot("/var/empty") == -1) { + perror("attempt to drop privileges failed: chroot failed"); + clean_exit(-1); + } + if (chdir("/") == -1) { + perror("attempt to drop privileges failed: chdir failed"); + clean_exit(-1); + } if (((getgid() != newgid) && (setgid(newgid) == -1)) || ((getegid() != newgid) && (setegid(newgid) == -1)) ||