From 6fabae61a9393fd2bc703837e464b9c34ec5ef25 Mon Sep 17 00:00:00 2001 From: "Dr. David Alan Gilbert" Date: Mon, 15 Apr 2019 13:17:40 +0100 Subject: slirp: Gcc 9 -O3 fix Gcc 9 needs some convincing that sopreprbuf really is going to fill in iov in the call from soreadbuf, even though the failure case shouldn't happen. Signed-off-by: Dr. David Alan Gilbert Message-Id: <20190415121740.9881-1-dgilbert@redhat.com> Signed-off-by: Samuel Thibault --- slirp/src/socket.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'slirp/src') diff --git a/slirp/src/socket.c b/slirp/src/socket.c index 4a3c935..bb752fd 100644 --- a/slirp/src/socket.c +++ b/slirp/src/socket.c @@ -171,6 +171,7 @@ int soread(struct socket *so) { int n, nn; + size_t buf_len; struct sbuf *sb = &so->so_snd; struct iovec iov[2]; @@ -181,7 +182,8 @@ soread(struct socket *so) * No need to check if there's enough room to read. * soread wouldn't have been called if there weren't */ - sopreprbuf(so, iov, &n); + buf_len = sopreprbuf(so, iov, &n); + assert(buf_len != 0); nn = recv(so->s, iov[0].iov_base, iov[0].iov_len,0); if (nn <= 0) { @@ -257,6 +259,7 @@ int soreadbuf(struct socket *so, const char *buf, int size) * No need to check if there's enough room to read. * soread wouldn't have been called if there weren't */ + assert(size > 0); if (sopreprbuf(so, iov, &n) < size) goto err; -- cgit v1.1