summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2006-04-29 23:35:02 +0000
committerLennart Poettering <lennart@poettering.net>2006-04-29 23:35:02 +0000
commitabf46d2e7c42ce93f7c7883f60cf24588b3bc1e9 (patch)
treed0b94d5126fd05d43e4a1aa707b5faa7f9a6eb2f
parent846f76e69afeca6e232f68cde0fef9f7c1b111e4 (diff)
deal properly with the case when neither avahi nor legacy mDNS erquests worked
git-svn-id: file:///home/lennart/svn/public/nss-mdns/trunk@101 0ee8848e-81ea-0310-a63a-f631d1a40d77
-rw-r--r--src/nss.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/nss.c b/src/nss.c
index 04cc93f..5476e6f 100644
--- a/src/nss.c
+++ b/src/nss.c
@@ -670,12 +670,20 @@ enum nss_status _nss_mdns_gethostbyaddr_r(
}
#endif /* ENABLE_LEGACY */
+ if (u.count == 0) {
+ *errnop = ETIMEDOUT;
+ *h_errnop = NO_RECOVERY;
+ goto finish;
+ }
+
/* Alias names */
*((char**) buffer) = NULL;
result->h_aliases = (char**) buffer;
idx = sizeof(char*);
- assert(u.count > 0 && u.data.name[0]);
+ assert(u.count > 0);
+ assert(u.data.name[0]);
+
if (buflen <
strlen(u.data.name[0])+1+ /* official names */
sizeof(char*)+ /* alias names */