xfrm: fix freed block size calculation in xfrm_policy_fini()
authorMichal Kubecek <mkubecek@suse.cz>
Fri, 18 Jan 2013 15:03:48 +0000 (16:03 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 21 Jan 2013 05:50:04 +0000 (06:50 +0100)
commit5b653b2a1c3b5634368fde2df958a1398481e580
tree42b84b0a9cd9413e1335eb8925594ce60e9cae88
parente2f6725917ed525f4111c33c31ab53397b70f9d2
xfrm: fix freed block size calculation in xfrm_policy_fini()

Missing multiplication of block size by sizeof(struct hlist_head)
can cause xfrm_hash_free() to be called with wrong second argument
so that kfree() is called on a block allocated with vzalloc() or
__get_free_pages() or free_pages() is called with wrong order when
a namespace with enough policies is removed.

Bug introduced by commit a35f6c5d, i.e. versions >= 2.6.29 are
affected.

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_policy.c