I ran into this issue too and had reverted to using our version of the
patch to push out the newly rebased code.

Why I didn't attempt to fix this was because work_queue_item_requeue
uses the same set of calls and doesn't seem to have a problem.

I'll give your version a spin and get back with the result today,

Dinesh
On 12/21/2014 04:41 AM, David Lamparter wrote:
> LISTNODE_DETACH doesn't clear out the node, and LISTNODE_ATTACH doesn't
> set ->next (since it assumes a fresh/zeroed listnode).  As a result, the
> new listnode_move_to_tail() created a nice circular list, in turn
> crashing ospfd in ospf_write() later.
>
> Reported-by: Martin Winter <[email protected]>
> Fixes: 6d83113 ("ospfd: Tweak previous iface RR write patch to avoid 
> free/malloc & redundant log")
> Cc: Paul Jakma <[email protected]>
> Signed-off-by: David Lamparter <[email protected]>
> ---
> One more fix...
> ... will push relatively quickly.
>
> -David
> ---
>  lib/linklist.h | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/lib/linklist.h b/lib/linklist.h
> index c8d715e..6209c8b 100644
> --- a/lib/linklist.h
> +++ b/lib/linklist.h
> @@ -113,6 +113,7 @@ extern void list_add_list (struct list *, struct list *);
>  #define LISTNODE_ATTACH(L,N) \
>    do { \
>      (N)->prev = (L)->tail; \
> +    (N)->next = NULL; \
>      if ((L)->head == NULL) \
>        (L)->head = (N); \
>      else \


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to