Commit 6fabae61 authored by Dr. David Alan Gilbert's avatar Dr. David Alan Gilbert Committed by Samuel Thibault
Browse files

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: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190415121740.9881-1-dgilbert@redhat.com>
Signed-off-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
parent afccfc0c
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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;