/usr/ports/infrastructure/db/systrace.filter has these: native-recvmsg: permit native-sendmsg: sockaddr match "/tmp" then permit native-sendmsg: sockaddr match "/var/tmp" then permit native-sendmsg: sockaddr match "/tmp" then permit native-sendmsg: sockaddr match "/usr/ports/pobj/unzip-6.0" then permit native-sendmsg: sockaddr match "/<non-existent filename>: *" then deny[enoent]
We could add this I think: native-sendmsg: sockaddr eq "<unknown>" then permit On Thu, Jun 04, 2015 at 10:47:47PM +0100, Nicholas Marriott wrote: > Hi > > On Thu, Jun 04, 2015 at 03:39:45PM -0600, Theo de Raadt wrote: > > > Is it just to avoid adding sendmsg to the ports systrace policy? Why not > > > add it - maybe not globally but just for file? > > > > sendmsg with a CMSG fd passing in/out of such a jail is a bad thing. > > The systrace policy already allows recvmsg(). So we can get new fds in, > why not send them out? > > Any fd we have inside to send out will have had to have passed the > open(), bind() etc systrace rules already. > > > > > However. > > > > It is likely that a ports configure test may try to test this interface. > > Not just CMSG, but sendmsg itself. > > > > It suspect it needs to find that it works. > > > > I doubt this is a system call that can be blocked. > > > > It sounds like a great idea to limit the build environment substantially, > > but an eye must be kept on fallout from being too strict. That's the > > problem with systrace; it is too easy to return an 'error' and a program > > will continue... > >