From bb80344fd00263b88890712152084502ac516cc8 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 6 Jan 2023 16:22:42 +0100 Subject: [PATCH] virNWFilterSnoopLeaseFileLoad: Don't typecast 'ipl.timeout' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use a temporary variable to avoid memory alignment issues on ARM: ../src/nwfilter/nwfilter_dhcpsnoop.c: In function ‘virNWFilterSnoopLeaseFileLoad’: ../src/nwfilter/nwfilter_dhcpsnoop.c:1745:20: error: cast increases required alignment of target type [-Werror=cast-align] 1745 | (unsigned long long *) &ipl.timeout, | Fixes: 0d278aa089bf3a00bf2d6e56d2f01ea4677190a7 Signed-off-by: Peter Krempa Reviewed-by: Martin Kletzander --- src/nwfilter/nwfilter_dhcpsnoop.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c index e604d67b96..20afc1b2d4 100644 --- a/src/nwfilter/nwfilter_dhcpsnoop.c +++ b/src/nwfilter/nwfilter_dhcpsnoop.c @@ -1733,6 +1733,8 @@ virNWFilterSnoopLeaseFileLoad(void) fp = fopen(LEASEFILE, "r"); time(&now); while (fp && fgets(line, sizeof(line), fp)) { + unsigned long long timeout; + if (line[strlen(line)-1] != '\n') { virReportError(VIR_ERR_INTERNAL_ERROR, _("virNWFilterSnoopLeaseFileLoad lease file " @@ -1742,13 +1744,13 @@ virNWFilterSnoopLeaseFileLoad(void) ln++; /* key len 54 = "VMUUID"+'-'+"MAC" */ if (sscanf(line, "%llu %54s %15s %15s", - (unsigned long long *) &ipl.timeout, - ifkey, ipstr, srvstr) < 4) { + &timeout, ifkey, ipstr, srvstr) < 4) { virReportError(VIR_ERR_INTERNAL_ERROR, _("virNWFilterSnoopLeaseFileLoad lease file " "line %d corrupt"), ln); break; } + ipl.timeout = timeout; if (ipl.timeout && ipl.timeout < now) continue; req = virNWFilterSnoopReqGetByIFKey(ifkey);