Move functions and symbols shared between exec.c and exec_pty.c

into sudo_exec.h.
This commit is contained in:
Todd C. Miller
2010-06-16 16:46:56 -04:00
parent ede8a5fad3
commit d018936b4e
6 changed files with 46 additions and 17 deletions

View File

@@ -191,6 +191,7 @@ src/sesh.c
src/sudo.c src/sudo.c
src/sudo.h src/sudo.h
src/sudo_edit.c src/sudo_edit.c
src/sudo_exec.h
src/sudo_noexec.c src/sudo_noexec.c
src/sudo_plugin_int.h src/sudo_plugin_int.h
src/sudo_usage.h.in src/sudo_usage.h.in

View File

@@ -108,8 +108,8 @@ sesh: sesh.o
aix.o: $(srcdir)/aix.c $(top_builddir)/config.h $(incdir)/compat.h aix.o: $(srcdir)/aix.c $(top_builddir)/config.h $(incdir)/compat.h
conversation.o: $(srcdir)/conversation.c $(SUDODEP) conversation.o: $(srcdir)/conversation.c $(SUDODEP)
error.o: $(srcdir)/error.c $(incdir)/compat.h $(incdir)/error.h $(top_builddir)/config.h error.o: $(srcdir)/error.c $(incdir)/compat.h $(incdir)/error.h $(top_builddir)/config.h
exec.o: $(srcdir)/exec.c $(SUDODEP) exec.o: $(srcdir)/exec.c $(SUDODEP) $(srcdir)/sudo_exec.h
exec_pty.o: $(srcdir)/exec_pty.c $(SUDODEP) exec_pty.o: $(srcdir)/exec_pty.c $(SUDODEP) $(srcdir)/sudo_exec.h
get_pty.o: $(srcdir)/get_pty.c $(SUDODEP) get_pty.o: $(srcdir)/get_pty.c $(SUDODEP)
load_plugins.o: $(srcdir)/load_plugins.c $(SUDODEP) load_plugins.o: $(srcdir)/load_plugins.c $(SUDODEP)
parse_args.o: $(srcdir)/parse_args.c sudo_usage.h $(SUDODEP) parse_args.o: $(srcdir)/parse_args.c sudo_usage.h $(SUDODEP)

View File

@@ -57,6 +57,7 @@
#include <termios.h> #include <termios.h>
#include "sudo.h" #include "sudo.h"
#include "sudo_exec.h"
#include "sudo_plugin.h" #include "sudo_plugin.h"
#include "sudo_plugin_int.h" #include "sudo_plugin_int.h"

View File

@@ -56,6 +56,7 @@
#include <termios.h> #include <termios.h>
#include "sudo.h" #include "sudo.h"
#include "sudo_exec.h"
#include "sudo_plugin.h" #include "sudo_plugin.h"
#include "sudo_plugin_int.h" #include "sudo_plugin_int.h"
@@ -87,10 +88,6 @@ struct io_buffer {
char buf[16 * 1024]; char buf[16 * 1024];
}; };
/* shared with pty.c */
extern sig_atomic_t recvsig[NSIG];
extern void handler(int s);
static char slavename[PATH_MAX]; static char slavename[PATH_MAX];
static int foreground; static int foreground;
static int io_fds[6] = { -1, -1, -1, -1, -1, -1}; static int io_fds[6] = { -1, -1, -1, -1, -1, -1};

View File

@@ -151,6 +151,8 @@ struct command_status {
int val; int val;
}; };
struct timeval;
/* For error() and errorx() (XXX - needed?) */ /* For error() and errorx() (XXX - needed?) */
void cleanup(int); void cleanup(int);
@@ -165,17 +167,6 @@ void zero_bytes(volatile void *, size_t);
/* exec.c */ /* exec.c */
int sudo_execve(struct command_details *details, char *argv[], char *envp[], int sudo_execve(struct command_details *details, char *argv[], char *envp[],
struct command_status *cstat); struct command_status *cstat);
int my_execve(const char *path, char *const argv[], char *const envp[]);
/* exec_pty.c */
int fork_pty(struct command_details *details, char *argv[], char *envp[],
int sv[], int *maxfd);
int perform_io(fd_set *fdsr, fd_set *fdsw, struct command_status *cstat);
int suspend_parent(int signo);
void fd_set_iobs(fd_set *fdsr, fd_set *fdsw);
void pty_close(struct command_status *cstat);
void pty_setup(uid_t uid);
void terminate_child(pid_t pid, int use_pgrp);
/* term.c */ /* term.c */
int term_cbreak(int); int term_cbreak(int);

39
src/sudo_exec.h Normal file
View File

@@ -0,0 +1,39 @@
/*
* Copyright (c) 2010 Todd C. Miller <Todd.Miller@courtesan.com>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _SUDO_EXEC_H
#define _SUDO_EXEC_H
/*
* Symbols shared between exec.c and exec_pty.c
*/
/* exec.c */
int my_execve(const char *path, char *const argv[], char *const envp[]);
/* exec_pty.c */
int fork_pty(struct command_details *details, char *argv[], char *envp[],
int sv[], int *maxfd);
int perform_io(fd_set *fdsr, fd_set *fdsw, struct command_status *cstat);
int suspend_parent(int signo);
void fd_set_iobs(fd_set *fdsr, fd_set *fdsw);
void handler(int s);
void pty_close(struct command_status *cstat);
void pty_setup(uid_t uid);
void terminate_child(pid_t pid, int use_pgrp);
extern sig_atomic_t recvsig[NSIG];
#endif /* _SUDO_EXEC_H */