On Thu, Nov 17, 2022 at 06:49:35PM +0000, Richard W.M. Jones wrote: > In the case where the client writes a packet and then closes the > socket, because we receive EPOLLIN|EPOLLRDHUP together we have a > choice of whether to close the socket immediately, or read the packet > and then close the socket. Choose the latter. > > This should improve fuzzing coverage and arguably is a better choice > even for regular use since dropping packets on close is bad. > > See-also: https://archives.passt.top/passt-dev/20221117171805.3746f53a@elisabeth/ > Signed-off-by: Richard W.M. Jones Reviewed-by: David Gibson > --- > tap.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/tap.c b/tap.c > index 9998127..d97af6a 100644 > --- a/tap.c > +++ b/tap.c > @@ -1106,13 +1106,13 @@ void tap_handler(struct ctx *c, int fd, uint32_t events, > return; > } > > - if (events & (EPOLLRDHUP | EPOLLHUP | EPOLLERR)) > - goto reinit; > - > if ((c->mode == MODE_PASST && tap_handler_passt(c, now)) || > (c->mode == MODE_PASTA && tap_handler_pasta(c, now))) > goto reinit; > > + if (events & (EPOLLRDHUP | EPOLLHUP | EPOLLERR)) > + goto reinit; > + > return; > reinit: > if (c->one_off) { -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson