Re: [PATCH v2] Allow git-shell to be used as a ssh forced-command
On Tue, Apr 21, 2009 at 07:43:06AM +0200, Mike Hommey wrote:
Show 26 quoted lines
> When using a forced-command, OpenSSH sets the SSH_ORIGINAL_COMMAND
> variable to what would otherwise be passed to $SHELL -c. When this
> variable is set and git-shell was given no argument, we use it.
>
> Signed-off-by: Mike Hommey <mh@glandium.org>
> ---
> shell.c | 9 +++++++--
> 1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/shell.c b/shell.c
> index b968be7..86c9273 100644
> --- a/shell.c
> +++ b/shell.c
> @@ -72,11 +72,16 @@ int main(int argc, char **argv)
> /*
> * We do not accept anything but "-c" followed by "cmd arg",
> * where "cmd" is a very limited subset of git commands.
> + * If no argument is given at all, see whether we were run from
> + * a ssh forced-command and use the original command if so.
> */
> else if (argc != 3 || strcmp(argv[1], "-c"))
> - die("What do you think I am? A shell?");
> + if (argc != 1 || !(prog = getenv("SSH_ORIGINAL_COMMAND")))
> + die("What do you think I am? A shell?");
> +
> + if (!prog)It appears to me that 'prog' may be used unitialized here.
Dmitry