diff options
| author | Denys Fedoryshchenko <denys.f@collabora.com> | 2025-12-13 17:25:13 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-13 17:25:13 +0200 |
| commit | 0a5ac7f881103367daa8cf5d70cc55fd8f952fdb (patch) | |
| tree | a58d000e0f80924ec1e23bf4a5979f892fe4b432 | |
| parent | 2e13b0ccfb3b87955ec1cb141435575d87a09570 (diff) | |
| parent | 6fbb4a900c17c28ecf2f6d0b620cfffe5bdd6b39 (diff) | |
| download | accel-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.c | 6 |
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) |
