net: unaligned copying of unsigned long
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 14 Jul 2019 20:02:13 +0000 (22:02 +0200)
committerJoe Hershberger <joe.hershberger@ni.com>
Thu, 18 Jul 2019 21:37:13 +0000 (16:37 -0500)
commitbbfc562719c463ba6e7b03125aedd5720a325d2d
tree6acf98213644a6ea5c732205f3f2318a06d58533
parent69fbf238c194960af383d902e9344a7602423c89
net: unaligned copying of unsigned long

The inline functions net_read_u32() and net_copy_u32() have been created to
copy unaligned u32. But this is not obvious to the compiler. GCC 9.1
introduces a check -Werror=address-of-packed-member which leads to a build
error on Travis CI:

net/bootp.c: In function ‘dhcp_send_request_packet’:
net/bootp.c:1011:27: error: taking address of packed member of
‘struct bootp_hdr’ may result in an unaligned pointer value
[-Werror=address-of-packed-member]
 1011 |  net_copy_u32(&bp->bp_id, &bp_offer->bp_id);

Change the type of the function parameters to void * to avoid the build
error.

Reported-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
include/net.h