Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/lib

Module Name:    src
Committed By:   pooka
Date:           Mon Feb 14 14:56:23 UTC 2011

Modified Files:
        src/lib/librumpclient: rumpclient.c rumpclient.h
        src/lib/librumphijack: hijack.c
        src/lib/librumpuser: sp_common.c

Log Message:
A bunch of changes which essentially make sshd work with a hijacked
rump tcp/ip stack:

* sshd likes to fork and then re-exec itself
  ==> trap execve() and augment the env with the current parameters
      essential to a rump kernel (kernel communication fd, information
      about dup2'd file descriptors)

* sshd likes to play lots of games with pipes, socketpairs and dup{,2}()
  ==> make sure we do not close essential rump client descriptors:
      dup() them to a safe place, except for F_CLOSEM where we
      simply leave them alone.  also, partially solved by the above,
      make sure the process's set of rump kernel descriptors persists
      over exec()

* sshd likes to chdir() before exec
  ==> for unix-style rump_sp(7) sockets save the full path on the
      initial exec and use it afterwards.  thread the path through
      the environment in execve()

To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/lib/librumpclient/rumpclient.c
cvs rdiff -u -r1.5 -r1.6 src/lib/librumpclient/rumpclient.h
cvs rdiff -u -r1.38 -r1.39 src/lib/librumphijack/hijack.c
cvs rdiff -u -r1.26 -r1.27 src/lib/librumpuser/sp_common.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index