[PATCH 3/3] Fix cli socket close due to io buffer full

Ondrej Zajicek santiago at crfreenet.org
Tue Jun 11 17:20:58 CEST 2019


On Tue, Jun 11, 2019 at 12:09:03PM +0200, Kenth Eriksson wrote:
> The pointer rpos in the socket io module is only restored if the rx_hook
> callback returns 1. Previously the cli_rx hook always returned
> 0. Guarantee by design that we return 1 if we are at the end of the
> socket buffer.

I don't think this is correct, as that would reset buffer before its
content is processed by cli_event().

Also, the issue is already fixed by patch 2/3.

> Signed-off-by: Kenth Eriksson <kenth.eriksson at infinera.com>
> ---
>  sysdep/unix/main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c
> index cf5f4a3c..6a6d1d2b 100644
> --- a/sysdep/unix/main.c
> +++ b/sysdep/unix/main.c
> @@ -422,7 +422,7 @@ static int
>  cli_rx(sock *s, uint size UNUSED)
>  {
>    cli_kick(s->data);
> -  return 0;
> +  return s->rbuf+s->rbsize==s->rpos? 1 : 0;
>  }
>  
>  static void
> -- 
> 2.21.0

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."


More information about the Bird-users mailing list