summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2014-11-17 22:33:32 +0100
committerBastien Nocera <hadess@hadess.net>2014-11-18 19:47:40 +0100
commitb3e5143f5a56beee63529fd25b44522ae282e226 (patch)
tree582a4e003df0461303411350afd9e23b35b558a5
parent5eead9ecf671c486523fffe20cee6dc3888e446c (diff)
downloadupower-b3e5143f5a56beee63529fd25b44522ae282e226.tar.gz
hidpp-device: avoid unaligned memory access
Fixes a -Wcast-align warning and a -fsanitize=undefined error. https://bugs.freedesktop.org/show_bug.cgi?id=71079
-rw-r--r--src/linux/hidpp-device.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/linux/hidpp-device.c b/src/linux/hidpp-device.c
index 19a0ae6..106f55a 100644
--- a/src/linux/hidpp-device.c
+++ b/src/linux/hidpp-device.c
@@ -818,7 +818,7 @@ hidpp_device_refresh (HidppDevice *device,
/* get serial number, this can be queried from the receiver */
if ((refresh_flags & HIDPP_REFRESH_FLAGS_SERIAL) > 0) {
- guint32 *serialp;
+ guint32 serial;
msg.type = HIDPP_MSG_TYPE_SHORT;
msg.device_idx = HIDPP_RECEIVER_ADDRESS;
@@ -834,8 +834,8 @@ hidpp_device_refresh (HidppDevice *device,
if (!ret)
goto out;
- serialp = (guint32 *) &msg.l.params[1];
- priv->serial = g_strdup_printf ("%08X", g_ntohl(*serialp));
+ memcpy (&serial, msg.l.params + 1, sizeof(serial));
+ priv->serial = g_strdup_printf ("%08X", g_ntohl(serial));
}
/* get battery status */