summaryrefslogtreecommitdiff
path: root/accel-pppd/radius
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2021-03-17 11:32:08 +0300
committerDmitry Kozlov <xeb@mail.ru>2021-03-17 11:32:08 +0300
commitbb4f308fc3b0086bb51cc021bf2e8fc4ffb4a7e4 (patch)
treeb036b6147e2540b59be8bc108c8cd71e89e73ecc /accel-pppd/radius
parentb1ad6a35a605e9491b8492b5af525994d189d09e (diff)
parent02ee3cf8abebec16bf9106426e095495144c3d2f (diff)
downloadaccel-ppp-bb4f308fc3b0086bb51cc021bf2e8fc4ffb4a7e4.tar.gz
accel-ppp-bb4f308fc3b0086bb51cc021bf2e8fc4ffb4a7e4.zip
Merge branch 'master' of github.com:xebd/accel-ppp
Diffstat (limited to 'accel-pppd/radius')
-rw-r--r--accel-pppd/radius/radius.c7
-rw-r--r--accel-pppd/radius/serv.c5
2 files changed, 9 insertions, 3 deletions
diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c
index fd64091..139b8b8 100644
--- a/accel-pppd/radius/radius.c
+++ b/accel-pppd/radius/radius.c
@@ -684,7 +684,6 @@ static void ses_finished(struct ap_session *ses)
{
struct radius_pd_t *rpd = find_pd(ses);
struct ipv6db_addr_t *a;
- struct framed_route *fr = rpd->fr;
struct framed_ip6_route *fr6;
if (!rpd) {
@@ -692,6 +691,8 @@ static void ses_finished(struct ap_session *ses)
abort();
}
+ struct framed_route *fr = rpd->fr;
+
pthread_rwlock_wrlock(&sessions_lock);
pthread_mutex_lock(&rpd->lock);
list_del(&rpd->entry);
@@ -1040,6 +1041,10 @@ static void radius_init(void)
{
const char *dict = NULL;
struct conf_sect_t *s = conf_get_section("radius");
+
+ if (!s)
+ _exit(EXIT_FAILURE);
+
struct conf_option_t *opt1;
rpd_pool = mempool_create(sizeof(struct radius_pd_t));
diff --git a/accel-pppd/radius/serv.c b/accel-pppd/radius/serv.c
index d27d04f..65af74d 100644
--- a/accel-pppd/radius/serv.c
+++ b/accel-pppd/radius/serv.c
@@ -758,6 +758,8 @@ static int parse_server2(const char *_opt, struct rad_server_t *s)
goto out;
ptr2 = strchr(ptr1 + 1, ',');
+ if (!ptr2)
+ goto out;
*ptr1 = 0;
@@ -826,8 +828,7 @@ static int parse_server2(const char *_opt, struct rad_server_t *s)
else
s->backup = 0;
- if (ptr2)
- *ptr2 = 0;
+ *ptr2 = 0;
s->secret = _strdup(ptr1 + 1);