Simon Ruderich
f78c0377c1
Prevent crash in execve() if env is NULL
2018-02-01 21:40:02 +01:00
Simon Ruderich
545c6af1da
Update copyright year
2018-02-01 21:10:46 +01:00
Simon Ruderich
8a65b4486f
update copyright year
2015-08-28 12:25:36 +02:00
Simon Ruderich
3676d3f21f
vfork(): fix incorrect comment
2014-11-15 18:35:05 +01:00
Simon Ruderich
733e149c1a
fix typos in comments
2014-06-22 18:24:49 +02:00
Simon Ruderich
b6d1dc09b6
handle_recursive: fix race condition if threads are used
...
Requires thread-local storage.
Another solution would be a mutex, but this is slower and more
complicated and might cause issues with some programs.
2014-04-08 14:38:01 +02:00
Simon Ruderich
f54cd101d7
Update copyright year.
2014-01-01 16:41:01 +01:00
Simon Ruderich
39d313d1d4
Fix error_at_line() not always exiting if status != 0.
...
Also add tests.
2014-01-01 16:37:48 +01:00
Simon Ruderich
ac9101941e
Add likely() to tracked_fds_find().
2013-09-15 00:15:50 +02:00
Simon Ruderich
73a6c78e7b
Remove unnecessary check in handle_*_pre().
...
init_pre_post_string() sets both pre_string and post_string, so checking
only one suffices.
2013-09-15 00:10:45 +02:00
Simon Ruderich
291a143267
Remove unnecessary if in init_from_environment().
2013-07-21 14:25:54 +02:00
Simon Ruderich
08e7324497
constants.h: Fix indentation.
2013-07-07 14:43:29 +02:00
Simon Ruderich
b950cdb792
Add COLORED_STDERR_IGNORED_BINARIES to exclude binaries.
2013-07-07 13:33:44 +02:00
Simon Ruderich
9ff0ffbd28
Add missing assert() to init_from_environment().
2013-07-07 12:54:59 +02:00
Simon Ruderich
2241f5278e
Handle recursive calls of handle_*_{pre,post}() functions.
2013-07-01 03:23:50 +02:00
Simon Ruderich
d49cd5d92a
Also hook un-macroed putc when it's a macro.
...
The macro might define it to something else, but the non-macro version
is also used in some cases, e.g. in gcc 4.8's collect2 on Debian with
eglibc 2.17-7.
2013-06-30 22:14:33 +02:00
Simon Ruderich
afa1ef98fe
Restore environment for execvpe() if the exec fails.
2013-06-29 23:24:04 +02:00
Simon Ruderich
d08a512806
Set DEFAULT_PRE_STRING to red.
...
Bright red doesn't work in GNU/Linux's console.
2013-06-29 23:24:03 +02:00
Simon Ruderich
2fc66e15eb
Improve checks for invalid file descriptors.
...
Just in case a real dup*() or fcntl() doesn't return -1 on error, but
something like -2.
2013-06-21 23:03:12 +02:00
Simon Ruderich
0d7f306898
Overwrite tracked file descriptors when exporting COLORED_STDERR_FDS.
...
If the list of tracked file descriptors is modified to contain unwanted
values (e.g. when a parent process closes or redirects stderr), this
makes it possible to set the tracked file descriptors back to a given
list.
This problem occurred with startx which somehow closes or redirects
stderr. As COLORED_STDERR_FDS was set in the shell running startx, this
disabled coloring stderr for all processes started in the X11 session.
This is no longer an issue. As COLORED_STDERR_FDS is set in the shell
configuration file, it automatically sets the list to the correct value
when a shell is opened in the terminal emulator once X11 is running.
2013-06-21 23:03:12 +02:00
Simon Ruderich
045ca46e79
Hook __swbuf() on FreeBSD.
...
Coloring works fine now on FreeBSD (with some minor issues). Tests still
fail though.
2013-06-20 23:33:27 +02:00
Simon Ruderich
ba2283bd37
Remove invalid assert() in tracked_fds_find().
2013-06-20 23:17:03 +02:00
Simon Ruderich
f3c734eb7d
configure.ac: Check if __overflow() is available.
2013-06-20 22:14:42 +02:00
Simon Ruderich
b0c02291be
Hook __overflow() correctly.
...
It takes a FILE * and must be hooked with HOOK_FILE*().
2013-06-20 22:13:04 +02:00
Simon Ruderich
4eb55ac071
{fwrite,fputs,fputc}_unlocked() are not in POSIX.
...
Define fwrite_unlocked(), fputs_unlocked() and fputc_unlocked() only if
they are available on the system.
2013-06-20 20:56:51 +02:00
Simon Ruderich
cfad8a624c
Update documentation.
2013-06-18 00:07:03 +02:00
Simon Ruderich
a63fef43c2
Add missing #include <sys/stat.h>.
2013-06-17 23:26:00 +02:00
Simon Ruderich
a58d1a9017
Mark hooked functions as visibility(("protected")).
2013-06-15 03:36:50 +02:00
Simon Ruderich
ca12529c8f
hookmacros.h: Reduce duplication in macros.
...
Also preparation to add attributes to function declarations.
2013-06-15 03:23:53 +02:00
Simon Ruderich
941370dda9
Hook BSD err(), errx(), warn(), warnx(), etc. functions.
...
err(), errx(), warn(), warnx(), verr(), verrx(), vwarn(), vwarnx() are
hooked.
2013-06-15 02:39:52 +02:00
Simon Ruderich
1068648718
Minor documentation update.
2013-06-15 02:21:27 +02:00
Simon Ruderich
0a909cac79
Use locally defined functions in hooks where possible.
...
Don't create a hook and call the "real" function when it's enough to
call an existing hook for this function.
2013-06-15 01:58:36 +02:00
Simon Ruderich
217e8c8bc5
Define real_*() static variables with macros.
2013-06-15 00:54:46 +02:00
Simon Ruderich
18d52b3b5a
Install libcoloredstderr.so read-only.
...
Prevents accidental truncates of libcoloredstderr.so with `cp` which
crash all programs which have loaded it.
2013-06-14 13:40:06 +02:00
Simon Ruderich
1d1b6d7769
Remove duplicate code in init_from_environment().
2013-06-13 22:15:49 +02:00
Simon Ruderich
45d25526c0
Minor documentation updates.
2013-06-13 22:15:09 +02:00
Simon Ruderich
3d46e3ab9b
Add missing const and document where it can't be used.
2013-06-13 22:13:16 +02:00
Simon Ruderich
59375c2b79
Fix possible memory overwrite in init_from_environment().
...
It was possible for a user to overwrite memory at a relative location
with 1 by passing a negative file descriptor.
2013-06-13 22:08:08 +02:00
Simon Ruderich
f30dbbd26d
Add more error checks.
2013-06-13 21:56:50 +02:00
Simon Ruderich
e5a94fa847
Remove unnecessary calls to update_environment() in exec*().
2013-06-13 21:50:51 +02:00
Simon Ruderich
1e02760898
constants.h: Fix indentation.
2013-06-13 21:45:19 +02:00
Simon Ruderich
7eb1667d41
ldpreload.h: Add missing unlikely() in DLSYM_FUNCTION().
2013-06-13 21:44:55 +02:00
Simon Ruderich
0ad5e4db04
hookmacros.h: Remove duplication in _HOOK_PRE_FD_/_HOOK_PRE_FILE.
2013-06-13 21:44:55 +02:00
Simon Ruderich
d171e6bbec
trackfds.h: Add missing inline for consistency.
2013-06-13 21:34:29 +02:00
Simon Ruderich
6d6ad4423a
Add assert()s.
2013-06-13 21:33:27 +02:00
Simon Ruderich
37cb5686de
Handle invalid arguments to close()/fclose() better.
2013-06-13 21:19:15 +02:00
Simon Ruderich
7adfbfd2cf
Fix hook for putc_unlocked() with glibc.
...
putc_unlocked() is a macro which expands to __overflow() in some cases.
2013-06-13 12:59:12 +02:00
Simon Ruderich
52b4e91146
hookmacros.h: Minor style fix.
2013-06-13 01:27:45 +02:00
Simon Ruderich
9af3c2c727
Add another debug() print to init_from_environment().
2013-06-10 22:25:31 +02:00
Simon Ruderich
779ba750f7
Fix compilation with clang.
2013-06-10 21:27:12 +02:00