From: Avneesh Sachdev Date: Sun, 6 May 2012 07:03:07 +0000 (-0700) Subject: isisd: fix null pointer dereference in send_lsp() X-Git-Tag: frr-2.0-rc1~1769 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=0fece074e8c9e282ae2cecf9a0a79dc6c930cfb1;p=matthieu%2Ffrr.git 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. --- diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c index 7375a3ebf7..ffc67178b4 100644 --- a/isisd/isis_pdu.c +++ b/isisd/isis_pdu.c @@ -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