On 8/16/24 8:45 AM, Martin Kletzander wrote:
Use convenience macro from libnl3

Actually the NLMSG_PAYLOAD() macro (which I had never used nor heard of before this, but just looked it up in the header files so I could be a know-it-all) is in the basic kernel netlink.h, not in libnl.

which does almost the same thing we
were doing, but also aligns the payload length.

"pads out the payload length to a multiple of NLMSG_ALIGNTO (4) bytes" to be more long-winded :-)


Signed-off-by: Martin Kletzander <[email protected]>
---
  src/util/virarptable.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/util/virarptable.c b/src/util/virarptable.c
index 299dddd664ab..d8e41c5a8668 100644
--- a/src/util/virarptable.c
+++ b/src/util/virarptable.c
@@ -102,8 +102,7 @@ virArpTableGet(void)
              return table;
VIR_WARNINGS_NO_CAST_ALIGN
-        parse_rtattr(tb, NDA_MAX, NDA_RTA(r),
-                     nh->nlmsg_len - NLMSG_LENGTH(sizeof(*r)));
+        parse_rtattr(tb, NDA_MAX, NDA_RTA(r), NLMSG_PAYLOAD(nh, sizeof(*r)));
          VIR_WARNINGS_RESET
if (tb[NDA_DST] == NULL || tb[NDA_LLADDR] == NULL)

Reviewed-by: Laine Stump <[email protected]>

Reply via email to