"dig" crashes when interrupted while waiting for a TCP connection
To reproduce, fire up a dig
query that will not connect over TCP
before it times out, e.g.:
dig @192.0.2.1 isc.org. A +time=10 +vc
and then hit CTRL+C:
dighost.c:3232: REQUIRE((__builtin_expect(!!(((query)) != ((void *)0)), 1) && __builtin_expect(!!(((const isc__magic_t *)((query)))->magic == ((('D') << 24 | ('i') << 16 | ('g') << 8 | ('q')))), 1))) failed, back trace
Looks like arg
(which gets cast to dig_query_t *query
) passed to
tcp_connected()
is broken in this case.
See #2287 (closed) for the UDP counterpart of this problem.