From e87e2f48effefe5e70a9a21bc13d7187608d0365 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 22 Dec 2009 11:51:44 -0800 Subject: [PATCH] Hurd: Fix possibly uninitialized variable in _hurd_locked_install_cttyid. --- ChangeLog | 5 +++++ hurd/hurdioctl.c | 24 ++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3ff2684f56..aba0d71b28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-12-22 Samuel Thibault + + * hurd/hurdioctl.c (_hurd_locked_install_cttyid): Set newctty to + MACH_PORT_NULL when id != cttyid. + 2009-12-20 Samuel Thibault * sysdeps/mach/hurd/getcwd.c (cleanup): Do not call 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; }));