receive-pack: do not send error details to the client
commit2ff4d1ab9ef6660c88020ddaadc410157e130cdc
authorJohannes Sixt <j6t@kdbg.org>
Sun, 21 Jun 2009 21:16:09 +0000 (21 23:16 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Jun 2009 03:19:21 +0000 (21 20:19 -0700)
treef825fb2a925e3301ace34dd1cd4de7706e6ecfb3
parent9462e3f59cd5a545330a9490a27d68b79f1d0ce7
receive-pack: do not send error details to the client

If the objects that a client pushes to the server cannot be processed for
any reason, an error is reported back to the client via the git protocol.
We used to send quite detailed information if a system call failed if
unpack-objects is run. This can be regarded as an information leak. Now we
do not send any error details like we already do in the case where
index-pack failed.

Errors in system calls as well as the exit code of unpack-objects and
index-pack are now reported to stderr; in the case of a local push or via
ssh these messages still go to the client, but that is OK since these forms
of access to the server assume that the client can be trusted. If
receive-pack is run from git-daemon, then the daemon should put the error
messages into the syslog.

With this reasoning a new status report is added for the post-update-hook;
untrusted (i.e. daemon's) clients cannot observe its status anyway, others
may want to know failure details.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-receive-pack.c