summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Fedoryshchenko <denys.f@collabora.com>2026-06-23 17:30:07 +0300
committerDenys Fedoryshchenko <denys.f@collabora.com>2026-06-23 17:36:34 +0300
commit4deb615d7bd7134dd15686b9ea4239f73e20009e (patch)
treea6ac6a23cb102a0961514b6972bbd943ffabeb13
parent8b781b94500f8d4144c9d5e8559605cbe69545dd (diff)
downloadaccel-ppp-4deb615d7bd7134dd15686b9ea4239f73e20009e.tar.gz
accel-ppp-4deb615d7bd7134dd15686b9ea4239f73e20009e.zip
pppoe: handle missing service-name tag
-rw-r--r--accel-pppd/ctrl/pppoe/pppoe.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/accel-pppd/ctrl/pppoe/pppoe.c b/accel-pppd/ctrl/pppoe/pppoe.c
index 93824af5..f733770c 100644
--- a/accel-pppd/ctrl/pppoe/pppoe.c
+++ b/accel-pppd/ctrl/pppoe/pppoe.c
@@ -298,9 +298,15 @@ static void pppoe_conn_ctx_switch(struct triton_context_t *ctx, void *arg)
static struct pppoe_conn_t *allocate_channel(struct pppoe_serv_t *serv, const uint8_t *addr, const struct pppoe_tag *host_uniq, const struct pppoe_tag *relay_sid, const struct pppoe_tag *service_name, const struct pppoe_tag *tr101, const uint8_t *cookie, uint16_t ppp_max_payload)
{
+ struct pppoe_tag empty_service_name = {
+ .tag_type = htons(TAG_SERVICE_NAME),
+ };
struct pppoe_conn_t *conn;
unsigned long *old_sid_ptr;
+ if (!service_name)
+ service_name = &empty_service_name;
+
conn = mempool_alloc(conn_pool);
if (!conn) {
log_error("pppoe: out of memory\n");