/[path-sandbox]/trunk/libsandbox.c |
Parent Directory
|
Revision Log
Fix possible segfault in env init code.
Cleanup init_env_entries() and check_prefixes().
Add check_prefixes() with major cleanup on check_access().
Clean up logging in libsandbox.c, and hopefully make it more consistant.
Change log dir to /var/log/sandbox/. Make sure the sandboxed process cannot write to it.
Remove unused 'pids file' code.
Remove unused variables.
Label rename for clarity.
Cleanup the fail_nametoolong stuff a bit more.
Remove hopefully the last ld.so.preload bits we do not use anymore.
Remove the unneeded canonicalize() calls in the wrappers - we do it anyhow in check_syscall(). Should speed things up a bit (at least for the getcwd() and long path name test it goes down to under a second, and not 10+ seconds like before). Also warn if we skip checking due to the canonicalized path being too long.
More comment/readability cleanups
Some strncpy/strncat and other cleanups.
Move symlink hack down a bit to try and minimize on the amount of lstat() calls we do.
Add hack to allow writing to /proc/self/fd (or /dev/fd), bug #91516.
Add wrapper for access() function, bug #85413.
Make sure our true_* pointers are initialized to NULL, and that we check for all references that they are valid.
Be default we will fail if the path name we try to canonicalize is too long. This however could cause issues with some things (bug #94630 and #21766), so if fail_nametoolong == 0, canonicalize() will return a null length string and do not fail.
Whitespace fixes.
Fix incorrect free of non-malloc'd array, bug #92313 and #94020. Fix noted by Marcus D. Hanwell <cryos@gentoo.org>.
whitespace tweaks
General cleanups.
Various LD_PRELOAD cleanups. Do not unset LD_PRELOAD for parent.
Modify get_sandbox_pids_file(), get_sandbox_log() and get_sandbox_debug_log() to use TMPDIR if present in environment.
rewrote sbcontext caching so it accounts for env changes since lib initialization.
Add rename support of symlinks pointing to protected files/directories.
Do not reset already set LD_PRELOAD when starting sandbox. If LD_PRELOAD is already set, init of the env vars fails for some reason, so do this later on, and do not warn (bug #91431).
Do not init the env entries with each call, as it creates too many calls to lstat, etc. Should speedup things a bit.
Do not append '/' to pathname in filter_path() if it already ends with it.
Only check for /dev/{null,zero} for unlink hack, else ricers using /dev/shm have issues; bug #90592.
Make sure all functions used in libsandbox.c is declared static. Define SB_STATIC in localdecls.h for this. Include sandbox_futils.c rather than linking with its object. Hopefully this will fix bug #90153.
Allow lchown a symlink in write-allowed path pointing to write-denied target.
show resolved symlinks in log
Seems -nostdlib was the problem with the constructor/destructor - remove it from Makefile.am, and change the constructor/destructor names again.
Also rename the _init() and _fini() declarations.
Fixup the constructor/destructor function names again (they should be _init() and _fini() it seems, and not being called caused sandbox_lib_path to be unset, and thus breaking the execve() wrapper's LD_PRELOAD protection). Add both the path in given SANDBOX_x variable, as well as its symlink resolved path in init_env_entries(). Modify filter_path() to be able to resolve paths without resolving symlinks, as well as to be able to resolve symlinks. Fix a possible segfault in check_access(). Add symlink resolving to check_access() resolving bug #31019. Add 'hack' for unlink, as the fix for bug #31019 cause access violations if we try to remove a symlink that is not in protected path, but points to a protected path. Fix a memory leak in sandbox.c (sandbox_pids_file in main()). Fix the realpath() calls in main() (sandbox.c) being unchecked. Fix the debug logname not having the pid in it (pid_string was uninitialized). General syntax cleanups.
Hack to make sure sandboxed process cannot remove a device node, bug #79836.
White space fixes.
Fix inverse test logic in canonicalize.c, use a strncpy. Fix gcc warning in getcwd.c. Add symbols.in and logic to Makefile.am to generate symbol versions for glibc and other libc's that use this. Update libsandbox.c to use these symbol versions if available. Fix exec wrapper to re-export LD_PRELOAD if the process unset it.
killed off _init and _fini in favor of void __attribute__ ((constructor)) init_func and void __attribute__ ((destructor)) closing_func. _(init|func) were deprecated.
hopefully cvs is done being stupid. Compilation fixes, along w/ make dist fix.
compilation fixups.
should make things compile again
need to include config.h
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.20 |