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.

Reply via email to