From d018936b4ea82dc7082d221236dd9e060043a026 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Wed, 16 Jun 2010 16:46:56 -0400 Subject: [PATCH] Move functions and symbols shared between exec.c and exec_pty.c into sudo_exec.h. --- MANIFEST | 1 + src/Makefile.in | 4 ++-- src/exec.c | 1 + src/exec_pty.c | 5 +---- src/sudo.h | 13 ++----------- src/sudo_exec.h | 39 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 src/sudo_exec.h diff --git a/MANIFEST b/MANIFEST index 34c957a1e..3792cee0e 100644 --- a/MANIFEST +++ b/MANIFEST @@ -191,6 +191,7 @@ src/sesh.c src/sudo.c src/sudo.h src/sudo_edit.c +src/sudo_exec.h src/sudo_noexec.c src/sudo_plugin_int.h src/sudo_usage.h.in diff --git a/src/Makefile.in b/src/Makefile.in index fa99d2ec3..2062f5aaa 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -108,8 +108,8 @@ sesh: sesh.o aix.o: $(srcdir)/aix.c $(top_builddir)/config.h $(incdir)/compat.h conversation.o: $(srcdir)/conversation.c $(SUDODEP) error.o: $(srcdir)/error.c $(incdir)/compat.h $(incdir)/error.h $(top_builddir)/config.h -exec.o: $(srcdir)/exec.c $(SUDODEP) -exec_pty.o: $(srcdir)/exec_pty.c $(SUDODEP) +exec.o: $(srcdir)/exec.c $(SUDODEP) $(srcdir)/sudo_exec.h +exec_pty.o: $(srcdir)/exec_pty.c $(SUDODEP) $(srcdir)/sudo_exec.h get_pty.o: $(srcdir)/get_pty.c $(SUDODEP) load_plugins.o: $(srcdir)/load_plugins.c $(SUDODEP) parse_args.o: $(srcdir)/parse_args.c sudo_usage.h $(SUDODEP) diff --git a/src/exec.c b/src/exec.c index 5d36cd2d6..ab8c8fa42 100644 --- a/src/exec.c +++ b/src/exec.c @@ -57,6 +57,7 @@ #include #include "sudo.h" +#include "sudo_exec.h" #include "sudo_plugin.h" #include "sudo_plugin_int.h" diff --git a/src/exec_pty.c b/src/exec_pty.c index 22c3530c5..9a9ba5cb2 100644 --- a/src/exec_pty.c +++ b/src/exec_pty.c @@ -56,6 +56,7 @@ #include #include "sudo.h" +#include "sudo_exec.h" #include "sudo_plugin.h" #include "sudo_plugin_int.h" @@ -87,10 +88,6 @@ struct io_buffer { 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 int foreground; static int io_fds[6] = { -1, -1, -1, -1, -1, -1}; diff --git a/src/sudo.h b/src/sudo.h index 25f42e9cc..bcadbcf7e 100644 --- a/src/sudo.h +++ b/src/sudo.h @@ -151,6 +151,8 @@ struct command_status { int val; }; +struct timeval; + /* For error() and errorx() (XXX - needed?) */ void cleanup(int); @@ -165,17 +167,6 @@ void zero_bytes(volatile void *, size_t); /* exec.c */ int sudo_execve(struct command_details *details, char *argv[], char *envp[], 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 */ int term_cbreak(int); diff --git a/src/sudo_exec.h b/src/sudo_exec.h new file mode 100644 index 000000000..5151a2241 --- /dev/null +++ b/src/sudo_exec.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2010 Todd C. Miller + * + * 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 */