Rename iolog_plugin.h to log_client.h.

It is no longer I/O log specific and is used by sudoers_audit too.
This commit is contained in:
Todd C. Miller
2020-11-09 17:13:04 -07:00
parent 62547746d3
commit e56c3b342b
6 changed files with 43 additions and 45 deletions

View File

@@ -504,7 +504,6 @@ plugins/sudoers/interfaces.c
plugins/sudoers/interfaces.h
plugins/sudoers/iolog.c
plugins/sudoers/iolog_path_escapes.c
plugins/sudoers/iolog_plugin.h
plugins/sudoers/ldap.c
plugins/sudoers/ldap_conf.c
plugins/sudoers/ldap_util.c
@@ -512,6 +511,7 @@ plugins/sudoers/linux_audit.c
plugins/sudoers/linux_audit.h
plugins/sudoers/locale.c
plugins/sudoers/log_client.c
plugins/sudoers/log_client.h
plugins/sudoers/logging.c
plugins/sudoers/logging.h
plugins/sudoers/match.c

View File

@@ -704,11 +704,11 @@ audit.lo: $(srcdir)/audit.c $(devdir)/def_data.h $(incdir)/compat/stdbool.h \
$(incdir)/sudo_eventlog.h $(incdir)/sudo_fatal.h \
$(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
$(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/bsm_audit.h \
$(srcdir)/defaults.h $(srcdir)/iolog_plugin.h \
$(srcdir)/linux_audit.h $(srcdir)/logging.h $(srcdir)/parse.h \
$(srcdir)/solaris_audit.h $(srcdir)/strlist.h $(srcdir)/sudo_nss.h \
$(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \
$(top_builddir)/config.h $(top_builddir)/pathnames.h
$(srcdir)/defaults.h $(srcdir)/linux_audit.h $(srcdir)/log_client.h \
$(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/solaris_audit.h \
$(srcdir)/strlist.h $(srcdir)/sudo_nss.h $(srcdir)/sudoers.h \
$(srcdir)/sudoers_debug.h $(top_builddir)/config.h \
$(top_builddir)/pathnames.h
$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/audit.c
audit.i: $(srcdir)/audit.c $(devdir)/def_data.h $(incdir)/compat/stdbool.h \
$(incdir)/log_server.pb-c.h $(incdir)/protobuf-c/protobuf-c.h \
@@ -716,11 +716,11 @@ audit.i: $(srcdir)/audit.c $(devdir)/def_data.h $(incdir)/compat/stdbool.h \
$(incdir)/sudo_eventlog.h $(incdir)/sudo_fatal.h \
$(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
$(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/bsm_audit.h \
$(srcdir)/defaults.h $(srcdir)/iolog_plugin.h \
$(srcdir)/linux_audit.h $(srcdir)/logging.h $(srcdir)/parse.h \
$(srcdir)/solaris_audit.h $(srcdir)/strlist.h $(srcdir)/sudo_nss.h \
$(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \
$(top_builddir)/config.h $(top_builddir)/pathnames.h
$(srcdir)/defaults.h $(srcdir)/linux_audit.h $(srcdir)/log_client.h \
$(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/solaris_audit.h \
$(srcdir)/strlist.h $(srcdir)/sudo_nss.h $(srcdir)/sudoers.h \
$(srcdir)/sudoers_debug.h $(top_builddir)/config.h \
$(top_builddir)/pathnames.h
$(CC) -E -o $@ $(CPPFLAGS) $<
audit.plog: audit.i
rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/audit.c --i-file $< --output-file $@
@@ -1596,7 +1596,7 @@ iolog.lo: $(srcdir)/iolog.c $(devdir)/def_data.h $(incdir)/compat/stdbool.h \
$(incdir)/sudo_eventlog.h $(incdir)/sudo_fatal.h \
$(incdir)/sudo_gettext.h $(incdir)/sudo_iolog.h \
$(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
$(srcdir)/defaults.h $(srcdir)/iolog_plugin.h $(srcdir)/logging.h \
$(srcdir)/defaults.h $(srcdir)/log_client.h $(srcdir)/logging.h \
$(srcdir)/parse.h $(srcdir)/strlist.h $(srcdir)/sudo_nss.h \
$(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \
$(top_builddir)/config.h $(top_builddir)/pathnames.h
@@ -1607,7 +1607,7 @@ iolog.i: $(srcdir)/iolog.c $(devdir)/def_data.h $(incdir)/compat/stdbool.h \
$(incdir)/sudo_eventlog.h $(incdir)/sudo_fatal.h \
$(incdir)/sudo_gettext.h $(incdir)/sudo_iolog.h \
$(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
$(srcdir)/defaults.h $(srcdir)/iolog_plugin.h $(srcdir)/logging.h \
$(srcdir)/defaults.h $(srcdir)/log_client.h $(srcdir)/logging.h \
$(srcdir)/parse.h $(srcdir)/strlist.h $(srcdir)/sudo_nss.h \
$(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \
$(top_builddir)/config.h $(top_builddir)/pathnames.h
@@ -1787,11 +1787,10 @@ log_client.lo: $(srcdir)/log_client.c $(devdir)/def_data.h \
$(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
$(incdir)/sudo_iolog.h $(incdir)/sudo_plugin.h \
$(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
$(srcdir)/defaults.h $(srcdir)/iolog_plugin.h \
$(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/strlist.h \
$(srcdir)/sudo_nss.h $(srcdir)/sudoers.h \
$(srcdir)/sudoers_debug.h $(top_builddir)/config.h \
$(top_builddir)/pathnames.h
$(srcdir)/defaults.h $(srcdir)/log_client.h $(srcdir)/logging.h \
$(srcdir)/parse.h $(srcdir)/strlist.h $(srcdir)/sudo_nss.h \
$(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \
$(top_builddir)/config.h $(top_builddir)/pathnames.h
$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/log_client.c
log_client.i: $(srcdir)/log_client.c $(devdir)/def_data.h \
$(incdir)/compat/getaddrinfo.h $(incdir)/compat/stdbool.h \
@@ -1802,11 +1801,10 @@ log_client.i: $(srcdir)/log_client.c $(devdir)/def_data.h \
$(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
$(incdir)/sudo_iolog.h $(incdir)/sudo_plugin.h \
$(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
$(srcdir)/defaults.h $(srcdir)/iolog_plugin.h \
$(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/strlist.h \
$(srcdir)/sudo_nss.h $(srcdir)/sudoers.h \
$(srcdir)/sudoers_debug.h $(top_builddir)/config.h \
$(top_builddir)/pathnames.h
$(srcdir)/defaults.h $(srcdir)/log_client.h $(srcdir)/logging.h \
$(srcdir)/parse.h $(srcdir)/strlist.h $(srcdir)/sudo_nss.h \
$(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \
$(top_builddir)/config.h $(top_builddir)/pathnames.h
$(CC) -E -o $@ $(CPPFLAGS) $<
log_client.plog: log_client.i
rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/log_client.c --i-file $< --output-file $@

View File

@@ -30,8 +30,7 @@
#include <string.h>
#include "sudoers.h"
#include <netinet/in.h> /* XXX */
#include "iolog_plugin.h" /* XXX */
#include "log_client.h"
#ifdef HAVE_BSM_AUDIT
# include "bsm_audit.h"
@@ -45,7 +44,7 @@
#ifdef SUDOERS_LOG_CLIENT
static struct client_closure *client_closure = NULL;
static struct iolog_details audit_details;
static struct log_details audit_details;
#endif
char *audit_msg = NULL;
@@ -53,7 +52,7 @@ char *audit_msg = NULL;
extern sudo_dso_public struct audit_plugin sudoers_audit;
/* XXX */
int iolog_deserialize_info(struct iolog_details *details, char * const user_info[], char * const command_info[], char * const argv[], char * const user_env[]);
int iolog_deserialize_info(struct log_details *details, char * const user_info[], char * const command_info[], char * const argv[], char * const user_env[]);
static int
audit_success(char *const argv[])

View File

@@ -42,7 +42,7 @@
#include "sudoers.h"
#include "sudo_eventlog.h"
#include "sudo_iolog.h"
#include "iolog_plugin.h"
#include "log_client.h"
static struct iolog_file iolog_files[] = {
{ false }, /* IOFD_STDIN */
@@ -67,7 +67,7 @@ static struct sudoers_io_operations {
#ifdef SUDOERS_LOG_CLIENT
static struct client_closure *client_closure;
#endif
static struct iolog_details iolog_details;
static struct log_details iolog_details;
static bool warned = false;
static int iolog_dir_fd = -1;
static struct timespec last_time;
@@ -249,7 +249,7 @@ bad:
* Returns true if I/O logging is enabled, false if not and -1 on error.
*/
int
iolog_deserialize_info(struct iolog_details *details, char * const user_info[],
iolog_deserialize_info(struct log_details *details, char * const user_info[],
char * const command_info[], char * const argv[], char * const user_env[])
{
struct eventlog *evlog;
@@ -345,7 +345,7 @@ iolog_deserialize_info(struct iolog_details *details, char * const user_info[],
case 'i':
if (strncmp(*cur, "ignore_iolog_errors=", sizeof("ignore_iolog_errors=") - 1) == 0) {
if (sudo_strtobool(*cur + sizeof("ignore_iolog_errors=") - 1) == true)
details->ignore_iolog_errors = true;
details->ignore_log_errors = true;
continue;
}
if (strncmp(*cur, "iolog_path=", sizeof("iolog_path=") - 1) == 0) {
@@ -777,7 +777,7 @@ done:
}
/* Ignore errors if they occur if the policy says so. */
if (ret == -1 && iolog_details.ignore_iolog_errors)
if (ret == -1 && iolog_details.ignore_log_errors)
ret = 0;
debug_return_int(ret);
@@ -1004,7 +1004,7 @@ bad:
}
/* Ignore errors if they occur if the policy says so. */
if (iolog_details.ignore_iolog_errors)
if (iolog_details.ignore_log_errors)
ret = 1;
}
@@ -1132,7 +1132,7 @@ bad:
}
/* Ignore errors if they occur if the policy says so. */
if (iolog_details.ignore_iolog_errors)
if (iolog_details.ignore_log_errors)
ret = 1;
}
@@ -1238,7 +1238,7 @@ bad:
}
/* Ignore errors if they occur if the policy says so. */
if (iolog_details.ignore_iolog_errors)
if (iolog_details.ignore_log_errors)
ret = 1;
}

View File

@@ -60,8 +60,8 @@
#include "sudo_event.h"
#include "sudo_eventlog.h"
#include "sudo_iolog.h"
#include "iolog_plugin.h"
#include "hostcheck.h"
#include "log_client.h"
/* Server callback may redirect to client callback for TLS. */
static void client_msg_cb(int fd, int what, void *v);
@@ -777,7 +777,7 @@ free_info_messages(InfoMessage **info_msgs, size_t n)
static InfoMessage **
fmt_info_messages(struct client_closure *closure, size_t *n_info_msgs)
{
struct iolog_details *details = closure->log_details;
struct log_details *details = closure->log_details;
struct eventlog *evlog = details->evlog;
InfoMessage__StringList *runargv = NULL;
InfoMessage__StringList *runenv = NULL;
@@ -1636,7 +1636,7 @@ server_msg_cb(int fd, int what, void *v)
buf->off = 0;
debug_return;
bad:
if (closure->log_details->ignore_iolog_errors) {
if (closure->log_details->ignore_log_errors) {
/* Disable plugin, the command continues. */
closure->disabled = true;
closure->read_ev->del(closure->read_ev);
@@ -1751,7 +1751,7 @@ client_msg_cb(int fd, int what, void *v)
debug_return;
bad:
if (closure->log_details->ignore_iolog_errors) {
if (closure->log_details->ignore_log_errors) {
/* Disable plugin, the command continues. */
closure->disabled = true;
closure->write_ev->del(closure->read_ev);
@@ -1767,7 +1767,7 @@ bad:
* Allocate and initialize a new client closure
*/
static struct client_closure *
client_closure_alloc(struct iolog_details *details, struct timespec *now,
client_closure_alloc(struct log_details *details, struct timespec *now,
bool log_io, struct sudo_plugin_event * (*event_alloc)(void))
{
struct client_closure *closure;
@@ -1808,7 +1808,7 @@ oom:
}
struct client_closure *
log_server_open(struct iolog_details *details, struct timespec *now,
log_server_open(struct log_details *details, struct timespec *now,
bool log_io, struct sudo_plugin_event * (*event_alloc)(void))
{
struct client_closure *closure;

View File

@@ -19,6 +19,7 @@
#ifndef SUDOERS_LOG_CLIENT_H
#define SUDOERS_LOG_CLIENT_H
#include <netinet/in.h> /* for INET6?_ADDRSTRLEN */
#if defined(HAVE_OPENSSL)
# include <openssl/ssl.h>
#endif /* HAVE_OPENSSL */
@@ -47,7 +48,7 @@ struct connection_buffer {
};
TAILQ_HEAD(connection_buffer_list, connection_buffer);
struct iolog_details {
struct log_details {
struct eventlog *evlog;
struct sudoers_str_list *log_servers;
struct timespec server_timeout;
@@ -58,7 +59,7 @@ struct iolog_details {
#endif /* HAVE_OPENSSL */
bool keepalive;
bool verify_server;
bool ignore_iolog_errors;
bool ignore_log_errors;
};
enum client_state {
@@ -97,7 +98,7 @@ struct client_closure {
struct connection_buffer read_buf;
struct sudo_plugin_event *read_ev;
struct sudo_plugin_event *write_ev;
struct iolog_details *log_details;
struct log_details *log_details;
struct timespec start_time;
struct timespec elapsed;
struct timespec committed;
@@ -105,7 +106,7 @@ struct client_closure {
};
/* iolog_client.c */
struct client_closure *log_server_open(struct iolog_details *details, struct timespec *now, bool log_io, struct sudo_plugin_event * (*event_alloc)(void));
struct client_closure *log_server_open(struct log_details *details, struct timespec *now, bool log_io, struct sudo_plugin_event * (*event_alloc)(void));
bool log_server_close(struct client_closure *closure, int exit_status, int error);
bool fmt_accept_message(struct client_closure *closure);
bool fmt_client_message(struct client_closure *closure, ClientMessage *msg);