* nscd/nscd_helper.c (get_mapping): Handle short replies instead
authorUlrich Drepper <drepper@redhat.com>
Tue, 29 May 2007 14:45:49 +0000 (14:45 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 29 May 2007 14:45:49 +0000 (14:45 +0000)
of crashing.  When this is the case or if the reply is malformed,
don't try to close the new file descriptor since it does not
exist.
Patch in part by Guillaume Chazarain <guichaz@yahoo.fr>.

ChangeLog
nscd/nscd_helper.c

index 5f17fd5..0851e6d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-05-29  Ulrich Drepper  <drepper@redhat.com>
+
+       * nscd/nscd_helper.c (get_mapping): Handle short replies instead
+       of crashing.  When this is the case or if the reply is malformed,
+       don't try to close the new file descriptor since it does not
+       exist.
+       Patch in part by Guillaume Chazarain <guichaz@yahoo.fr>.
+
 2007-05-28  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/futimes.c (miss_utimensat): Don't define
index 1f56ccf..bab4913 100644 (file)
@@ -271,9 +271,10 @@ get_mapping (request_type type, const char *key,
 
   mapfd = *(int *) CMSG_DATA (cmsg);
 
-  if (__builtin_expect (CMSG_FIRSTHDR (&msg)->cmsg_len
-                       != CMSG_LEN (sizeof (int)), 0))
-    goto out_close;
+  if (__builtin_expect (CMSG_FIRSTHDR (&msg) == NULL
+                       || (CMSG_FIRSTHDR (&msg)->cmsg_len
+                           != CMSG_LEN (sizeof (int))), 0))
+    goto out_close2;
 
   struct stat64 st;
   if (__builtin_expect (strcmp (resdata, key) != 0, 0)