diff options
author | andre <andre@FreeBSD.org> | 2006-01-18 18:49:16 +0000 |
---|---|---|
committer | andre <andre@FreeBSD.org> | 2006-01-18 18:49:16 +0000 |
commit | 91e2eb506b00519d997bd5c1d9973cdfa58b888e (patch) | |
tree | ecafb2170ca2d1bab1084ee1674a9b15c778c3e4 /sys | |
parent | d629fcd27bed9c1a1eb48d15d1d00ed158d9153e (diff) | |
download | FreeBSD-src-91e2eb506b00519d997bd5c1d9973cdfa58b888e.zip FreeBSD-src-91e2eb506b00519d997bd5c1d9973cdfa58b888e.tar.gz |
In in_delayed_cksum() we can't perform a m_pullup() as it may
change the mbuf pointer and we don't have any way of passing
it back to the callers. Instead just fail silently without
updating the checksum but leaving the mbuf+chain intact.
A search in our GNATS database did not turn up any match for
the existing warning message when this case is encountered.
Found by: Coverity Prevent(tm)
Coverity ID: CID779
Sponsored by: TCP/IP Optimization Fundraise 2005
MFC after: 3 days
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet/ip_output.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 2124c74..ee8ad5f 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1043,9 +1043,9 @@ in_delayed_cksum(struct mbuf *m) * XXX * this shouldn't happen, but if it does, the * correct behavior may be to insert the checksum - * in the existing chain instead of rearranging it. + * in the appropriate next mbuf in the chain. */ - m = m_pullup(m, offset + sizeof(u_short)); + return; } *(u_short *)(m->m_data + offset) = csum; } |