While doing this, I noticed that an mbuf is lost if a setsockopt is done
on a tcp connection that has been reset, and fixed this as well.
From: Mike Karels <karels@BSDI.COM>
SCCS-vsn: sys/netinet/tcp_usrreq.c 8.2
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)tcp_usrreq.c 8.1 (Berkeley) %G%
+ * @(#)tcp_usrreq.c 8.2 (Berkeley) %G%
*/
#include <sys/param.h>
*/
#include <sys/param.h>
inp = sotoinpcb(so);
if (inp == NULL) {
splx(s);
inp = sotoinpcb(so);
if (inp == NULL) {
splx(s);
+ if (op == PRCO_SETOPT && *mp)
+ (void) m_free(*mp);
return (ECONNRESET);
}
if (level != IPPROTO_TCP) {
return (ECONNRESET);
}
if (level != IPPROTO_TCP) {
*mtod(m, int *) = tp->t_maxseg;
break;
default:
*mtod(m, int *) = tp->t_maxseg;
break;
default: