* nscd/nscd_helper.c (get_mapping): Correctly check cmsg length.
	Avoid file descriptor leak in case of size mismatch.
This commit is contained in:
Ulrich Drepper 2004-09-13 06:07:02 +00:00
parent 568470bbff
commit 407c4b9a19
2 changed files with 7 additions and 2 deletions

View File

@ -1,5 +1,8 @@
2004-09-12 Ulrich Drepper <drepper@redhat.com>
* 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.

View File

@ -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;