case-sensitiveness of environment problem

egor duda
Tue Apr 17 09:53:00 GMT 2001


Tuesday, 17 April, 2001 Christopher Faylor wrote:

>>>>  if cygwin environment contains both 'Path' and 'PATH', creating
>>>>windows environment from it causes crash due to reallocating memory
>>>>object which is externally referenced. this patch fixes that.
>>>>i feel that we need a bit more tweaking with environment to deal with
>>>>it case-insensitiveness under win32.
>>CF> I don't think that this is due to case insensitivity as much as someone
>>CF> supplying a non-malloced PATH string.
>>it is. suppose we have cygwin environment containing

CF> You're right.  I really should have looked at the code more closely.

CF> I think we can solve this trivially by making getwinenv perform a
CF> case-sensitive comparison, though, can't we?  I think it probably should
CF> be case-sensitive anyway.

probably. but what if someone runs something nasty like this?

extern char** environ;

char* x[]= { "FOO=bar",
             0 };
char* arg[] = { "/bin/env", 0 };

main (int argc, char** argv)
  environ = x;
  execvp ( arg[0], arg );

i think external reference is a bad idea anyway.

Egor.   ICQ 5165414 FidoNet 2:5020/496.19

More information about the Cygwin-patches mailing list