1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
* sysdeps/unix/bsd/poll.c (__poll): Add code to extend sets if any
	passed file descriptor exceeds the size determined by
	getdtablesize.

	* sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Update
	from inline version in bits/socket.h.

	* sysdeps/unix/sysv/linux/bits/socket.h: Define __cmsg_nxthdr as
	inline function only is __USE_EXTERN_INLINES is defined.

	* time/strftime.c (my_strftime): Make code a bit clearer.
	Patch by Paul Eggert <eggert@twinsun.com>.

	by removing SIG_IGN handler for SIGCHLD if necessary.
This commit is contained in:
Ulrich Drepper
1998-11-18 14:46:49 +00:00
parent 090ca0002f
commit dfd2464b33
8 changed files with 60 additions and 15 deletions

View File

@ -1,5 +1,5 @@
/* Return point to next ancillary data entry in message header.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1998 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
@ -23,16 +23,17 @@
struct cmsghdr *
__cmsg_nxthdr (struct msghdr *mhdr, struct cmsghdr *cmsg)
{
unsigned char *p;
if ((size_t) cmsg->cmsg_len < sizeof (struct cmsghdr))
/* The kernel header does this so there may be a reason. */
return NULL;
p = (((unsigned char *) cmsg)
+ ((cmsg->cmsg_len + sizeof (long int) - 1) & ~sizeof (long int)));
if (p >= (unsigned char *) mhdr->msg_control + mhdr->msg_controllen)
cmsg = (struct cmsghdr *) ((unsigned char *) cmsg
+ CMSG_ALIGN (cmsg->cmsg_len));
if ((unsigned char *) (cmsg + 1) >= ((unsigned char *) mhdr->msg_control
+ mhdr->msg_controllen)
|| ((unsigned char *) cmsg + CMSG_ALIGN (cmsg->cmsg_len)
>= ((unsigned char *) mhdr->msg_control + mhdr->msg_controllen)))
/* No more entries. */
return NULL;
return (struct cmsghdr *) p;
return cmsg;
}