diff options
author | ps <ps@FreeBSD.org> | 2001-10-05 07:06:32 +0000 |
---|---|---|
committer | ps <ps@FreeBSD.org> | 2001-10-05 07:06:32 +0000 |
commit | 38383190d52e794a70d2b71ee33fa321e5109e7a (patch) | |
tree | 953170eca78713bb41696224e03ab9f195a51086 /sys/netinet/raw_ip.c | |
parent | 9f7723d2e481ba58d2544017b5a18c2ce93dca5c (diff) | |
download | FreeBSD-src-38383190d52e794a70d2b71ee33fa321e5109e7a.zip FreeBSD-src-38383190d52e794a70d2b71ee33fa321e5109e7a.tar.gz |
Only allow users to see their own socket connections if
kern.ipc.showallsockets is set to 0.
Submitted by: billf (with modifications by me)
Inspired by: Dave McKay (aka pm aka Packet Magnet)
Reviewed by: peter
MFC after: 2 weeks
Diffstat (limited to 'sys/netinet/raw_ip.c')
-rw-r--r-- | sys/netinet/raw_ip.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index 54c30ac..64c836e 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -43,6 +43,7 @@ #include <sys/kernel.h> #include <sys/malloc.h> #include <sys/mbuf.h> +#include <sys/proc.h> #include <sys/protosw.h> #include <sys/socket.h> #include <sys/socketvar.h> @@ -628,8 +629,12 @@ rip_pcblist(SYSCTL_HANDLER_ARGS) s = splnet(); for (inp = LIST_FIRST(ripcbinfo.listhead), i = 0; inp && i < n; inp = LIST_NEXT(inp, inp_list)) { - if (inp->inp_gencnt <= gencnt) + if (inp->inp_gencnt <= gencnt) { + if (!showallsockets && socheckproc(inp->inp_socket, + curthread->td_proc)) + continue; inp_list[i++] = inp; + } } splx(s); n = i; |