summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Fedoryshchenko <denys.f@collabora.com>2025-12-13 17:25:13 +0200
committerGitHub <noreply@github.com>2025-12-13 17:25:13 +0200
commit0a5ac7f881103367daa8cf5d70cc55fd8f952fdb (patch)
treea58d000e0f80924ec1e23bf4a5979f892fe4b432
parent2e13b0ccfb3b87955ec1cb141435575d87a09570 (diff)
parent6fbb4a900c17c28ecf2f6d0b620cfffe5bdd6b39 (diff)
downloadaccel-ppp-0a5ac7f881103367daa8cf5d70cc55fd8f952fdb.tar.gz
accel-ppp-0a5ac7f881103367daa8cf5d70cc55fd8f952fdb.zip
Merge pull request #277 from nuclearcat/minor-rfc2516-compliance
pppoe: Fix RFC2516 non-compilance in PADI tags parsing
-rw-r--r--accel-pppd/ctrl/pppoe/pppoe.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/accel-pppd/ctrl/pppoe/pppoe.c b/accel-pppd/ctrl/pppoe/pppoe.c
index dd70ad00..c481b7ec 100644
--- a/accel-pppd/ctrl/pppoe/pppoe.c
+++ b/accel-pppd/ctrl/pppoe/pppoe.c
@@ -1015,7 +1015,7 @@ static void pppoe_recv_PADI(struct pppoe_serv_t *serv, uint8_t *pack, int size)
return;
switch (ntohs(tag->tag_type)) {
case TAG_END_OF_LIST:
- break;
+ goto tags_done;
case TAG_SERVICE_NAME:
if (tag->tag_len == 0 && conf_accept_blank_service) {
service_match = 1;
@@ -1046,6 +1046,7 @@ static void pppoe_recv_PADI(struct pppoe_serv_t *serv, uint8_t *pack, int size)
break;
}
}
+tags_done:
if (conf_verbose)
print_packet(serv->ifname, "recv", pack);
@@ -1157,7 +1158,7 @@ static void pppoe_recv_PADR(struct pppoe_serv_t *serv, uint8_t *pack, int size)
}
switch (ntohs(tag->tag_type)) {
case TAG_END_OF_LIST:
- break;
+ goto padr_tags_done;
case TAG_SERVICE_NAME:
service_name_tag = tag;
if (tag->tag_len == 0)
@@ -1199,6 +1200,7 @@ static void pppoe_recv_PADR(struct pppoe_serv_t *serv, uint8_t *pack, int size)
break;
}
}
+padr_tags_done:
if (!ac_cookie_tag) {
if (conf_verbose)