Android源码修改:dhcp兼容性漏洞修复
external\dhcpcd\dhcp.c
L1040:
修改前:
/* Regardless of RFC2132, we should always send a hostname
* upto the first dot (the short hostname) as otherwise
* confuses some DHCP servers when updating DNS.
* The FQDN option should be used if a FQDN is required. */
if (ifo->options & DHCPCD_HOSTNAME && ifo->hostname[0]) {
*p++ = DHO_HOSTNAME;
hp = strchr(ifo->hostname, '.');
if (hp)
len = hp - ifo->hostname;
else
len = strlen(ifo->hostname);
*p++ = len;
memcpy(p, ifo->hostname, len);
p += len;
}
修改后:
/* Regardless of RFC2132, we should always send a hostname
* upto the first dot (the short hostname) as otherwise
* confuses some DHCP servers when updating DNS.
* The FQDN option should be used if a FQDN is required. */
if (ifo->options & DHCPCD_HOSTNAME && ifo->hostname[0]) {
*p++ = DHO_HOSTNAME;
hp = strchr(ifo->hostname, '.');
if (hp)
len = hp - ifo->hostname;
else
len = strlen(ifo->hostname);
if(len > 8)
len = 8;//hostname too long may load dhcp fail on some router
*p++ = len;
memcpy(p, ifo->hostname, len);
p += len;
}

浙公网安备 33010602011771号