aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac29
-rw-r--r--headers.h87
-rw-r--r--libsandbox/canonicalize.c14
-rw-r--r--libsandbox/libsandbox.c15
-rw-r--r--libsandbox/wrappers.c22
-rw-r--r--libsbutil/get_sandbox_debug_log.c8
-rw-r--r--libsbutil/get_sandbox_lib.c4
-rw-r--r--libsbutil/get_sandbox_log.c8
-rw-r--r--libsbutil/get_sandbox_rc.c4
-rw-r--r--libsbutil/get_tmp_dir.c5
-rw-r--r--libsbutil/include/rcscripts/rcutil.h7
-rw-r--r--libsbutil/is_env_off.c5
-rw-r--r--libsbutil/is_env_on.c5
-rw-r--r--libsbutil/sb_close.c8
-rw-r--r--libsbutil/sb_open.c8
-rw-r--r--libsbutil/sb_read.c8
-rw-r--r--libsbutil/sb_write.c8
-rw-r--r--libsbutil/sbutil.h5
-rw-r--r--libsbutil/src/config.c5
-rw-r--r--libsbutil/src/debug.c9
-rw-r--r--libsbutil/src/dynbuf.c7
-rw-r--r--libsbutil/src/file.c11
-rw-r--r--libsbutil/src/simple-regex.c6
-rw-r--r--libsbutil/src/string.c4
-rw-r--r--src/environ.c8
-rw-r--r--src/sandbox.c12
26 files changed, 135 insertions, 177 deletions
diff --git a/configure.ac b/configure.ac
index 9493fc6..92b0976 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,10 +28,30 @@ AC_FUNC_ALLOCA
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS([ \
- fcntl.h limits.h memory.h stddef.h \
- stdlib.h string.h strings.h sys/file.h \
- sys/param.h sys/time.h unistd.h utime.h \
+AC_CHECK_HEADERS_ONCE([ \
+ dirent.h \
+ dlfcn.h \
+ errno.h \
+ fcntl.h \
+ libgen.h \
+ limits.h \
+ memory.h \
+ signal.h \
+ stdarg.h \
+ stddef.h \
+ stdio.h \
+ stdlib.h \
+ string.h \
+ strings.h \
+ unistd.h \
+ utime.h \
+ sys/file.h \
+ sys/mman.h \
+ sys/param.h \
+ sys/stat.h \
+ sys/time.h \
+ sys/types.h \
+ sys/wait.h \
])
dnl Checks for typedefs, structures, and compiler characteristics.
@@ -149,6 +169,7 @@ AC_TRY_COMPILE([
)
AC_MSG_RESULT([$have_rtld_next])
if test x"$have_rtld_next" = xyes ; then
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
AC_DEFINE([HAVE_RTLD_NEXT], [1], [Have RTLD_NEXT enabled libc])
fi
diff --git a/headers.h b/headers.h
new file mode 100644
index 0000000..237de25
--- /dev/null
+++ b/headers.h
@@ -0,0 +1,87 @@
+/* headers.h: include all system headers
+ *
+ * Copyright 1999-2008 Gentoo Foundation
+ * Licensed under the GPL-2
+ */
+
+#ifndef __SB_HEADERS_H__
+#define __SB_HEADERS_H__
+
+#include "config.h"
+
+#ifdef HAVE_DIRENT_H
+# include <dirent.h>
+#endif
+#ifdef HAVE_DLFCN_H
+# include <dlfcn.h>
+#endif
+#ifdef HAVE_ERRNO_H
+# include <errno.h>
+#endif
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#endif
+#ifdef HAVE_LIBGEN_H
+# include <libgen.h>
+#endif
+#ifdef HAVE_LIMITS_H
+# include <limits.h>
+#endif
+#ifdef HAVE_MEMORY_H
+# include <memory.h>
+#endif
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif
+#ifdef HAVE_STDARG_H
+# include <stdarg.h>
+#endif
+#ifdef HAVE_STDDEF_H
+# include <stddef.h>
+#endif
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
+#endif
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_UTIME_H
+# include <utime.h>
+#endif
+
+#ifdef HAVE_SYS_FILE_H
+# include <sys/file.h>
+#endif
+#ifdef HAVE_SYS_MMAN_H
+# include <sys/mman.h>
+#else
+#error
+#endif
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
+
+#include "localdecls.h"
+
+#endif
diff --git a/libsandbox/canonicalize.c b/libsandbox/canonicalize.c
index 0570d7d..73f2446 100644
--- a/libsandbox/canonicalize.c
+++ b/libsandbox/canonicalize.c
@@ -17,19 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <limits.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <stddef.h>
-
-#include "config.h"
-#include "localdecls.h"
-
+#include "headers.h"
#include "sbutil.h"
#include "libsandbox.h"
diff --git a/libsandbox/libsandbox.c b/libsandbox/libsandbox.c
index 49b4313..7efb98c 100644
--- a/libsandbox/libsandbox.c
+++ b/libsandbox/libsandbox.c
@@ -16,17 +16,7 @@
#define open xxx_open
#define open64 xxx_open64
-#include <errno.h>
-#include <libgen.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <signal.h>
-#include <unistd.h>
-#include <fcntl.h>
+#include "headers.h"
#ifdef SB_MEM_DEBUG
# include <mcheck.h>
@@ -35,10 +25,7 @@
#undef open
#undef open64
-#include "config.h"
-#include "localdecls.h"
#include "sbutil.h"
-
#include "libsandbox.h"
#include "wrappers.h"
diff --git a/libsandbox/wrappers.c b/libsandbox/wrappers.c
index 051cdcb..8af83a2 100644
--- a/libsandbox/wrappers.c
+++ b/libsandbox/wrappers.c
@@ -10,27 +10,7 @@
* as some of the InstallWatch code was used.
*/
-#include "config.h"
-
-/* Better way would be to only define _GNU_SOURCE when __GLIBC__ is defined,
- * but including features.h and then defining _GNU_SOURCE do not work */
-#if defined(HAVE_RTLD_NEXT)
-# define _GNU_SOURCE
-#endif
-#include <errno.h>
-#include <dlfcn.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-#include "localdecls.h"
+#include "headers.h"
#include "sbutil.h"
#include "libsandbox.h"
#include "wrappers.h"
diff --git a/libsbutil/get_sandbox_debug_log.c b/libsbutil/get_sandbox_debug_log.c
index 2f7442a..6a1b4fa 100644
--- a/libsbutil/get_sandbox_debug_log.c
+++ b/libsbutil/get_sandbox_debug_log.c
@@ -10,13 +10,7 @@
* Copyright (C) 2002 Brad House <brad@mainstreetsoftworks.com>
*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <unistd.h>
-
+#include "headers.h"
#include "sbutil.h"
void get_sandbox_debug_log(char *path)
diff --git a/libsbutil/get_sandbox_lib.c b/libsbutil/get_sandbox_lib.c
index 375282c..762ed1d 100644
--- a/libsbutil/get_sandbox_lib.c
+++ b/libsbutil/get_sandbox_lib.c
@@ -10,9 +10,7 @@
* Copyright (C) 2002 Brad House <brad@mainstreetsoftworks.com>
*/
-#include <errno.h>
-#include <stdio.h>
-
+#include "headers.h"
#include "sbutil.h"
void get_sandbox_lib(char *path)
diff --git a/libsbutil/get_sandbox_log.c b/libsbutil/get_sandbox_log.c
index 77f1208..2811737 100644
--- a/libsbutil/get_sandbox_log.c
+++ b/libsbutil/get_sandbox_log.c
@@ -10,13 +10,7 @@
* Copyright (C) 2002 Brad House <brad@mainstreetsoftworks.com>
*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <unistd.h>
-
+#include "headers.h"
#include "sbutil.h"
void get_sandbox_log(char *path)
diff --git a/libsbutil/get_sandbox_rc.c b/libsbutil/get_sandbox_rc.c
index cdbdb73..ba383e3 100644
--- a/libsbutil/get_sandbox_rc.c
+++ b/libsbutil/get_sandbox_rc.c
@@ -10,9 +10,7 @@
* Copyright (C) 2002 Brad House <brad@mainstreetsoftworks.com>
*/
-#include <errno.h>
-#include <stdio.h>
-
+#include "headers.h"
#include "sbutil.h"
void get_sandbox_rc(char *path)
diff --git a/libsbutil/get_tmp_dir.c b/libsbutil/get_tmp_dir.c
index 75ee40f..0421492 100644
--- a/libsbutil/get_tmp_dir.c
+++ b/libsbutil/get_tmp_dir.c
@@ -10,10 +10,7 @@
* Copyright (C) 2002 Brad House <brad@mainstreetsoftworks.com>
*/
-#include <errno.h>
-#include <limits.h>
-#include <stdlib.h>
-
+#include "headers.h"
#include "sbutil.h"
int get_tmp_dir(char *path)
diff --git a/libsbutil/include/rcscripts/rcutil.h b/libsbutil/include/rcscripts/rcutil.h
index 516d41e..c33f60e 100644
--- a/libsbutil/include/rcscripts/rcutil.h
+++ b/libsbutil/include/rcscripts/rcutil.h
@@ -10,13 +10,6 @@
#ifndef __RCUTIL_H__
#define __RCUTIL_H__
-#include <stddef.h>
-#include <sys/types.h>
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
#include "rcscripts/rctypes.h"
#include "rcscripts/util/debug.h"
#include "rcscripts/util/string.h"
diff --git a/libsbutil/is_env_off.c b/libsbutil/is_env_off.c
index e8cd977..3eb56f4 100644
--- a/libsbutil/is_env_off.c
+++ b/libsbutil/is_env_off.c
@@ -7,10 +7,7 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
+#include "headers.h"
#include "sbutil.h"
bool is_env_off (const char *env)
diff --git a/libsbutil/is_env_on.c b/libsbutil/is_env_on.c
index 9736779..4d68b3d 100644
--- a/libsbutil/is_env_on.c
+++ b/libsbutil/is_env_on.c
@@ -7,10 +7,7 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
+#include "headers.h"
#include "sbutil.h"
bool is_env_on (const char *env)
diff --git a/libsbutil/sb_close.c b/libsbutil/sb_close.c
index 3d9c023..003f9ad 100644
--- a/libsbutil/sb_close.c
+++ b/libsbutil/sb_close.c
@@ -7,15 +7,9 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-
+#include "headers.h"
#include "sbutil.h"
-
/* General purpose function to _reliably_ close a file
*
* Returns 0 if successful or negative number on error (and errno set)
diff --git a/libsbutil/sb_open.c b/libsbutil/sb_open.c
index 2d9c403..2e405c6 100644
--- a/libsbutil/sb_open.c
+++ b/libsbutil/sb_open.c
@@ -7,15 +7,9 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-
+#include "headers.h"
#include "sbutil.h"
-
static int (*sbio_open)(const char *, int, mode_t) = (void *)open;
diff --git a/libsbutil/sb_read.c b/libsbutil/sb_read.c
index 43fe3c7..5374576 100644
--- a/libsbutil/sb_read.c
+++ b/libsbutil/sb_read.c
@@ -7,15 +7,9 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-
+#include "headers.h"
#include "sbutil.h"
-
/* General purpose function to _reliably_ read from a file.
*
* Returns total read bytes or -1 on error.
diff --git a/libsbutil/sb_write.c b/libsbutil/sb_write.c
index 32f52f1..3979c8c 100644
--- a/libsbutil/sb_write.c
+++ b/libsbutil/sb_write.c
@@ -7,15 +7,9 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-
+#include "headers.h"
#include "sbutil.h"
-
/* General purpose function to _reliably_ write to a file
*
* If returned value is less than count, there was a fatal
diff --git a/libsbutil/sbutil.h b/libsbutil/sbutil.h
index 068f77b..6195b35 100644
--- a/libsbutil/sbutil.h
+++ b/libsbutil/sbutil.h
@@ -13,10 +13,7 @@
#ifndef __SBUTIL_H__
#define __SBUTIL_H__
-#include <limits.h>
-
-#include "config.h"
-#include "localdecls.h"
+#include "headers.h"
#include "include/rcscripts/rcutil.h"
#define SANDBOX_CONF_FILE ETCDIR "/sandbox.conf"
diff --git a/libsbutil/src/config.c b/libsbutil/src/config.c
index 3f4e6e1..664ec2a 100644
--- a/libsbutil/src/config.c
+++ b/libsbutil/src/config.c
@@ -8,10 +8,7 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
+#include "headers.h"
#include "rcscripts/rcutil.h"
/* This handles simple 'entry="bar"' type variables. If it is more complex
diff --git a/libsbutil/src/debug.c b/libsbutil/src/debug.c
index 1d84b74..26f926a 100644
--- a/libsbutil/src/debug.c
+++ b/libsbutil/src/debug.c
@@ -8,14 +8,7 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-
+#include "headers.h"
#include "rcscripts/rcutil.h"
volatile static bool debug_enabled = TRUE;
diff --git a/libsbutil/src/dynbuf.c b/libsbutil/src/dynbuf.c
index 16bbdcc..c9186a7 100644
--- a/libsbutil/src/dynbuf.c
+++ b/libsbutil/src/dynbuf.c
@@ -8,12 +8,7 @@
* Licensed under the GPL-2
*/
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
+#include "headers.h"
#include "rcscripts/rcutil.h"
#define DYNAMIC_BUFFER_SIZE (sizeof (char) * 2 * 1024)
diff --git a/libsbutil/src/file.c b/libsbutil/src/file.c
index c94cae1..5956406 100644
--- a/libsbutil/src/file.c
+++ b/libsbutil/src/file.c
@@ -8,16 +8,7 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <unistd.h>
-#include <fcntl.h>
-
+#include "headers.h"
#include "rcscripts/rcutil.h"
bool
diff --git a/libsbutil/src/simple-regex.c b/libsbutil/src/simple-regex.c
index 0e0020b..61eff6d 100644
--- a/libsbutil/src/simple-regex.c
+++ b/libsbutil/src/simple-regex.c
@@ -49,11 +49,7 @@
*
*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
+#include "headers.h"
#include "rcscripts/rcutil.h"
/* Macro to check if a regex_data_t pointer is valid */
diff --git a/libsbutil/src/string.c b/libsbutil/src/string.c
index 3e23417..4ebb61c 100644
--- a/libsbutil/src/string.c
+++ b/libsbutil/src/string.c
@@ -8,9 +8,7 @@
* Licensed under the GPL-2
*/
-#include <string.h>
-#include <stdlib.h>
-
+#include "headers.h"
#include "rcscripts/rcutil.h"
char *
diff --git a/src/environ.c b/src/environ.c
index 369ff02..67b3413 100644
--- a/src/environ.c
+++ b/src/environ.c
@@ -7,13 +7,7 @@
* Licensed under the GPL-2
*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <unistd.h>
-
+#include "headers.h"
#include "sbutil.h"
#include "sandbox.h"
diff --git a/src/sandbox.c b/src/sandbox.c
index 79fbe93..e40ebc3 100644
--- a/src/sandbox.c
+++ b/src/sandbox.c
@@ -11,17 +11,7 @@
* Copyright (C) 2002 Brad House <brad@mainstreetsoftworks.com>
*/
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <unistd.h>
-#include <fcntl.h>
-
+#include "headers.h"
#include "sbutil.h"
#include "sandbox.h"