summaryrefslogtreecommitdiff
path: root/src/sdpd-request.c
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@tieto.com>2012-11-23 11:09:14 +0100
committerJohan Hedberg <johan.hedberg@intel.com>2012-12-11 07:41:08 +0200
commit8bd201c1bbb5c1b73d2f36a9e3a1d50536a6b216 (patch)
treeee3a47f9ce3bf735eb55c4e6461e8e8ef6317b67 /src/sdpd-request.c
parentf4ececd75a1aeb3303ff88421a40699442a0edb2 (diff)
downloadbluez-8bd201c1bbb5c1b73d2f36a9e3a1d50536a6b216.tar.gz
sdpd-request: Fix build errors due to unaligned memory access
This fix following compilation errors on ARM. CC src/bluetoothd-sdpd-request.o src/sdpd-request.c: In function ‘extract_des’: src/sdpd-request.c:186:17: error: cast increases required alignment of target type [-Werror=cast-align] src/sdpd-request.c:186:17: error: cast increases required alignment of target type [-Werror=cast-align] src/sdpd-request.c:210:17: error: cast increases required alignment of target type [-Werror=cast-align] src/sdpd-request.c:210:17: error: cast increases required alignment of target type [-Werror=cast-align] cc1: all warnings being treated as errors make[1]: *** [src/bluetoothd-sdpd-request.o] Error 1
Diffstat (limited to 'src/sdpd-request.c')
-rw-r--r--src/sdpd-request.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/sdpd-request.c b/src/sdpd-request.c
index 2af743e7d..a79efc79a 100644
--- a/src/sdpd-request.c
+++ b/src/sdpd-request.c
@@ -182,8 +182,12 @@ static int extract_des(uint8_t *buf, int len, sdp_list_t **svcReqSeq, uint8_t *p
aid->uint16 = bt_get_be16(p);
pElem = (char *) aid;
} else {
+ uint16_t tmp;
+
+ memcpy(&tmp, p, sizeof(tmp));
+
pElem = malloc(sizeof(uint16_t));
- bt_put_be16(bt_get_unaligned((uint16_t *)p), pElem);
+ bt_put_be16(tmp, pElem);
}
p += sizeof(uint16_t);
seqlen += sizeof(uint16_t);
@@ -206,8 +210,12 @@ static int extract_des(uint8_t *buf, int len, sdp_list_t **svcReqSeq, uint8_t *p
pElem = (char *) aid;
} else {
+ uint32_t tmp;
+
+ memcpy(&tmp, p, sizeof(tmp));
+
pElem = malloc(sizeof(uint32_t));
- bt_put_be32(bt_get_unaligned((uint32_t *)p), pElem);
+ bt_put_be32(tmp, pElem);
}
p += sizeof(uint32_t);
seqlen += sizeof(uint32_t);