The branch main has been updated by glebius:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=c17418a0ba6eef8d2070d75844f9ede4ddbc413b

commit c17418a0ba6eef8d2070d75844f9ede4ddbc413b
Author:     Gleb Smirnoff <[email protected]>
AuthorDate: 2022-05-09 17:42:48 +0000
Commit:     Gleb Smirnoff <[email protected]>
CommitDate: 2022-05-09 17:42:48 +0000

    sockets: assert that any protocol with PR_RIGHTS has dom_dispose()
    
    Through the entire history only PF_UNIX has this feature.
    
    Reviewed by:            markj
    Differential revision:  https://reviews.freebsd.org/D35123
---
 sys/kern/uipc_socket.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index f33814efd176..029f7c8387ca 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -1195,8 +1195,10 @@ sofree(struct socket *so)
                so->so_dtor(so);
 
        VNET_SO_ASSERT(so);
-       if (pr->pr_flags & PR_RIGHTS && pr->pr_domain->dom_dispose != NULL)
+       if (pr->pr_flags & PR_RIGHTS) {
+               MPASS(pr->pr_domain->dom_dispose != NULL);
                (*pr->pr_domain->dom_dispose)(so);
+       }
        if (pr->pr_usrreqs->pru_detach != NULL)
                (*pr->pr_usrreqs->pru_detach)(so);
 
@@ -2989,8 +2991,10 @@ sorflush(struct socket *so)
         * any unsafe routines (that rely on locks being initialized) on aso.
         */
        pr = so->so_proto;
-       if (pr->pr_flags & PR_RIGHTS && pr->pr_domain->dom_dispose != NULL)
+       if (pr->pr_flags & PR_RIGHTS) {
+               MPASS(pr->pr_domain->dom_dispose != NULL);
                (*pr->pr_domain->dom_dispose)(&aso);
+       }
        sbrelease_internal(&aso.so_rcv, so);
 }
 

Reply via email to