[NETFILTER]: Fix oops in conntrack event cache
ip_ct_refresh_acct() can be called without a valid "skb" pointer. This used to work, since ct_add_counters() deals with that fact. However, the recently-added event cache doesn't handle this at all. This patch is a quick fix that is supposed to be replaced soon by a cleaner solution during the pending redesign of the event cache. Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
136e92bbec
commit
a8f39143ac
|
@ -1143,7 +1143,10 @@ void ip_ct_refresh_acct(struct ip_conntrack *ct,
|
||||||
if (del_timer(&ct->timeout)) {
|
if (del_timer(&ct->timeout)) {
|
||||||
ct->timeout.expires = jiffies + extra_jiffies;
|
ct->timeout.expires = jiffies + extra_jiffies;
|
||||||
add_timer(&ct->timeout);
|
add_timer(&ct->timeout);
|
||||||
ip_conntrack_event_cache(IPCT_REFRESH, skb);
|
/* FIXME: We loose some REFRESH events if this function
|
||||||
|
* is called without an skb. I'll fix this later -HW */
|
||||||
|
if (skb)
|
||||||
|
ip_conntrack_event_cache(IPCT_REFRESH, skb);
|
||||||
}
|
}
|
||||||
ct_add_counters(ct, ctinfo, skb);
|
ct_add_counters(ct, ctinfo, skb);
|
||||||
write_unlock_bh(&ip_conntrack_lock);
|
write_unlock_bh(&ip_conntrack_lock);
|
||||||
|
|
Loading…
Reference in New Issue