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 <dgilbert@redhat.com> Message-Id: <20190415121740.9881-1-dgilbert@redhat.com> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
This commit is contained in:
parent
afccfc0c4c
commit
6fabae61a9
@ -171,6 +171,7 @@ int
|
|||||||
soread(struct socket *so)
|
soread(struct socket *so)
|
||||||
{
|
{
|
||||||
int n, nn;
|
int n, nn;
|
||||||
|
size_t buf_len;
|
||||||
struct sbuf *sb = &so->so_snd;
|
struct sbuf *sb = &so->so_snd;
|
||||||
struct iovec iov[2];
|
struct iovec iov[2];
|
||||||
|
|
||||||
@ -181,7 +182,8 @@ soread(struct socket *so)
|
|||||||
* No need to check if there's enough room to read.
|
* No need to check if there's enough room to read.
|
||||||
* soread wouldn't have been called if there weren't
|
* 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);
|
nn = recv(so->s, iov[0].iov_base, iov[0].iov_len,0);
|
||||||
if (nn <= 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.
|
* No need to check if there's enough room to read.
|
||||||
* soread wouldn't have been called if there weren't
|
* soread wouldn't have been called if there weren't
|
||||||
*/
|
*/
|
||||||
|
assert(size > 0);
|
||||||
if (sopreprbuf(so, iov, &n) < size)
|
if (sopreprbuf(so, iov, &n) < size)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user