Re: [PATCH, maint] setup: make sure git_dir path is in a permanent buffer, getenv(3) case

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

 



On Fri, Nov 12, 2010 at 10:03:32AM -0600, Jonathan Nieder wrote:
> Kirill Smelkov wrote:
> 
> >     static void run_service(const char **argv)
> >     {
> >             const char *encoding = getenv("HTTP_CONTENT_ENCODING");
> >             const char *user = getenv("REMOTE_USER");
> >             const char *host = getenv("REMOTE_ADDR");
> > 
> > 
> > etc...
> > 
> > 
> > To me, it's very unfortunate that subsequent getenv() could overwrite
> > previous getenv() result, but according to `man 3 getenv` all these
> > places are buggy.
> 
> Right, but do we know of any platforms that work that way currently?

I don't. Actually I was really surprised after reading getenv manual
about that.

> We could make getenv() rotate between a few buffers on such platforms
> (probably 10 or so would take care of the longest runs).

I think it would be hard to get right (is 10 enough? on which platform?
this rarely happens after all...), and also why introduce special case?

> > Maybe we'll need something like our own xgetenv() which will keep vars
> > in some kind of hash tab so that get/put on other vars do not interfere
> > with what was originally returned by xgetenv().
> 
> For examples that store the result like you pointed out (which store the
> result from getenv), something like that would be needed if we want
> them to work on platforms where putenv shifts everything.
> 
> > Unfortunately I can't afford myself to dive into all this, so please
> > choose what you like more.
> 
> I think we ought to fix this properly in the end.  But if you want a
> quick workaround, maybe the vcs-svn/string_pool lib could help you.

No, I'm not in a hurry - better to fix this properly. Though personally,
I've already scratched my itch here.


Thanks,
Kirill
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]