Revision 3acccfc6 slirp/tcp_input.c

b/slirp/tcp_input.c
136 136
		i = q->ti_seq + q->ti_len - ti->ti_seq;
137 137
		if (i > 0) {
138 138
			if (i >= ti->ti_len) {
139
				m_freem(m);
139
				m_free(m);
140 140
				/*
141 141
				 * Try to present any queued data
142 142
				 * at the left window edge to the user.
......
170 170
		q = tcpiphdr_next(q);
171 171
		m = tcpiphdr_prev(q)->ti_mbuf;
172 172
		remque(tcpiphdr2qlink(tcpiphdr_prev(q)));
173
		m_freem(m);
173
		m_free(m);
174 174
	}
175 175

  
176 176
	/*
......
197 197
		m = ti->ti_mbuf;
198 198
		ti = tcpiphdr_next(ti);
199 199
		if (so->so_state & SS_FCANTSENDMORE)
200
			m_freem(m);
200
			m_free(m);
201 201
		else {
202 202
			if (so->so_emu) {
203 203
				if (tcp_emu(so,m)) sbappend(so, m);
......
451 451
				acked = ti->ti_ack - tp->snd_una;
452 452
				sbdrop(&so->so_snd, acked);
453 453
				tp->snd_una = ti->ti_ack;
454
				m_freem(m);
454
				m_free(m);
455 455

  
456 456
				/*
457 457
				 * If all outstanding data are acked, stop
......
1260 1260
	 */
1261 1261
	if (tiflags & TH_RST)
1262 1262
		goto drop;
1263
	m_freem(m);
1263
	m_free(m);
1264 1264
	tp->t_flags |= TF_ACKNOW;
1265 1265
	(void) tcp_output(tp);
1266 1266
	return;

Also available in: Unified diff