On 07/03/13 13:40, Lawrence Stewart wrote: > Author: lstewart > Date: Wed Jul 3 03:40:06 2013 > New Revision: 252533 > URL: http://svnweb.freebsd.org/changeset/base/252533 > > Log:
MFC r251984: > When a previous call to sbsndptr() leaves sb->sb_sndptroff at the start of > an > mbuf that was fully consumed by the previous call, the mbuf ptr returned by > the > current call ends up being the previous mbuf in the sb chain to the one that > contains the data we want. > > This does not cause any observable issues because the mbuf copy routines > happily > walk the mbuf chain to get to the data at the moff offset, which in this > case > means they effectively skip over the mbuf returned by sbsndptr(). > > We can't adjust sb->sb_sndptr during the previous call for this case > because the > next mbuf in the chain may not exist yet. We therefore need to detect the > condition and make the adjustment during the current call. > > Fix by detecting the special case of moff being at the start of the next > mbuf in > the chain and adjust the required accounting variables accordingly. > > Reviewed by: andre _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"