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>
index | next in thread | raw e-mail
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
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE045D4D9F7AED4CBFF1B3B813C8533701B35D42>
