aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/terminals.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/terminals.c')
-rw-r--r--gcc/ada/terminals.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 675ac35..35185c7 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -6,7 +6,7 @@
* *
* C Implementation File *
* *
- * Copyright (C) 2008-2015, AdaCore *
+ * Copyright (C) 2008-2016, AdaCore *
* *
* GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- *
@@ -1410,7 +1410,8 @@ __gnat_setup_child_communication
#ifdef TIOCSCTTY
/* make the tty the controlling terminal */
- status = ioctl (desc->slave_fd, TIOCSCTTY, 0);
+ if ((status = ioctl (desc->slave_fd, TIOCSCTTY, 0)) == -1)
+ return -1;
#endif
/* adjust tty settings */
@@ -1424,8 +1425,10 @@ __gnat_setup_child_communication
if (desc->slave_fd > 2) close (desc->slave_fd);
/* adjust process group settings */
- status = setpgid (pid, pid);
- status = tcsetpgrp (0, pid);
+ if ((status = setpgid (pid, pid)) == -1)
+ return -1;
+ if ((status = tcsetpgrp (0, pid)) == -1)
+ return -1;
/* launch the program */
execvp (new_argv[0], new_argv);
@@ -1562,9 +1565,9 @@ pty_desc *
__gnat_new_tty (void)
{
int status;
- pty_desc* desc;
- status = allocate_pty_desc (&desc);
- child_setup_tty (desc->master_fd);
+ pty_desc* desc = NULL;
+ if ((status = allocate_pty_desc (&desc)))
+ child_setup_tty (desc->master_fd);
return desc;
}