Patchwork [for-1.1] libqtest: Fix socket_accept() to pass address_len

login
register
mail settings
Submitter Andreas Färber
Date May 27, 2012, 10:53 p.m.
Message ID <1338159200-7502-1-git-send-email-andreas.faerber@web.de>
Download mbox | patch
Permalink /patch/161567/
State New
Headers show

Comments

Andreas Färber - May 27, 2012, 10:53 p.m.
accept() expects address_len to point to the length of the sockaddr on
input. Initialize it accordingly.

Resolves an assertion due to EFAULT on illumos.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
---
 tests/libqtest.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Andreas Färber - June 11, 2012, 12:22 p.m.
Am 28.05.2012 00:53, schrieb Andreas Färber:
> accept() expects address_len to point to the length of the sockaddr on
> input. Initialize it accordingly.
> 
> Resolves an assertion due to EFAULT on illumos.
> 
> Signed-off-by: Andreas Färber <andreas.faerber@web.de>

Ping? Verifiable by looking at the Linux man page.

/-F

> ---
>  tests/libqtest.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/tests/libqtest.c b/tests/libqtest.c
> index 6d333ef..1d73fd1 100644
> --- a/tests/libqtest.c
> +++ b/tests/libqtest.c
> @@ -74,6 +74,7 @@ static int socket_accept(int sock)
>      socklen_t addrlen;
>      int ret;
>  
> +    addrlen = sizeof(addr);
>      do {
>          ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
>      } while (ret == -1 && errno == EINTR);
Stefan Hajnoczi - June 12, 2012, 9:52 a.m.
On Mon, May 28, 2012 at 12:53:20AM +0200, Andreas Färber wrote:
> accept() expects address_len to point to the length of the sockaddr on
> input. Initialize it accordingly.
> 
> Resolves an assertion due to EFAULT on illumos.
> 
> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
> ---
>  tests/libqtest.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)

Thanks, applied to the trivial patches tree:
https://github.com/stefanha/qemu/commits/trivial-patches

Stefan

Patch

diff --git a/tests/libqtest.c b/tests/libqtest.c
index 6d333ef..1d73fd1 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -74,6 +74,7 @@  static int socket_accept(int sock)
     socklen_t addrlen;
     int ret;
 
+    addrlen = sizeof(addr);
     do {
         ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
     } while (ret == -1 && errno == EINTR);