mirror of
https://github.com/Lekensteyn/ltunify.git
synced 2025-12-08 17:53:23 +00:00
ltunify: fix minor alignment warning with the receiver-info command
Caught by UndefinedBehaviorSanitizer (UBSan):
ltunify.c:785:32: runtime error: load of misaligned address
0x7ffc0e4c38a5 for type 'uint32_t' (aka 'unsigned int'), which
requires 4 byte alignment
This commit is contained in:
14
ltunify.c
14
ltunify.c
@@ -778,11 +778,10 @@ bool get_receiver_info(int fd, struct receiver_info *rinfo) {
|
||||
params[0] = 0x03; // undocumented
|
||||
if (get_long_register(fd, DEVICE_RECEIVER, REG_PAIRING_INFO, params, &msg)) {
|
||||
struct msg_receiver_info *info = (struct msg_receiver_info *) &msg.msg_long.str;
|
||||
uint32_t *serial_numberp;
|
||||
uint32_t serial_number;
|
||||
|
||||
serial_numberp = (uint32_t *) &info->serial_number;
|
||||
|
||||
rinfo->serial_number = ntohl(*serial_numberp);
|
||||
memcpy(&serial_number, &info->serial_number, sizeof(serial_number));
|
||||
rinfo->serial_number = ntohl(serial_number);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -810,12 +809,11 @@ bool get_device_ext_pair_info(int fd, u8 device_index) {
|
||||
params[0] = 0x30 | (device_index - 1); // 0x30..0x3F Unifying Device extended pairing info
|
||||
if (get_long_register(fd, DEVICE_RECEIVER, REG_PAIRING_INFO, params, &msg)) {
|
||||
struct msg_dev_ext_pair_info *info;
|
||||
uint32_t *serial_numberp;
|
||||
uint32_t serial_number;
|
||||
|
||||
info = (struct msg_dev_ext_pair_info *) &msg.msg_long.str;
|
||||
serial_numberp = (uint32_t *) &info->serial_number;
|
||||
|
||||
dev->serial_number = ntohl(*serial_numberp);
|
||||
memcpy(&serial_number, &info->serial_number, sizeof(serial_number));
|
||||
dev->serial_number = ntohl(serial_number);
|
||||
dev->power_switch_location = info->usability_info & 0x0F;
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user