Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com From: Chris Faylor Date: Sun, 16 Jul 2000 11:54:13 -0400 To: Cygwin Subject: Re: environ problem Message-ID: <20000716115413.C11176@cygnus.com> Reply-To: cygwin AT sources DOT redhat DOT com Mail-Followup-To: Cygwin References: <003a01bfeef3$83f81340$50241004 AT homepc DOT freedsl DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2i In-Reply-To: <003a01bfeef3$83f81340$50241004@homepc.freedsl.com>; from avr_fan@nettaxi.com on Sat, Jul 15, 2000 at 11:50:35PM -0700 On Sat, Jul 15, 2000 at 11:50:35PM -0700, Dave Arnold wrote: >I don't know a darn thing about POSIX but I do know that I tried using >getenv() and also had access violations and other similar hangups. > >Do these functions work at all with cygwin? They are supposed to work. Do you honestly think that we'd release code that intentionally gives access violations? Or, if you think that the environ stuff is trivially broken, then how do you suppose the various shells manage to manipulate their environment? If you have test cases that illustrate breakage in getenv/putenv then please post them and we'll make it a top priority to fix this problem, assuming that you're not doing something like the below which tries to do something exceedingly weird with the environ pointer. cgf >-----Original Message----- >From: Mark Weaver >To: Cygwin >Date: Monday, July 10, 2000 8:12 AM >Subject: environ problem > > >>I am currently in the process of a sendmail port to NT, based on cygwin. I >>have discovered that sendmail internally modifies environ, and then uses >>putenv to modify the resulting environment (sample code that I abstracted >>attached below) - doing this causes cygwin compiled programs to crash (due >>in fact to an overwrite of the import address table). (The crash might not >>be immediate; a number of putenv calls are sometimes required for the >>appropriate chunk of memory to be overwritten). >> >>Before I `fix' this behaviour, does POSIX allow for modifying environ? And >>even if it doesn't, then is the practice widespread enough for it to be >>worth supporting? (i.e. should I fix cygwin or sendmail!) >> >>Thanks, >> >>Mark >> >>code snippet: >> >>int main() >>{ >> char *emptyenviron[1]; >> char** ExternalEnviron; >> >> emptyenviron[0] = NULL; >> ExternalEnviron = environ; >> environ = emptyenviron; >> >> putenv("AGENT=sendmail"); // access violation here >> return 1; >>} -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com