From d45765dd8c646f6492a180f4aadf278752e1558d Mon Sep 17 00:00:00 2001 From: Hemenguelbindi Date: Wed, 12 Aug 2026 17:56:27 +0500 Subject: [PATCH] fix: bug String corruption when querying individual TLV identifier with lldptool --- lldp/rx.c | 8 +++++--- lldp_8021qaz.c | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lldp/rx.c b/lldp/rx.c index 0ff2008..5dea1a7 100644 --- a/lldp/rx.c +++ b/lldp/rx.c @@ -413,14 +413,16 @@ void rxProcessFrame(struct port *port, struct lldp_agent *agent) continue; err = np->ops->lldp_mod_rchange(port, agent, tlv); - - if (!err) + + if (err == TLV_OK){ tlv_stored = true; + break; + } else if (err == TLV_ERR) { frame_error++; free_unpkd_tlv(tlv); goto out; - } + } } if (!tlv_stored) { diff --git a/lldp_8021qaz.c b/lldp_8021qaz.c index bf910af..d204971 100644 --- a/lldp_8021qaz.c +++ b/lldp_8021qaz.c @@ -1983,7 +1983,7 @@ int ieee8021qaz_rchange(struct port *port, struct lldp_agent *agent, l2_packet_get_remote_addr(port->l2, qaz_tlvs->remote_mac); if (unpack_ieee8021qaz_tlvs(port, agent, tlv)) - return TLV_OK; + return TLV_OK; } if (tlv->type == TYPE_0) {