ranap_msg_factory: sanitize: memcpy instead of unaligned int copy
The sanitize build complains about writing to a uint32_t that is not 4-byte aligned. Instead, write the uint32_t by memcpy. For that, move the common ntohl() to the top and store in a local uint32_t, memcpy() from that in both code paths. Change-Id: Iacdd15421f824dd009448a96355b533dff28258b
This commit is contained in:
parent
d9cb19a8fb
commit
54df0a1095
|
@ -638,6 +638,7 @@ static void new_transp_layer_addr(BIT_STRING_t *out, uint32_t ip, bool use_x213_
|
|||
{
|
||||
uint8_t *buf;
|
||||
unsigned int len;
|
||||
uint32_t ip_h = ntohl(ip);
|
||||
|
||||
if (use_x213_nsap) {
|
||||
len = 160/8;
|
||||
|
@ -645,11 +646,11 @@ static void new_transp_layer_addr(BIT_STRING_t *out, uint32_t ip, bool use_x213_
|
|||
buf[0] = 0x35; /* AFI For IANA ICP */
|
||||
buf[1] = 0x00; /* See A.5.2.1.2.7 of X.213 */
|
||||
buf[2] = 0x01;
|
||||
*(uint32_t *)&buf[3] = ntohl(ip);
|
||||
memcpy(&buf[3], &ip_h, sizeof(ip_h));
|
||||
} else {
|
||||
len = 4;
|
||||
len = sizeof(ip_h);
|
||||
buf = CALLOC(len, sizeof(uint8_t));
|
||||
*(uint32_t *)buf = ntohl(ip);
|
||||
memcpy(buf, &ip_h, sizeof(ip_h));
|
||||
}
|
||||
out->buf = buf;
|
||||
out->size = len;
|
||||
|
|
Loading…
Reference in New Issue