diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2011-07-26 16:18:52 -0700 |
---|---|---|
committer | Robert Greenwalt <rgreenwalt@google.com> | 2011-07-26 16:18:52 -0700 |
commit | 777901424fa1100817f80a8cff8330b4b11d5af7 (patch) | |
tree | 6a633e74cd7648f1258d3d3613305c67a6ac744a /libc/netbsd/resolv | |
parent | a4fdd8ae4c1f5b3c2668900a49a9042364f15bd3 (diff) | |
parent | 9363d91218c7ed727c36ffaf82ff28d7755375ae (diff) | |
download | android_bionic-777901424fa1100817f80a8cff8330b4b11d5af7.tar.gz android_bionic-777901424fa1100817f80a8cff8330b4b11d5af7.tar.bz2 android_bionic-777901424fa1100817f80a8cff8330b4b11d5af7.zip |
resolved conflicts for merge of 9363d912 to honeycomb-plus-aosp
Change-Id: I555f5c10da9770feacdbece9fd77729d6151bfba
Diffstat (limited to 'libc/netbsd/resolv')
-rw-r--r-- | libc/netbsd/resolv/res_cache.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/libc/netbsd/resolv/res_cache.c b/libc/netbsd/resolv/res_cache.c index efce7dc98..e3ceb5aed 100644 --- a/libc/netbsd/resolv/res_cache.c +++ b/libc/netbsd/resolv/res_cache.c @@ -1627,6 +1627,7 @@ __get_res_cache(void) while (cache_info) { if (cache_info->ifname[0] != '\0') { ifname = cache_info->ifname; + break; } cache_info = cache_info->next; @@ -1684,6 +1685,7 @@ _resolv_cache_reset(unsigned generation) while (cache_info) { if (cache_info->ifname[0] != '\0') { ifname = cache_info->ifname; + break; } cache_info = cache_info->next; @@ -1691,17 +1693,14 @@ _resolv_cache_reset(unsigned generation) } struct resolv_cache* cache = _get_res_cache_for_iface_locked(ifname); - if (cache == NULL) { - pthread_mutex_unlock(&_res_cache_list_lock); - return; - } - - pthread_mutex_lock( &cache->lock ); - if (cache->generation != generation) { - _cache_flush_locked(cache); - cache->generation = generation; + if (cache != NULL) { + pthread_mutex_lock( &cache->lock ); + if (cache->generation != generation) { + _cache_flush_locked(cache); + cache->generation = generation; + } + pthread_mutex_unlock( &cache->lock ); } - pthread_mutex_unlock( &cache->lock ); pthread_mutex_unlock(&_res_cache_list_lock); } @@ -1860,8 +1859,10 @@ _free_nameservers_locked(struct resolv_cache_info* cache_info) for (i = 0; i <= MAXNS; i++) { free(cache_info->nameservers[i]); cache_info->nameservers[i] = NULL; - freeaddrinfo(cache_info->nsaddrinfo[i]); - cache_info->nsaddrinfo[i] = NULL; + if (cache_info->nsaddrinfo[i] != NULL) { + freeaddrinfo(cache_info->nsaddrinfo[i]); + cache_info->nsaddrinfo[i] = NULL; + } } } |