splx() bug in ip_dummynet?

Don Bowman don at sandvine.com
Thu Jul 24 08:31:57 PDT 2003


From: Don Bowman [mailto:don at sandvine.com]

 ...

I believe this patch will correct the issue.

Index: ip_dummynet.c
===================================================================
RCS file: /usr/cvs/src/sys/netinet/ip_dummynet.c,v
retrieving revision 1.24.2.17.1000.1
retrieving revision 1.24.2.17.1000.2
diff -U3 -r1.24.2.17.1000.1 -r1.24.2.17.1000.2
--- ip_dummynet.c       21 Jun 2003 20:47:59 -0000      1.24.2.17.1000.1
+++ ip_dummynet.c       24 Jul 2003 15:27:59 -0000      1.24.2.17.1000.2
@@ -1571,10 +1571,12 @@
 
 
        if ( x->fs.rq == NULL ) { /* a new pipe */
-           s = alloc_hash(&(x->fs), pfs) ;
-           if (s) {
+           int s1;
+           s1 = alloc_hash(&(x->fs), pfs) ;
+           if (s1) {
                free(x, M_DUMMYNET);
-               return s ;
+               splx(s);
+               return s1 ;
            }
            x->next = b ;
            if (a == NULL)


More information about the freebsd-net mailing list