summaryrefslogtreecommitdiff
path: root/accel-pppd
diff options
context:
space:
mode:
authorDenys Fedoryshchenko <denys.f@collabora.com>2026-07-19 00:54:57 +0300
committerGitHub <noreply@github.com>2026-07-19 00:54:57 +0300
commit9e01deafb63f81dc67102602faa5ce6f3734773f (patch)
tree8fd9eebb868e54761860fe22ef31852981b283a8 /accel-pppd
parent425f68fc0ac8df24d43d97cf1348f148b83ac89d (diff)
parentd8273ebd5232f038a4775fe2ad55203a8be11a57 (diff)
downloadaccel-ppp-9e01deafb63f81dc67102602faa5ce6f3734773f.tar.gz
accel-ppp-9e01deafb63f81dc67102602faa5ce6f3734773f.zip
Merge pull request #332 from nuclearcat/ipv6-dnssl-fix
ipv6: fix NULL deref and OOB read in dnssl/AFTR-Name config parsing
Diffstat (limited to 'accel-pppd')
-rw-r--r--accel-pppd/ipv6/dhcpv6.c12
-rw-r--r--accel-pppd/ipv6/nd.c6
2 files changed, 12 insertions, 6 deletions
diff --git a/accel-pppd/ipv6/dhcpv6.c b/accel-pppd/ipv6/dhcpv6.c
index 92a6ed6c..b284df5f 100644
--- a/accel-pppd/ipv6/dhcpv6.c
+++ b/accel-pppd/ipv6/dhcpv6.c
@@ -870,13 +870,15 @@ static int dhcpv6_read(struct triton_md_handler_t *h)
static void add_aftr_gw(const char *val)
{
- int n = strlen(val);
+ int n;
const char *ptr;
uint8_t *buf;
- if (!val)
+ if (!val || !*val)
return;
+ n = strlen(val);
+
if (val[n - 1] == '.')
n++;
else
@@ -917,13 +919,15 @@ static void add_aftr_gw(const char *val)
static void add_dnssl(const char *val)
{
- int n = strlen(val);
+ int n;
const char *ptr;
uint8_t *buf;
- if (!val)
+ if (!val || !*val)
return;
+ n = strlen(val);
+
if (val[n - 1] == '.')
n++;
else
diff --git a/accel-pppd/ipv6/nd.c b/accel-pppd/ipv6/nd.c
index 297e4d63..6dd00ee2 100644
--- a/accel-pppd/ipv6/nd.c
+++ b/accel-pppd/ipv6/nd.c
@@ -412,13 +412,15 @@ static void ev_ses_finishing(struct ap_session *ses)
static void add_dnssl(const char *val)
{
- int n = strlen(val);
+ int n;
const char *ptr;
uint8_t *buf;
- if (!val)
+ if (!val || !*val)
return;
+ n = strlen(val);
+
if (val[n - 1] == '.')
n++;
else