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