aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: c8d1109078cedc9f8318cd3df0754b2a44a8728b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
try out tracing on *BSD and Solaris

trace static children of static children

cache results of filesystem checks

review erealpath vs realpath usage

wrappers for execl{,l,p} ... unfortunately, we'll probably have to basically
reimplement the functions (building up argv[] and then call the execv* ver)

erealpath() might deref symlinks when working with unreadable paths as non-root
even when working on funcs that do not deref funcs themselves ... this isnt a
real big issue though

threaded apps conflict with shared state:
 - sandbox_lib
 - sandbox_on
 - trace_pid
 - etc...

handle multiple processing writing to log simultaneously
 - could move log to a fifo that the main sandbox process would consume
 - not that big of a deal as log generally only gets written with failures

doesnt seem to work quite right:
	echo $(./vfork-0 ./mkdir_static-0 2>&1)

handle env var modification inside of traced apps

messaging still needs a little work.  consider:
 - user is running as root
 - user does `emerge foo`
 - emerge's stderr is connected to root's tty
 - FEATURES=userpriv is enabled so portage drops root
 - sandbox starts up and sets message path to its stderr
 - that path is owned by root only
 - attempts to open it by path fail with permission denied
really only way around this would be to have sandbox set up
a named pipe in $T and set the message path to that.  then
it would poll that for data and take care of writing it to
its open stderr.