From: Johannes Sixt <j.sixt@viscovery.net>
To: Steffen Prohaska <prohaska@zib.de>
Cc: Junio C Hamano <gitster@pobox.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
git@vger.kernel.org, Dmitry Kakurin <Dmitry.Kakurin@gmail.com>
Subject: Re: [PATCH 3/3] Replace setenv(GIT_DIR_ENVIRONMENT, ...) with set_git_dir()
Date: Thu, 22 Nov 2007 10:58:46 +0100 [thread overview]
Message-ID: <474552D6.5060305@viscovery.net> (raw)
In-Reply-To: <52415F60-C080-4260-86CD-32A379482341@zib.de>
Steffen Prohaska schrieb:
> On Nov 22, 2007, at 8:52 AM, Junio C Hamano wrote:
>> I suspect that if there are even earlier callers than these
>> early parts in the codepaths (handle_options, enter_repo, and
>> setup_git_directory_gently), maybe these earlier callers are
>> doing something wrong. Logically, if you are somewhere very
>> early in the codepath that you can still change the value of
>> GIT_DIR, you shouldn't have assumed the unknown value of GIT_DIR
>> and cached locations relative to that directory, no? What are
>> the problematic callers? What values do they access and why?
>
>
> I thought about these questions, too. But only very briefly.
> I did not analyze the code path that lead to calls of getenv().
>
> I'm not sure if it's really necessary. Calling set_git_dir()
> looks more sensible too me than the old code. I believe using
> set_git_dir() is the safer choice, and should not do any harm.
> So I stopped analyzing too much, and instead proposed to use
> set_git_dir().
Junio's point is this: If we stumble over a dangling pointer that getenv()
produced, then this has obviously happened before setenv(GIT_DIR), and
caching that pointer is probably the wrong thing to do anyway (because it
refers to the wrong GIT_DIR) and needs to be fixed.
So the task is to find those traps. Dmitry obviously stumbled over one case,
but I haven't ever encountered any problems with the current code. But then
this might be sheer luck. And I'm not a heavy user of export GIT_DIR=foo,
either. Do *you* know a problematic case?
> Interesting, though, is to find out if we have other potentially
> dangerous calls to getenv() that are not removed by this patch.
Side note for other readers: This is a Windows specific problem for the
moment because its getenv() does not behave well.
-- Hannes
next prev parent reply other threads:[~2007-11-22 9:59 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-21 20:27 [PATCH 0/3] msysgit fallout Steffen Prohaska
2007-11-21 20:27 ` [PATCH 1/3] sha1_file.c: Fix size_t related printf format warnings Steffen Prohaska
2007-11-21 20:27 ` [PATCH 2/3] builtin-init-db: use get_git_dir() instead of getenv() Steffen Prohaska
2007-11-21 20:27 ` [PATCH 3/3] Replace setenv(GIT_DIR_ENVIRONMENT, ...) with set_git_dir() Steffen Prohaska
2007-11-22 1:22 ` Johannes Schindelin
2007-11-22 2:34 ` Junio C Hamano
2007-11-22 6:13 ` Steffen Prohaska
2007-11-22 7:52 ` Junio C Hamano
2007-11-22 8:31 ` Steffen Prohaska
2007-11-22 9:58 ` Johannes Sixt [this message]
2007-11-22 17:56 ` Steffen Prohaska
2007-11-22 22:09 ` Johannes Schindelin
2008-01-01 18:52 ` Steffen Prohaska
2008-01-03 4:07 ` Dmitry Kakurin
2008-01-03 6:02 ` Steffen Prohaska
2008-01-03 6:26 ` Dmitry Kakurin
2008-01-03 7:53 ` Steffen Prohaska
2007-11-22 7:29 ` Johannes Sixt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=474552D6.5060305@viscovery.net \
--to=j.sixt@viscovery.net \
--cc=Dmitry.Kakurin@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=prohaska@zib.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.