get_pty() should return bool
This commit is contained in:
@@ -58,12 +58,12 @@
|
|||||||
#include "sudo.h"
|
#include "sudo.h"
|
||||||
|
|
||||||
#if defined(HAVE_OPENPTY)
|
#if defined(HAVE_OPENPTY)
|
||||||
int
|
bool
|
||||||
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
||||||
{
|
{
|
||||||
struct group *gr;
|
struct group *gr;
|
||||||
gid_t ttygid = -1;
|
gid_t ttygid = -1;
|
||||||
int rval = 0;
|
bool rval = false;
|
||||||
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
||||||
|
|
||||||
if ((gr = getgrnam("tty")) != NULL)
|
if ((gr = getgrnam("tty")) != NULL)
|
||||||
@@ -71,18 +71,18 @@ get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
|||||||
|
|
||||||
if (openpty(master, slave, name, NULL, NULL) == 0) {
|
if (openpty(master, slave, name, NULL, NULL) == 0) {
|
||||||
if (chown(name, ttyuid, ttygid) == 0)
|
if (chown(name, ttyuid, ttygid) == 0)
|
||||||
rval = 1;
|
rval = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_return_bool(rval);
|
debug_return_bool(rval);
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(HAVE__GETPTY)
|
#elif defined(HAVE__GETPTY)
|
||||||
int
|
bool
|
||||||
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
||||||
{
|
{
|
||||||
char *line;
|
char *line;
|
||||||
int rval = 0;
|
bool rval = false;
|
||||||
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
||||||
|
|
||||||
/* IRIX-style dynamic ptys (may fork) */
|
/* IRIX-style dynamic ptys (may fork) */
|
||||||
@@ -92,7 +92,7 @@ get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
|||||||
if (*slave != -1) {
|
if (*slave != -1) {
|
||||||
(void) chown(line, ttyuid, -1);
|
(void) chown(line, ttyuid, -1);
|
||||||
strlcpy(name, line, namesz);
|
strlcpy(name, line, namesz);
|
||||||
rval = 1;
|
rval = true;
|
||||||
} else {
|
} else {
|
||||||
close(*master);
|
close(*master);
|
||||||
*master = -1;
|
*master = -1;
|
||||||
@@ -116,11 +116,11 @@ posix_openpt(int oflag)
|
|||||||
}
|
}
|
||||||
# endif /* HAVE_POSIX_OPENPT */
|
# endif /* HAVE_POSIX_OPENPT */
|
||||||
|
|
||||||
int
|
bool
|
||||||
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
||||||
{
|
{
|
||||||
char *line;
|
char *line;
|
||||||
int rval = 0;
|
bool rval = false;
|
||||||
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
||||||
|
|
||||||
*master = posix_openpt(O_RDWR|O_NOCTTY);
|
*master = posix_openpt(O_RDWR|O_NOCTTY);
|
||||||
@@ -146,7 +146,7 @@ get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
|||||||
# endif
|
# endif
|
||||||
(void) chown(line, ttyuid, -1);
|
(void) chown(line, ttyuid, -1);
|
||||||
strlcpy(name, line, namesz);
|
strlcpy(name, line, namesz);
|
||||||
rval = 1;
|
rval = true;
|
||||||
}
|
}
|
||||||
done:
|
done:
|
||||||
debug_return_bool(rval);
|
debug_return_bool(rval);
|
||||||
@@ -156,13 +156,13 @@ done:
|
|||||||
|
|
||||||
static char line[] = "/dev/ptyXX";
|
static char line[] = "/dev/ptyXX";
|
||||||
|
|
||||||
int
|
bool
|
||||||
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
||||||
{
|
{
|
||||||
char *bank, *cp;
|
char *bank, *cp;
|
||||||
struct group *gr;
|
struct group *gr;
|
||||||
gid_t ttygid = -1;
|
gid_t ttygid = -1;
|
||||||
int rval = 0;
|
bool rval = false;
|
||||||
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
debug_decl(get_pty, SUDO_DEBUG_PTY)
|
||||||
|
|
||||||
if ((gr = getgrnam("tty")) != NULL)
|
if ((gr = getgrnam("tty")) != NULL)
|
||||||
@@ -187,7 +187,7 @@ get_pty(int *master, int *slave, char *name, size_t namesz, uid_t ttyuid)
|
|||||||
*slave = open(line, O_RDWR|O_NOCTTY, 0);
|
*slave = open(line, O_RDWR|O_NOCTTY, 0);
|
||||||
if (*slave != -1) {
|
if (*slave != -1) {
|
||||||
strlcpy(name, line, namesz);
|
strlcpy(name, line, namesz);
|
||||||
rval = 1; /* success */
|
rval = true; /* success */
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
(void) close(*master);
|
(void) close(*master);
|
||||||
|
@@ -195,7 +195,7 @@ int parse_args(int argc, char **argv, int *nargc, char ***nargv,
|
|||||||
extern int tgetpass_flags;
|
extern int tgetpass_flags;
|
||||||
|
|
||||||
/* get_pty.c */
|
/* 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 */
|
/* sudo.c */
|
||||||
bool exec_setup(struct command_details *details, const char *ptyname, int ptyfd);
|
bool exec_setup(struct command_details *details, const char *ptyname, int ptyfd);
|
||||||
|
Reference in New Issue
Block a user