summaryrefslogtreecommitdiff
path: root/src/ipcpd/udp
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-01-05 00:03:17 +0100
committerSander Vrijders <sander@ouroboros.rocks>2026-01-07 08:37:30 +0100
commit145be13e8c18fcb39476d8f65fed23d82320f22f (patch)
tree9eca55029ebd5c181dfe0d2a886a4dc17aea205e /src/ipcpd/udp
parent512004f0a2a4a4a9b95312505202af8a7872873b (diff)
downloadouroboros-145be13e8c18fcb39476d8f65fed23d82320f22f.tar.gz
ouroboros-145be13e8c18fcb39476d8f65fed23d82320f22f.zip
ipcpd: Initialize mgmt frames in eth/udp
The eth and udp layer management frames/packets contain some unused fields which were not cleared after malloc. In a future update, the unused fields will be removed from the packets, but for now, we can just zero these after malloc. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/udp')
-rw-r--r--src/ipcpd/udp/udp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ipcpd/udp/udp.c b/src/ipcpd/udp/udp.c
index be8069a4..d8b5b4cd 100644
--- a/src/ipcpd/udp/udp.c
+++ b/src/ipcpd/udp/udp.c
@@ -208,6 +208,8 @@ static int udp_ipcp_port_alloc(const struct __SOCKADDR * r_saddr,
if (buf == NULL)
return -1;
+ memset(buf, 0, len + data->len);
+
msg = (struct mgmt_msg *) buf;
msg->eid = hton32(MGMT_EID);
msg->code = FLOW_REQ;
@@ -251,6 +253,8 @@ static int udp_ipcp_port_alloc_resp(const struct __SOCKADDR * r_saddr,
if (msg == NULL)
return -1;
+ memset(msg, 0, sizeof(*msg) + data->len);
+
msg->eid = hton32(MGMT_EID);
msg->code = FLOW_REPLY;
msg->s_eid = hton32(s_eid);