about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--nss/nss_files/files-hosts.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ed055a7f3e..3fae505586 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-10-29  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #10540]
+	* nss/nss_files/files-hosts.c (_nss_files_gethostbyname4_r): If
+	/etc/hosts does not exist set errnop and herrnop appropriately.
+	Patch by Steve Langasek <vorlon@debian.org>.
+
 	[BZ #10553]
 	* malloc/malloc.c (malloc_info): Fix typos in format strings.
 	Patch by John Sullivan <jsrhbz@kanargh.force9.co.uk>.
diff --git a/nss/nss_files/files-hosts.c b/nss/nss_files/files-hosts.c
index 7b69d47fcb..68fb969937 100644
--- a/nss/nss_files/files-hosts.c
+++ b/nss/nss_files/files-hosts.c
@@ -1,5 +1,5 @@
 /* Hosts file parser in nss_files module.
-   Copyright (C) 1996-2001, 2003-2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1996-2001, 2003-2008, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -423,6 +423,11 @@ _nss_files_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
       if (! keep_stream)
 	internal_endent ();
     }
+  else
+    {
+      *errnop = errno;
+      *herrnop = NO_DATA;
+    }
 
   __libc_lock_unlock (lock);