1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 09:56:51 +03:00

dhcp6: fix warnings by clang with -Waddress-of-packed-member

This fixes the following warnings:
```
[194/1521] Compiling C object 'src/libsystemd-network/systemd-network@sta/dhcp6-option.c.o'.
../../git/systemd/src/libsystemd-network/dhcp6-option.c:110:25: warning: taking address of packed member 'id' of class or structure 'ia_na' may result in an unaligned pointer value [-Waddress-of-packed-member]
                iaid = &ia->ia_na.id;
                        ^~~~~~~~~~~~
../../git/systemd/src/libsystemd-network/dhcp6-option.c:115:25: warning: taking address of packed member 'id' of class or structure 'ia_ta' may result in an unaligned pointer value [-Waddress-of-packed-member]
                iaid = &ia->ia_ta.id;
                        ^~~~~~~~~~~~
2 warnings generated.
```
This commit is contained in:
Yu Watanabe 2018-01-17 01:53:00 +09:00
parent b7d16a91d6
commit 976fade6c1

View File

@ -96,9 +96,8 @@ int dhcp6_option_append(uint8_t **buf, size_t *buflen, uint16_t code,
int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia) { int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia) {
uint16_t len; uint16_t len;
be32_t *iaid;
uint8_t *ia_hdr; uint8_t *ia_hdr;
size_t ia_buflen, ia_addrlen = 0; size_t iaid_offset, ia_buflen, ia_addrlen = 0;
DHCP6Address *addr; DHCP6Address *addr;
int r; int r;
@ -107,12 +106,12 @@ int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia) {
switch (ia->type) { switch (ia->type) {
case SD_DHCP6_OPTION_IA_NA: case SD_DHCP6_OPTION_IA_NA:
len = DHCP6_OPTION_IA_NA_LEN; len = DHCP6_OPTION_IA_NA_LEN;
iaid = &ia->ia_na.id; iaid_offset = offsetof(DHCP6IA, ia_na);
break; break;
case SD_DHCP6_OPTION_IA_TA: case SD_DHCP6_OPTION_IA_TA:
len = DHCP6_OPTION_IA_TA_LEN; len = DHCP6_OPTION_IA_TA_LEN;
iaid = &ia->ia_ta.id; iaid_offset = offsetof(DHCP6IA, ia_ta);
break; break;
default: default:
@ -128,7 +127,7 @@ int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia) {
*buf += sizeof(DHCP6Option); *buf += sizeof(DHCP6Option);
*buflen -= sizeof(DHCP6Option); *buflen -= sizeof(DHCP6Option);
memcpy(*buf, iaid, len); memcpy(*buf, (char*) ia + iaid_offset, len);
*buf += len; *buf += len;
*buflen -= len; *buflen -= len;