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

Submitted by Andreas Färber on May 27, 2012, 10:53 p.m.

Details

Message ID 1338159200-7502-1-git-send-email-andreas.faerber@web.de
State New
Headers show

Commit Message

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(-)

Comments

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 hide | download patch | download mbox

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);