[PATCH] Create more sockets with SOCK_CLOEXEC [BZ #15722]

Florian Weimer fweimer@redhat.com
Tue Apr 18 20:09:00 GMT 2017


On 04/18/2017 09:53 PM, Adhemerval Zanella wrote:
> LGTM.  So I presume this patch covers all the internal sockets (as described
> in the patch), correct?

As described in the bug?  Unfortunately not.  There are some holdouts in 
nss_nis, which may require some new (internal) Sun RPC interfaces, or a 
little bit of code duplication to create the socket within nss_nis 
instead.  I didn't include that in this patch because these changes will 
be less obviously correct.

> On 18/04/2017 15:40, Florian Weimer wrote:
>> 2017-04-18  Florian Weimer  <fweimer@redhat.com>
>>
>> 	[BZ #15722]
>> 	* resolv/res_hconf.c (_res_hconf_reorder_addrs): Create socket
>> 	with SOCK_CLOEXEC.
>> 	* resolv/res_send.c (send_vc, reopen): Likewise.
>> 	* sysdeps/posix/getaddrinfo.c (getaddrinfo): Likewise.
>> 	* sysdeps/unix/sysv/linux/check_native.c (__check_native):
>> 	Likewise.
>> 	* sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_open): Likewise.
>> 	* inet/rexec.c (rexec_af): Add comment.
>> 	* inet/rcmd.c (rresvport_af): Likewise.
>>
>> diff --git a/inet/rcmd.c b/inet/rcmd.c
>> index b7cc7a8..e43d4af 100644
>> --- a/inet/rcmd.c
>> +++ b/inet/rcmd.c
>> @@ -383,6 +383,7 @@ rresvport_af (int *alport, sa_family_t family)
>>   		__set_errno (EAFNOSUPPORT);
>>   		return -1;
>>   	}
>> +	/* NB: No SOCK_CLOXEC for backwards compatibility.  */
> 
> Why maintaining backwards is important in this situation?

It's a legacy interface, so I don't think it's worth introducing a 
compat symbol and switch to O_CLOEXEC for these descriptors.  The file 
descriptor is returned to the caller.

Thanks,
Florian



More information about the Libc-alpha mailing list