BUG/MEDIUM: cli: fix "show fd" crash when dumping closed FDs

I misplaced the "if (!fdt.owner)" test so it can occasionally crash
when dumping an fd that's already been closed but still appears in
the table. It's not critical since this was not pushed into any
release nor backported though.
This commit is contained in:
Willy Tarreau 2017-10-04 20:24:54 +02:00
parent 00149121b7
commit 017af2477e

View File

@ -812,6 +812,9 @@ static int cli_io_handler_show_fd(struct appctx *appctx)
fdt = fdtab[fd];
if (!fdt.owner)
goto skip; // closed
if (fdt.iocb == conn_fd_handler) {
conn_flags = ((struct connection *)fdt.owner)->flags;
li = objt_listener(((struct connection *)fdt.owner)->target);
@ -821,9 +824,6 @@ static int cli_io_handler_show_fd(struct appctx *appctx)
else if (fdt.iocb == listener_accept)
li = fdt.owner;
if (!fdt.owner)
goto skip; // closed
chunk_printf(&trash,
" %5d : st=0x%02x(R:%c%c%c W:%c%c%c) ev=0x%02x(%c%c%c%c%c) [%c%c%c%c] cache=%u owner=%p iocb=%p(%s)",
fd,