Validate netmask in mem_pool_create
authorTobias Brunner <tobias@strongswan.org>
Mon, 13 Aug 2012 11:54:28 +0000 (13:54 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 13 Aug 2012 11:54:28 +0000 (13:54 +0200)
src/libhydra/attributes/mem_pool.c

index 8af97dc..f55b3a7 100644 (file)
@@ -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)