diff options
author | Peter Wu <peter@lekensteyn.nl> | 2014-11-17 22:33:32 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2014-11-18 19:47:40 +0100 |
commit | b3e5143f5a56beee63529fd25b44522ae282e226 (patch) | |
tree | 582a4e003df0461303411350afd9e23b35b558a5 | |
parent | 5eead9ecf671c486523fffe20cee6dc3888e446c (diff) | |
download | upower-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.c | 6 |
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 */ |