diff options
author | Thomas Schwinge <thomas@schwinge.name> | 2012-05-10 12:43:01 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2012-05-10 15:57:22 -0700 |
commit | 6f080c2fcffac1bb8626b8d143dba57a37abb071 (patch) | |
tree | 23aa88a0084d4e5e89ff441d8250708173dc59df | |
parent | bcfe3a546e831ff3e43a8782f65a95fab7bb864d (diff) | |
download | glibc-6f080c2fcffac1bb8626b8d143dba57a37abb071.tar.gz glibc-6f080c2fcffac1bb8626b8d143dba57a37abb071.tar.xz glibc-6f080c2fcffac1bb8626b8d143dba57a37abb071.zip |
Hurd: O_CLOEXEC in rtld
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | hurd/hurd/fd.h | 6 | ||||
-rw-r--r-- | hurd/intern-fd.c | 4 | ||||
-rw-r--r-- | hurd/port2fd.c | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/dl-sysdep.c | 5 |
5 files changed, 17 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index 11ca6b7073..bd66d5a0eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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] diff --git a/hurd/hurd/fd.h b/hurd/hurd/fd.h index 5f3ee6a8c9..5044f977fb 100644 --- a/hurd/hurd/fd.h +++ b/hurd/hurd/fd.h @@ -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. */ diff --git a/hurd/intern-fd.c b/hurd/intern-fd.c index 52e0606c96..ac89173942 100644 --- a/hurd/intern-fd.c +++ b/hurd/intern-fd.c @@ -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. */ diff --git a/hurd/port2fd.c b/hurd/port2fd.c index bef07ad3bf..451d6306e7 100644 --- a/hurd/port2fd.c +++ b/hurd/port2fd.c @@ -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 diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c index d928cd2478..26a212ef98 100644 --- a/sysdeps/mach/hurd/dl-sysdep.c +++ b/sysdeps/mach/hurd/dl-sysdep.c @@ -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]; |