monitor: Fix misaligment errors
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 5 May 2023 20:20:25 +0000 (13:20 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 5 Jan 2024 10:41:34 +0000 (16:11 +0530)
This fixes the following errors:

monitor/packet.c:11968:27: runtime error: member access within
misaligned address 0x565448026d55 for type
'const struct monitor_l2cap_hdr', which requires 2 byte alignment
monitor/packet.c:11968:4: runtime error: member access within
misaligned address 0x565448026d55 for type
'const struct monitor_l2cap_hdr', which requires 2 byte alignment

monitor/packet.c

index 99f8e6f..b694fea 100755 (executable)
@@ -11951,7 +11951,7 @@ void packet_system_note(struct timeval *tv, struct ucred *cred,
 struct monitor_l2cap_hdr {
        uint16_t cid;
        uint16_t psm;
-};
+} __attribute__((packed));
 
 static void packet_decode(struct timeval *tv, struct ucred *cred, char dir,
                                uint16_t index, const char *color,
@@ -11970,7 +11970,8 @@ static void packet_decode(struct timeval *tv, struct ucred *cred, char dir,
                                NULL);
 
        /* Discard last byte since it just a filler */
-       l2cap_frame(index, dir == '>', 0, hdr->cid, hdr->psm,
+       l2cap_frame(index, dir == '>', 0,
+                       le16_to_cpu(hdr->cid), le16_to_cpu(hdr->psm),
                        data + sizeof(*hdr), size - (sizeof(*hdr) + 1));
 }