netlabel: correctly list all the static label mappings
When we have a large number of static label mappings that spill across the netlink message boundary we fail to properly save our state in the netlink_callback struct which causes us to repeat the same listings. This patch fixes this problem by saving the state correctly between calls to the NetLabel static label netlink "dumpit" routines. Signed-off-by: Paul Moore <pmoore@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
260055bb1f
commit
0c1233aba1
|
@ -1250,10 +1250,10 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb,
|
||||||
|
|
||||||
unlabel_staticlist_return:
|
unlabel_staticlist_return:
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
cb->args[0] = skip_bkt;
|
cb->args[0] = iter_bkt;
|
||||||
cb->args[1] = skip_chain;
|
cb->args[1] = iter_chain;
|
||||||
cb->args[2] = skip_addr4;
|
cb->args[2] = iter_addr4;
|
||||||
cb->args[3] = skip_addr6;
|
cb->args[3] = iter_addr6;
|
||||||
return skb->len;
|
return skb->len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1320,8 +1320,8 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
|
||||||
|
|
||||||
unlabel_staticlistdef_return:
|
unlabel_staticlistdef_return:
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
cb->args[0] = skip_addr4;
|
cb->args[0] = iter_addr4;
|
||||||
cb->args[1] = skip_addr6;
|
cb->args[1] = iter_addr6;
|
||||||
return skb->len;
|
return skb->len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue