svn commit: r271853 - head/sys/net
Gleb Smirnoff
glebius at FreeBSD.org
Fri Sep 19 05:43:39 UTC 2014
Author: glebius
Date: Fri Sep 19 05:43:38 2014
New Revision: 271853
URL: http://svnweb.freebsd.org/changeset/base/271853
Log:
Increase errors, not queue drops, in cases the module is supplied
with a bad packet or if mbuf allocation failes.
Modified:
head/sys/net/if_gre.c
Modified: head/sys/net/if_gre.c
==============================================================================
--- head/sys/net/if_gre.c Fri Sep 19 05:23:47 2014 (r271852)
+++ head/sys/net/if_gre.c Fri Sep 19 05:43:38 2014 (r271853)
@@ -361,7 +361,7 @@ gre_output(struct ifnet *ifp, struct mbu
* be encapsulated.
*/
if (ip->ip_off & htons(IP_MF | IP_OFFMASK)) {
- _IF_DROP(&ifp->if_snd);
+ ifp->if_oerrors++;
m_freem(m);
error = EINVAL; /* is there better errno? */
goto end;
@@ -390,7 +390,7 @@ gre_output(struct ifnet *ifp, struct mbu
if ((m->m_data - msiz) < m->m_pktdat) {
m0 = m_gethdr(M_NOWAIT, MT_DATA);
if (m0 == NULL) {
- _IF_DROP(&ifp->if_snd);
+ ifp->if_oerrors++;
m_freem(m);
error = ENOBUFS;
goto end;
@@ -415,7 +415,7 @@ gre_output(struct ifnet *ifp, struct mbu
memcpy((caddr_t)(ip + 1), &mob_h, (unsigned)msiz);
ip->ip_len = htons(ntohs(ip->ip_len) + msiz);
} else { /* AF_INET */
- _IF_DROP(&ifp->if_snd);
+ ifp->if_oerrors++;
m_freem(m);
error = EINVAL;
goto end;
@@ -440,7 +440,7 @@ gre_output(struct ifnet *ifp, struct mbu
break;
#endif
default:
- _IF_DROP(&ifp->if_snd);
+ ifp->if_oerrors++;
m_freem(m);
error = EAFNOSUPPORT;
goto end;
@@ -452,14 +452,14 @@ gre_output(struct ifnet *ifp, struct mbu
hdrlen += sizeof(uint32_t);
M_PREPEND(m, hdrlen, M_NOWAIT);
} else {
- _IF_DROP(&ifp->if_snd);
+ ifp->if_oerrors++;
m_freem(m);
error = EINVAL;
goto end;
}
if (m == NULL) { /* mbuf allocation failed */
- _IF_DROP(&ifp->if_snd);
+ ifp->if_oerrors++;
error = ENOBUFS;
goto end;
}
More information about the svn-src-all
mailing list