summaryrefslogtreecommitdiff
path: root/accel-pppd/radius
diff options
context:
space:
mode:
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);