+/* SPDX-License-Identifier: LGPL-2.1+ */
/***
This file is part of systemd.
assert(n);
if (n->raw_size < sizeof(struct ether_header)) {
- log_lldp("Recieved truncated packet, ignoring.");
+ log_lldp("Received truncated packet, ignoring.");
return -EBADMSG;
}
log_lldp("End marker TLV not zero-sized, ignoring datagram.");
return -EBADMSG;
}
- if (left != 0) {
- log_lldp("Trailing garbage in datagram, ignoring datagram.");
- return -EBADMSG;
- }
+
+ /* Note that after processing the SD_LLDP_TYPE_END left could still be > 0
+ * as the message may contain padding (see IEEE 802.1AB-2016, sec. 8.5.12) */
goto end_marker;
if (r < 0)
return r;
- *ret = n;
- n = NULL;
+ *ret = TAKE_PTR(n);
return r;
}