diff options
author | mbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 07:17:05 +0000 |
---|---|---|
committer | mbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 07:17:05 +0000 |
commit | 19ab143cb20daa0da297cce45668629dbed29afa (patch) | |
tree | 6237045cd469523a89b558d26eaadc157518d979 /net | |
parent | 2960d47c4f2ba14de7d709e6ba47be8b9dc273f2 (diff) | |
download | chromium_src-19ab143cb20daa0da297cce45668629dbed29afa.zip chromium_src-19ab143cb20daa0da297cce45668629dbed29afa.tar.gz chromium_src-19ab143cb20daa0da297cce45668629dbed29afa.tar.bz2 |
Strip canonical name from the list of addresses being appended.
Append is only used for tests, so this is non-critical code.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6626077
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77609 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/base/address_list.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/net/base/address_list.cc b/net/base/address_list.cc index d2f1974..83df606 100644 --- a/net/base/address_list.cc +++ b/net/base/address_list.cc @@ -178,13 +178,22 @@ void AddressList::Append(const struct addrinfo* head) { } else { new_head = data_->head; } - // Find the end of current linked list and append new data there. struct addrinfo* copy_ptr = new_head; while (copy_ptr->ai_next) copy_ptr = copy_ptr->ai_next; - DCHECK(!head->ai_canonname); copy_ptr->ai_next = CreateCopyOfAddrinfo(head, true); + + // Only the head of the list should have a canonname. Strip any + // canonical name in the appended data. + copy_ptr = copy_ptr->ai_next; + while (copy_ptr) { + if (copy_ptr->ai_canonname) { + free(copy_ptr->ai_canonname); + copy_ptr->ai_canonname = NULL; + } + copy_ptr = copy_ptr->ai_next; + } } void AddressList::SetPort(int port) { |