+2037. [func] When unlinking the first or last element in a list
+ check that the list head points to the element to
+ be unlinked. [RT #15959]
+
2036. [bug] 'rndc recursing' could cause trigger a REQUIRE.
[RT #16075]
INSIST(LINKED(elt, link));\
if ((elt)->link.next != NULL) \
(elt)->link.next->link.prev = (elt)->link.prev; \
- else \
+ else { \
+ INSIST((list).tail == (elt)); \
(list).tail = (elt)->link.prev; \
+ } \
if ((elt)->link.prev != NULL) \
(elt)->link.prev->link.next = (elt)->link.next; \
- else \
+ else { \
+ INSIST((list).head == (elt)); \
(list).head = (elt)->link.next; \
+ } \
INIT_LINK_TYPE(elt, link, type); \
} while (0)
#define UNLINK(list, elt, link) \