On 12/15/2015 06:00 AM, Chris Lamb wrote:
acpid fails to build from source in unstable/amd64: libnetlink.c: In function 'addattr_l': libnetlink.c:497:54: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] if ((int)NLMSG_ALIGN(n->nlmsg_len) + RTA_ALIGN(len) > maxlen) { ^ libnetlink.c: In function 'rta_addattr32': libnetlink.c:527:36: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] if (RTA_ALIGN(rta->rta_len) + len > maxlen) { ^ libnetlink.c: In function 'rta_addattr_l': libnetlink.c:545:47: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] if (RTA_ALIGN(rta->rta_len) + RTA_ALIGN(len) > maxlen) { ^
As it is, it's building fine for me. I assume I have an older rtnetlink.h.
The common thread here is RTA_ALIGN(). My guess is that it's now returning an unsigned. Adding an (int) to each one should fix it. E.g.:
if ((int)RTA_ALIGN(rta->rta_len) + len > maxlen) { Give it a try and let me know. If it works, I'll get it in upstream. Ted.