Index: qemu/net/tap.c @@ -287,12 +287,13 @@ static void tap_cleanup(VLANClientState qemu_purge_queued_packets(nc); - if (s->down_script[0]) - launch_script(s->down_script, s->down_script_arg, s->fd); - tap_read_poll(s, 0); tap_write_poll(s, 0); close(s->fd); + + if (s->down_script[0]) + launch_script(s->down_script, s->down_script_arg, s->fd); + s->fd = -1; }