diff options
Diffstat (limited to 'accel-pppd/extra')
-rw-r--r-- | accel-pppd/extra/ippool.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/accel-pppd/extra/ippool.c b/accel-pppd/extra/ippool.c index 2f4b2e4..8dbf027 100644 --- a/accel-pppd/extra/ippool.c +++ b/accel-pppd/extra/ippool.c @@ -388,13 +388,18 @@ static struct backup_module backup_mod = { #ifdef RADIUS static int parse_attr(struct ap_session *ses, struct rad_attr_t *attr) { + if (ses->ipv4_pool_name) + _free(ses->ipv4_pool_name); + if (attr->len > sizeof("ip:addr-pool=") && memcmp(attr->val.string, "ip:addr-pool=", sizeof("ip:addr-pool=") - 1) == 0) ses->ipv4_pool_name = _strdup(attr->val.string + sizeof("ip:addr-pool=") - 1); else if (!attr->vendor) ses->ipv4_pool_name = _strdup(attr->val.string); - else + else { + ses->ipv4_pool_name = NULL; return -1; - + } + return 0; } |