Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05d0eae7 authored by Zhizhou Tian's avatar Zhizhou Tian Committed by Pablo Neira Ayuso
Browse files

netfilter: xt_hashlimit: alloc hashtable with right size



struct xt_byteslimit_htable used hlist_head, but memory allocation is
done through sizeof(struct list_head).

Signed-off-by: default avatarZhizhou Tian <zhizhou.tian@gmail.com>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 74585d4f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ static int htable_create(struct net *net, struct hashlimit_cfg3 *cfg,
		size = cfg->size;
	} else {
		size = (totalram_pages << PAGE_SHIFT) / 16384 /
		       sizeof(struct list_head);
		       sizeof(struct hlist_head);
		if (totalram_pages > 1024 * 1024 * 1024 / PAGE_SIZE)
			size = 8192;
		if (size < 16)
@@ -287,7 +287,7 @@ static int htable_create(struct net *net, struct hashlimit_cfg3 *cfg,
	}
	/* FIXME: don't use vmalloc() here or anywhere else -HW */
	hinfo = vmalloc(sizeof(struct xt_hashlimit_htable) +
	                sizeof(struct list_head) * size);
	                sizeof(struct hlist_head) * size);
	if (hinfo == NULL)
		return -ENOMEM;
	*out_hinfo = hinfo;