Commit Graph

159 Commits

Author SHA1 Message Date
Simon Ruderich
db7cd10c74 configure.ac: strdup() is no longer used, dup2() is optional. 2013-06-10 16:54:11 +02:00
Simon Ruderich
d4f585e078 configure.ac: Minor style fix. 2013-06-10 16:22:09 +02:00
Simon Ruderich
357a499884 configure.ac: Add --enable-warnings.
Enables warning() messages without the overhead of all debug output.
2013-06-10 16:18:35 +02:00
Simon Ruderich
afca2864dc tests: Fix warnings about unused parameters. 2013-06-10 15:22:17 +02:00
Simon Ruderich
2f1aa1cdd3 Only run vfork() tests if it's available. 2013-06-10 15:16:21 +02:00
Simon Ruderich
b75b0ec399 Rename __noinline/__always_inline to prevent clash with headers.
With this change noinline can be used in ldpreload.h.
2013-06-10 14:55:13 +02:00
Simon Ruderich
488159627f Prevent inlining for more functions.
Clang is inlining quite aggressively.
2013-06-10 14:11:04 +02:00
Simon Ruderich
428e15bf68 Prevent inlining of handle_*_pre/post() functions. 2013-06-10 14:05:51 +02:00
Simon Ruderich
f3bda26e82 Don't mark init_pre_post_string() as inline. 2013-06-10 14:05:51 +02:00
Simon Ruderich
86352712fd Fix save/restore of errno for isatty(). 2013-06-10 14:05:51 +02:00
Simon Ruderich
0a2617527c Inline fast part of tracked_fds_find(). 2013-06-10 14:05:51 +02:00
Simon Ruderich
048bd6f9e7 Use likely()/unlikely() macros to improve branch prediction. 2013-06-10 14:05:51 +02:00
Simon Ruderich
9862b8c8f1 Inline check_handle_fd() into hook macros.
It's very small and prologue/epilogue have a lot of overhead.
2013-06-10 14:05:51 +02:00
Simon Ruderich
c7f6f13de0 configure.ac: Compile with -Wall -Wextra -Wconversion. 2013-06-10 14:05:50 +02:00
Simon Ruderich
3773b830ba ldpreload.h: Split macro into function and macro. 2013-06-10 14:05:50 +02:00
Simon Ruderich
dfd317650f Remove errno save/restore where not necessary. 2013-06-10 14:05:45 +02:00
Simon Ruderich
fe3f7d4c63 handle_*_pre(),handle_*_post(): Remove unused action parameter. 2013-06-10 04:53:30 +02:00
Simon Ruderich
30876b212c constants.h: Use "\033" instead of the non-standard "\e". 2013-06-09 16:26:36 +02:00
Simon Ruderich
bcd5f79080 Remove unused hook puts_unlocked().
This function doesn't exist (yet).
2013-06-07 02:06:57 +02:00
Simon Ruderich
06f483dbee Fix a few strict compiler warnings. 2013-06-07 02:01:23 +02:00
Simon Ruderich
7691b7aa1a trackfds.h: Remove incorrect debug output. 2013-06-07 01:59:27 +02:00
Simon Ruderich
31a1fdf921 Use char const * instead of const char *.
char const * is more consistent with char * const.
2013-06-07 01:56:02 +02:00
Simon Ruderich
c2097785e7 Use static list of descriptors to reduce mallocs.
Only if file descriptors with a value > 255 occur, the list
implementation is used.
2013-06-07 01:27:58 +02:00
Simon Ruderich
5c8b5233fb tests: Run tests under valgrind if it's available. 2013-06-07 01:17:42 +02:00
Simon Ruderich
7337375e05 Add warning() and use it in DEBUG mode. 2013-06-07 00:58:16 +02:00
Simon Ruderich
51377106d1 Rename tracked_fds_* tracked_fds_list_*. 2013-06-06 20:44:10 +02:00
Simon Ruderich
5af5f0faa2 debug.h: Minor code style fix. 2013-06-06 20:13:04 +02:00
Simon Ruderich
7f9856c5da Hook error() and error_at_line() if available.
They are used by some GNU programs to display error messages.
2013-06-05 23:57:05 +02:00
Simon Ruderich
b140cc0a82 coloredstderr.c: Use #include <config.h>.
This ensures that config.h from the build directory is preferred over a
possible file of the same name in the source directory.
2013-06-05 18:11:33 +02:00
Simon Ruderich
4d10935aee check_handle_fd(): Reduce calls to isatty(). 2013-06-05 03:33:08 +02:00
Simon Ruderich
feff94de6b trackfds.h: Remove unnecessary strdup(). 2013-06-05 03:16:59 +02:00
Simon Ruderich
7ea72c40db Hook execve() and the other exec*() functions.
Prevents programs from removing our environment variables during the
exec.

Also reduces unnecessary calls to update_environment() by calling it
only once before the exec.
2013-06-05 01:40:56 +02:00
Simon Ruderich
a9db9083b6 Minor documentation updates. 2013-06-05 01:07:47 +02:00
Simon Ruderich
374b11a314 tests: Also run tests in subshell with LD_PRELOAD set. 2013-06-05 01:06:10 +02:00
Simon Ruderich
76742316e8 trackfds.h: Fix realloc() in update_environment(). 2013-06-05 00:57:26 +02:00
Simon Ruderich
d475e5ec89 Improve debug output. 2013-06-05 00:53:55 +02:00
Simon Ruderich
df4c9eab97 trackfds.h: Fix invalid write if tracked_fds_count is 0.
Also fixes missing initialization of env array.
2013-06-04 03:34:19 +02:00
Simon Ruderich
b22a078b8d configure.ac: Don't require special versions of malloc/realloc. 2013-06-03 22:35:51 +02:00
Simon Ruderich
dbafded223 configure.ac: Reorder macros to follow convention. 2013-06-03 22:18:16 +02:00
Simon Ruderich
7c5d6fce3a Only hook vfork() if it's available. 2013-06-03 21:59:57 +02:00
Simon Ruderich
66fb589680 debug.h: Handle overflow in debug(). 2013-06-03 04:32:12 +02:00
Simon Ruderich
686bf50bcd trackfds.h: Handle overflow in update_environment(). 2013-06-03 04:28:43 +02:00
Simon Ruderich
7108005fff tests: Use <STDERR< and >STDERR> as markers.
Increases contrast to "stderr" output string.
2013-06-02 23:41:31 +02:00
Simon Ruderich
e091b977de tests: Use bash to get consistent test results. 2013-06-02 23:39:14 +02:00
Simon Ruderich
e362a42f56 COPYING: Add, GPL 3. 2013-06-02 18:40:39 +02:00
Simon Ruderich
1c5441c26a Hook vfork() and replace it with fork(). 2013-06-02 18:25:49 +02:00
Simon Ruderich
66140e14e4 hookmacros.h: Be more careful to restore the errno.
check_handle_fd() or handle_fd_pre() might also modify it.
2013-06-01 22:47:23 +02:00
Simon Ruderich
73870d5ed5 hookmacros.h: Reduce duplication in HOOK_VOID1(). 2013-06-01 22:44:22 +02:00
Simon Ruderich
ad50ad9c54 Hook perror(3). 2013-06-01 22:08:45 +02:00
Simon Ruderich
b34a8ce50b configure.ac: Require libtool 2.4. 2013-06-01 21:55:10 +02:00