Hurd: O_CLOEXEC in rtld

This commit is contained in:
Thomas Schwinge 2012-05-10 12:43:01 -07:00 committed by Roland McGrath
parent bcfe3a546e
commit 6f080c2fcf
5 changed files with 17 additions and 10 deletions

View File

@ -1,3 +1,11 @@
2012-05-10 Thomas Schwinge <thomas@schwinge.name>
* sysdeps/mach/hurd/dl-sysdep.c (open_file): Do not raise
assertion on O_CLOEXEC flag.
* hurd/hurd/fd.h: Update comment to mention O_CLOEXEC.
* hurd/intern-fd.c: Likewise.
* hurd/port2fd.c: Likewise.
2012-05-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
[BZ #3906]

View File

@ -1,6 +1,5 @@
/* File descriptors.
Copyright (C) 1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2006,2007
Free Software Foundation, Inc.
Copyright (C) 1993-2012 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
@ -199,7 +198,8 @@ extern void _hurd_port2fd (struct hurd_fd *fd, io_t port, int flags);
/* Allocate a new file descriptor and install PORT in it (doing any
appropriate ctty magic); consumes a user reference on PORT. FLAGS are
as for `open'; only O_IGNORE_CTTY is meaningful, but all are saved.
as for `open'; only O_IGNORE_CTTY and O_CLOEXEC are meaningful, but all are
saved.
If the descriptor table is full, set errno, and return -1.
If DEALLOC is nonzero, deallocate PORT first. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1994-2012 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
@ -19,7 +19,7 @@
#include <hurd/fd.h>
/* Allocate a new file descriptor and install PORT in it. FLAGS are as for
`open'; only O_IGNORE_CTTY is meaningful.
`open'; only O_IGNORE_CTTY and O_CLOEXEC are meaningful.
If the descriptor table is full, set errno, and return -1.
If DEALLOC is nonzero, deallocate PORT first. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1997, 1999, 2007 Free Software Foundation, Inc.
/* Copyright (C) 1994-2012 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
@ -22,7 +22,7 @@
#include <fcntl.h>
/* Store PORT in file descriptor D, doing appropriate ctty magic.
FLAGS are as for `open'; only O_IGNORE_CTTY is meaningful.
FLAGS are as for `open'; only O_IGNORE_CTTY and O_CLOEXEC are meaningful.
D should be locked, and will not be unlocked. */
void

View File

@ -1,6 +1,5 @@
/* Operating system support for run-time dynamic linker. Hurd version.
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2010
Free Software Foundation, Inc.
Copyright (C) 1995-2012 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
@ -315,7 +314,7 @@ open_file (const char *file_name, int flags,
return MACH_PORT_NULL;
}
assert (!(flags & ~O_READ));
assert (!(flags & ~(O_READ | O_CLOEXEC)));
startdir = _dl_hurd_data->portarray[file_name[0] == '/' ?
INIT_PORT_CRDIR : INIT_PORT_CWDIR];