pledge() currently forbids IP_HDRINCL in setsockopt().

If I allow it in "inet", I can pledge /usr/ports/net/mtr (a traceroute tool)
to "stdio rpath inet dns tty".

Is this safe? Should I require something else than "inet"?

Index: kern_pledge.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_pledge.c,v
retrieving revision 1.192
diff -u -p -r1.192 kern_pledge.c
--- kern_pledge.c       23 Jan 2017 05:49:24 -0000      1.192
+++ kern_pledge.c       11 Mar 2017 08:33:19 -0000
@@ -1414,6 +1414,7 @@ pledge_sockopt(struct proc *p, int set, 
                case IP_PORTRANGE:
                case IP_RECVDSTADDR:
                case IP_RECVDSTPORT:
+               case IP_HDRINCL:
                        return (0);
                case IP_MULTICAST_IF:
                case IP_ADD_MEMBERSHIP:

Reply via email to