From 68353ca6b195e353870ce490d969da3b29771344 Mon Sep 17 00:00:00 2001 From: Andrew Tonner Date: Fri, 20 Jan 2017 02:05:55 -0800 Subject: [PATCH] fix for null deref in slirp soread when the so doesn't have a tcpcb yet --- BasiliskII/src/slirp/socket.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BasiliskII/src/slirp/socket.c b/BasiliskII/src/slirp/socket.c index 42ba31b2..5572a196 100644 --- a/BasiliskII/src/slirp/socket.c +++ b/BasiliskII/src/slirp/socket.c @@ -108,6 +108,10 @@ soread(so) struct sbuf *sb = &so->so_snd; u_int len = sb->sb_datalen - sb->sb_cc; struct iovec iov[2]; + + if (!so->so_tcpcb) { + so->so_tcpcb = tcp_newtcpcb(so); // but how did we get in this state? should we just default mss for it? + } u_int mss = so->so_tcpcb->t_maxseg; DEBUG_CALL("soread");