Date: Tue, 11 Mar 2003 13:42:09 -0500 From: Don Bowman <don@sandvine.com> To: "'freebsd-stable@freebsd.org'" <freebsd-stable@freebsd.org> Subject: missing splx(s) in if_ethersubcr.c Message-ID: <FE045D4D9F7AED4CBFF1B3B813C8533701B35D42@mail.sandvine.com>
next in thread | raw e-mail | index | archive | help
It seems there is a missing trio of 'splx' in error cases in if_ethersubr.c for 4.7 RELEASE. (pr submitted as well). Index: /src/sys/net/if_ethersubr.c =================================================================== RCS file: /usr/cvs/src/sys/net/if_ethersubr.c,v retrieving revision 1.70.2.30 diff -c -5 -r1.70.2.30 if_ethersubr.c *** /src/sys/net/if_ethersubr.c 2 Jan 2003 18:07:51 -0000 1.70.2.30 --- /src/sys/net/if_ethersubr.c 11 Mar 2003 16:55:08 -0000 *************** *** 412,434 **** save_eh = *eh; m_adj(m, ETHER_HDR_LEN); if (ether_ipfw_chk(&m, ifp, &rule, eh, 0) == 0) { if (m) { m_freem(m); return ENOBUFS; /* pkt dropped */ ! } else return 0; /* consumed e.g. in a pipe */ } /* packet was ok, restore the ethernet header */ if ( (void *)(eh + 1) == (void *)m->m_data) { m->m_data -= ETHER_HDR_LEN ; m->m_len += ETHER_HDR_LEN ; m->m_pkthdr.len += ETHER_HDR_LEN ; } else { M_PREPEND(m, ETHER_HDR_LEN, M_DONTWAIT); if (m == NULL) /* nope... */ ! return ENOBUFS; bcopy(&save_eh, mtod(m, struct ether_header *), ETHER_HDR_LEN); } } --- 412,440 ---- save_eh = *eh; m_adj(m, ETHER_HDR_LEN); if (ether_ipfw_chk(&m, ifp, &rule, eh, 0) == 0) { if (m) { m_freem(m); + splx(s); return ENOBUFS; /* pkt dropped */ ! } else { ! splx(s); return 0; /* consumed e.g. in a pipe */ + } } /* packet was ok, restore the ethernet header */ if ( (void *)(eh + 1) == (void *)m->m_data) { m->m_data -= ETHER_HDR_LEN ; m->m_len += ETHER_HDR_LEN ; m->m_pkthdr.len += ETHER_HDR_LEN ; } else { M_PREPEND(m, ETHER_HDR_LEN, M_DONTWAIT); if (m == NULL) /* nope... */ ! { ! splx(s); ! return ENOBUFS; ! } bcopy(&save_eh, mtod(m, struct ether_header *), ETHER_HDR_LEN); } } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE045D4D9F7AED4CBFF1B3B813C8533701B35D42>