Move functions and symbols shared between exec.c and exec_pty.c
into sudo_exec.h.
This commit is contained in:
1
MANIFEST
1
MANIFEST
@@ -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
|
||||||
|
@@ -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)
|
||||||
|
@@ -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"
|
||||||
|
|
||||||
|
@@ -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};
|
||||||
|
13
src/sudo.h
13
src/sudo.h
@@ -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
39
src/sudo_exec.h
Normal 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 */
|
Reference in New Issue
Block a user