[PATCH] Fix an issue where bird may accidently close a socket

Kenth Eriksson Kenth.Eriksson at infinera.com
Mon May 27 17:29:26 CEST 2019


On Mon, 2019-05-27 at 17:12 +0200, Ondrej Zajicek wrote:
> CAUTION: This email originated from outside of the organization. Do
> not click links or open attachments unless you recognize the sender
> and know the content is safe.
> 
> 
> On Mon, May 27, 2019 at 02:28:52PM +0200, Kenth Eriksson wrote:
> > Datagram sockets may return 0 and stream sockets can return 0
> > if the requested number of bytes to read is 0.
> 
> Hi
> 
> You mean that if count arg to read() is 0?
> 
> How that may happen?
> 
We have a client remote controlling bird using a socket that did get
get POLLHUP, maybe due to that bird closed the socket. 

Don't think checking for 0 is enough, from man page;  

"When a stream socket peer has performed an orderly shutdown, the
return value will be 0 (the traditional "end-of-file" return).

Datagram sockets in various domains (e.g., the UNIX and Internet
domains) permit zero-length datagrams.  When such a datagram is
received, the return value is 0.

The value 0 may also be returned if the requested number of bytes to
receive from a stream socket was 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