Commit 2bb53e25 authored by Steffen Klassert's avatar Steffen Klassert

xfrm: check for a vaild skb in xfrm_policy_queue_process

We might dreference a NULL pointer if the hold_queue is empty,
so add a check to avoid this.

Bug was introduced with git commit a0073fe1 ("xfrm: Add a state
resolution packet queue")
Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
parent e7d8f6cb
...@@ -1772,6 +1772,10 @@ static void xfrm_policy_queue_process(unsigned long arg) ...@@ -1772,6 +1772,10 @@ static void xfrm_policy_queue_process(unsigned long arg)
spin_lock(&pq->hold_queue.lock); spin_lock(&pq->hold_queue.lock);
skb = skb_peek(&pq->hold_queue); skb = skb_peek(&pq->hold_queue);
if (!skb) {
spin_unlock(&pq->hold_queue.lock);
goto out;
}
dst = skb_dst(skb); dst = skb_dst(skb);
sk = skb->sk; sk = skb->sk;
xfrm_decode_session(skb, &fl, dst->ops->family); xfrm_decode_session(skb, &fl, dst->ops->family);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment