Theo de Raadt <[email protected]> wrote:

> Should our kernel play a different kind of game here?

Correction, lets return the intended errno.  Anyways the purpose here
is to not permit the deep dive into the kernel.

pledge_sockopt() cannot translate one optname to another optname,
that's not what I'm suggesting.

Index: /sys/kern/kern_pledge.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_pledge.c,v
diff -u -p -u -r1.365 kern_pledge.c
--- /sys/kern/kern_pledge.c     4 Sep 2026 02:38:28 -0000       1.365
+++ /sys/kern/kern_pledge.c     8 Sep 2026 22:53:36 -0000
@@ -1447,6 +1460,8 @@ pledge_sockopt(struct proc *p, int set, 
                        switch (optname) {
                        case IP_TOS:
                                return (0);
+                       case IPV6_TCLASS:
+                               return (ENOPROTOOPT);
                        }
                }
                break;
@@ -1455,6 +1470,8 @@ pledge_sockopt(struct proc *p, int set, 
                        switch (optname) {
                        case IPV6_TCLASS:
                                return (0);
+                       case IPV6_TCLASS:
+                               return (ENOPROTOOPT);
                        }
                }
                break;

Reply via email to