From: Ulrich Drepper Date: Mon, 13 Sep 2004 06:07:02 +0000 (+0000) Subject: UPdate. X-Git-Tag: cvs/fedora-base~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=407c4b9a19fc59dfea131c08b3075108ecfab8a3;p=thirdparty%2Fglibc.git UPdate. * nscd/nscd_helper.c (get_mapping): Correctly check cmsg length. Avoid file descriptor leak in case of size mismatch. --- diff --git a/ChangeLog b/ChangeLog index 2b5dfc68d51..4e3dd230847 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-09-12 Ulrich Drepper + * nscd/nscd_helper.c (get_mapping): Correctly check cmsg length. + Avoid file descriptor leak in case of size mismatch. + * nscd/nscd-client.h: Fix database structure layout for biarch. * nscd/mem.c (gc): Add casts to avoid warnings. diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index 74983b9762c..ff27b0797e9 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -138,10 +138,12 @@ get_mapping (request_type type, const char *key, /* Failure or timeout. */ goto out_close2; - if (TEMP_FAILURE_RETRY (__recvmsg (sock, &msg, 0)) != keylen - || msg.msg_controllen != CMSG_LEN (sizeof (int))) + if (TEMP_FAILURE_RETRY (__recvmsg (sock, &msg, 0)) != keylen) goto out_close2; + if (CMSG_FIRSTHDR (&msg)->cmsg_len != CMSG_LEN (sizeof (int))) + goto out_close; + mapfd = *(int *) CMSG_DATA (cmsg); struct stat64 st;