am 9c298f82: am cc451785: Fix incorrectly sized buffer.

* commit '9c298f820a8d6b2a925dbcfdd54a10528fa87aca':
  Fix incorrectly sized buffer.
This commit is contained in:
Erik Kline 2015-07-28 10:45:54 +00:00 committed by Android Git Automerger
commit 2baec4e919
1 changed files with 4 additions and 4 deletions

View File

@ -463,19 +463,19 @@ bool NetlinkEvent::parseNdUserOptMessage(const struct nlmsghdr *nh) {
// Construct "SERVERS=<comma-separated string of DNS addresses>".
static const char kServerTag[] = "SERVERS=";
static const int kTagLength = strlen(kServerTag);
static const size_t kTagLength = strlen(kServerTag);
// Reserve sufficient space for an IPv6 link-local address: all but the
// last address are followed by ','; the last is followed by '\0'.
static const int kMaxSingleAddressLength =
static const size_t kMaxSingleAddressLength =
INET6_ADDRSTRLEN + strlen("%") + IFNAMSIZ + strlen(",");
const int bufsize = kTagLength + numaddrs * (INET6_ADDRSTRLEN + 1);
const size_t bufsize = kTagLength + numaddrs * kMaxSingleAddressLength;
char *buf = (char *) malloc(bufsize);
if (!buf) {
SLOGE("RDNSS option: out of memory\n");
return false;
}
strcpy(buf, kServerTag);
int pos = kTagLength;
size_t pos = kTagLength;
struct in6_addr *addrs = (struct in6_addr *) (rndss_opt + 1);
for (int i = 0; i < numaddrs; i++) {