diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | hurd/hurdioctl.c | 24 | ||||
-rw-r--r-- | sysdeps/mach/hurd/getcwd.c | 4 |
3 files changed, 22 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog index 0fe85205ee..18a6c16589 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2009-12-22 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * hurd/hurdioctl.c (_hurd_locked_install_cttyid): Set newctty to + MACH_PORT_NULL when id != cttyid. + +2009-12-20 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/mach/hurd/getcwd.c (cleanup): Do not call + __mach_port_deallocate on rootdevid. + 2009-12-17 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Handle diff --git a/hurd/hurdioctl.c b/hurd/hurdioctl.c index 96d910ba1a..7c689841ca 100644 --- a/hurd/hurdioctl.c +++ b/hurd/hurdioctl.c @@ -1,5 +1,6 @@ /* ioctl commands which must be done in the C library. - Copyright (C) 1994,95,96,97,99,2001,02 Free Software Foundation, Inc. + Copyright (C) 1994,95,96,97,99,2001,2002,2009 + 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 @@ -169,33 +170,28 @@ _hurd_locked_install_cttyid (mach_port_t cttyid) for (i = 0; i < _hurd_dtablesize; ++i) { struct hurd_fd *const d = _hurd_dtable[i]; - mach_port_t newctty; + mach_port_t newctty = MACH_PORT_NULL; if (d == NULL) /* Nothing to do for an unused descriptor cell. */ continue; - if (cttyid == MACH_PORT_NULL) - /* We now have no controlling tty at all. */ - newctty = MACH_PORT_NULL; - else + if (cttyid != MACH_PORT_NULL) + /* We do have some controlling tty. */ HURD_PORT_USE (&d->port, ({ mach_port_t id; /* Get the io object's cttyid port. */ if (! __term_getctty (port, &id)) { - if (id == cttyid && /* Is it ours? */ + if (id == cttyid /* Is it ours? */ /* Get the ctty io port. */ - __term_open_ctty (port, - _hurd_pid, _hurd_pgrp, - &newctty)) + && __term_open_ctty (port, + _hurd_pid, _hurd_pgrp, + &newctty)) /* XXX it is our ctty but the call failed? */ newctty = MACH_PORT_NULL; - __mach_port_deallocate - (__mach_task_self (), (mach_port_t) id); + __mach_port_deallocate (__mach_task_self (), id); } - else - newctty = MACH_PORT_NULL; 0; })); diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c index 7e07e6b404..7da677eec9 100644 --- a/sysdeps/mach/hurd/getcwd.c +++ b/sysdeps/mach/hurd/getcwd.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,92,93,94,95,96,97,98,2002,04 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,94,95,96,97,98,2002,2004,2009 + 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 @@ -60,7 +61,6 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir, __mach_port_deallocate (__mach_task_self (), thisid); __mach_port_deallocate (__mach_task_self (), thisdevid); __mach_port_deallocate (__mach_task_self (), rootid); - __mach_port_deallocate (__mach_task_self (), rootdevid); if (dirbuf != NULL) __vm_deallocate (__mach_task_self (), |