isisd: fix null pointer dereference in send_lsp()

* isisd/isis_pdu.c: (send_lsp) Handle case where there are no LSPs
    on the LSP transmission queue. This can happen if, for instance,
    the queue is cleared because of protocol events before the
    send_lsp thread gets a chance to run.
This commit is contained in:
Avneesh Sachdev 2012-05-06 00:03:07 -07:00 committed by David Lamparter
parent a22ab5a560
commit 0fece074e8

View File

@ -3033,7 +3033,19 @@ send_lsp (struct thread *thread)
return retval;
}
lsp = listgetdata ((node = listhead (circuit->lsp_queue)));
node = listhead (circuit->lsp_queue);
/*
* Handle case where there are no LSPs on the queue. This can
* happen, for instance, if an adjacency goes down before this
* thread gets a chance to run.
*/
if (!node)
{
return retval;
}
lsp = listgetdata(node);
/*
* Do not send if levels do not match