The tunnel mode ra_svn data stream can be corrupted in two ways: * Dotfiles can output to stdout before svnserve runs. * Hook scripts can output to stdout, adding text to the middle of the data stream. When this happens, the user sees a cryptic "Malformed network data" error message. We can solve the second problem by closing stdout before invoking hook scripts, although doing this well may involve non-portable gook (FD_CLOEXEC). We can solve the first problem by introducing a guard at the beginning of the protocol (either just in tunnel mode or all the time); that is, the server would send something like "\n---svn datastream starts here---\n" before sending text. Or, we can introduce a guard for every communication ("svn:<length>:<data>" for every chunk of text sent, either just in tunnel mode or all the time).