#include "sudo.h"
#if defined(HAVE_OPENPTY)
-int
+bool
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
{
struct group *gr;
gid_t ttygid = -1;
- int rval = 0;
+ bool rval = false;
debug_decl(get_pty, SUDO_DEBUG_PTY)
if ((gr = getgrnam("tty")) != NULL)
if (openpty(master, slave, name, NULL, NULL) == 0) {
if (chown(name, ttyuid, ttygid) == 0)
- rval = 1;
+ rval = true;
}
debug_return_bool(rval);
}
#elif defined(HAVE__GETPTY)
-int
+bool
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
{
char *line;
- int rval = 0;
+ bool rval = false;
debug_decl(get_pty, SUDO_DEBUG_PTY)
/* IRIX-style dynamic ptys (may fork) */
if (*slave != -1) {
(void) chown(line, ttyuid, -1);
strlcpy(name, line, namesz);
- rval = 1;
+ rval = true;
} else {
close(*master);
*master = -1;
}
# endif /* HAVE_POSIX_OPENPT */
-int
+bool
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
{
char *line;
- int rval = 0;
+ bool rval = false;
debug_decl(get_pty, SUDO_DEBUG_PTY)
*master = posix_openpt(O_RDWR|O_NOCTTY);
# endif
(void) chown(line, ttyuid, -1);
strlcpy(name, line, namesz);
- rval = 1;
+ rval = true;
}
done:
debug_return_bool(rval);
static char line[] = "/dev/ptyXX";
-int
+bool
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
{
char *bank, *cp;
struct group *gr;
gid_t ttygid = -1;
- int rval = 0;
+ bool rval = false;
debug_decl(get_pty, SUDO_DEBUG_PTY)
if ((gr = getgrnam("tty")) != NULL)
*slave = open(line, O_RDWR|O_NOCTTY, 0);
if (*slave != -1) {
strlcpy(name, line, namesz);
- rval = 1; /* success */
+ rval = true; /* success */
goto done;
}
(void) close(*master);
extern int tgetpass_flags;
/* get_pty.c */
-int get_pty(int *master, int *slave, char *name, size_t namesz, uid_t uid);
+bool get_pty(int *master, int *slave, char *name, size_t namesz, uid_t uid);
/* sudo.c */
bool exec_setup(struct command_details *details, const char *ptyname, int ptyfd);