Re: Problem Building Cygwin PostgreSQL
От | Jason Tishler |
---|---|
Тема | Re: Problem Building Cygwin PostgreSQL |
Дата | |
Msg-id | 20000922155051.A2515@DP обсуждение исходный текст |
Ответ на | Problem Building Cygwin PostgreSQL (Jason Tishler <Jason.Tishler@dothill.com>) |
Ответы |
Re: Re: Problem Building Cygwin PostgreSQL
|
Список | pgsql-ports |
Earnie, On Fri, Sep 22, 2000 at 11:01:25AM -0700, Earnie Boyd wrote: > Hmm... This appears that it would potentially cause a memory leak. What > happens if instead of this patch you initialize the pointer to NULL? I guess that I should have giving more context: void usage(void) { ... user = getenv("USER"); if (!user) { #ifndef WIN32 pw = getpwuid(geteuid()); if (pw) user = pw->pw_name; ... #else user = "?"; #endif } ... #if !defined(WIN32) && !defined(__CYGWIN__) if (pw) free(pw); #endif } The relevant Cygwin source (i.e., src/winsup/cygwin/passwd.cc) and the getpwuid() man page (from Solaris): The functions getpwnam(), getpwuid(), getpwent(), and fgetpwent() use *static* storage that is re-used in each call, making these routines unsafe for use in multithreaded appli- cations. seemed to indicate that free-ing the return value from getpwuid() was a bad idea. Can someone confirm or refute this supposition? Thanks, Jason -- Jason Tishler Director, Software Engineering Phone: +1 (732) 264-8770 x235 Dot Hill Systems Corporation Fax: +1 (732) 264-8798 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com Hazlet, NJ 07730 USA WWW: http://www.dothill.com
В списке pgsql-ports по дате отправления: