As not all are of equal size.
dhcpcd_linkoverflow(ctx);
return;
}
- if (errno != ENOTSUP)
- logerr(__func__);
+ logerr(__func__);
}
}
return 0;
if (if_copyrt(ctx, &rt, rtm) == -1)
- return -1;
+ return errno == ENOTSUP ? 0 : -1;
#ifdef INET6
/*
return -1;
if (len == 0)
return 0;
- if (len < rtm.hdr.rtm_msglen) {
+ if ((size_t)len < offsetof(struct rt_msghdr, rtm_index) ||
+ len < rtm.hdr.rtm_msglen)
+ {
errno = EINVAL;
return -1;
}
return -1;
if (len == 0)
return 0;
- if (len < rtm.hdr.rtm_msglen) {
+ if ((size_t)len < offsetof(struct rt_msghdr, rtm_index) ||
+ len < rtm.hdr.rtm_msglen)
+ {
errno = EINVAL;
return -1;
}