aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/attributes/mem_pool.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-08-13 13:54:28 +0200
committerTobias Brunner <tobias@strongswan.org>2012-08-13 13:54:28 +0200
commit3a917ac77f357309eb983fd134fe525c19088250 (patch)
treefe90eacda7af00752c73e77075bf3a77ea76d291 /src/libhydra/attributes/mem_pool.c
parent305d98b7806aadfecf5d4ab08e66d212b68f9af1 (diff)
downloadstrongswan-3a917ac77f357309eb983fd134fe525c19088250.tar.bz2
strongswan-3a917ac77f357309eb983fd134fe525c19088250.tar.xz
Validate netmask in mem_pool_create
Diffstat (limited to 'src/libhydra/attributes/mem_pool.c')
-rw-r--r--src/libhydra/attributes/mem_pool.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libhydra/attributes/mem_pool.c b/src/libhydra/attributes/mem_pool.c
index 8af97dc78..f55b3a7d1 100644
--- a/src/libhydra/attributes/mem_pool.c
+++ b/src/libhydra/attributes/mem_pool.c
@@ -480,6 +480,7 @@ mem_pool_t *mem_pool_create(char *name, host_t *base, int bits)
if (base)
{
addr_bits = base->get_family(base) == AF_INET ? 32 : 128;
+ bits = max(0, min(bits, base->get_family(base) == AF_INET ? 32 : 128));
/* net bits -> host bits */
bits = addr_bits - bits;
if (bits > POOL_LIMIT)