diff options
author | Bruce Momjian <bruce@momjian.us> | 2004-03-20 15:39:40 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2004-03-20 15:39:40 +0000 |
commit | 21a7569b1a43d327551b2388a7f6e33e2477439f (patch) | |
tree | 0a9376b8ee837b4c9f03af27b98c8b5dd606ef14 /src | |
parent | 774571fd0878367378e5aed6083441a3ea3f3801 (diff) |
Handle draft version of getpwuid_r() that accepts only four arguments.
Backpatch to 7.4.X. Required for Solaris 7 & 8.
Diffstat (limited to 'src')
-rw-r--r-- | src/include/pg_config.h.in | 3 | ||||
-rw-r--r-- | src/port/thread.c | 13 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 4691b81da32..22765878856 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -43,6 +43,9 @@ (--enable-thread-safety) */ #undef ENABLE_THREAD_SAFETY +/* Define to 1 if getpwuid_r() takes a 5th argument. */ +#undef GETPWUID_R_5ARG + /* Define to 1 if gettimeofday() takes only 1 argument. */ #undef GETTIMEOFDAY_1ARG diff --git a/src/port/thread.c b/src/port/thread.c index 9c1b3f3167b..2c8efd95d25 100644 --- a/src/port/thread.c +++ b/src/port/thread.c @@ -7,7 +7,7 @@ * * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * - * $Id: thread.c,v 1.12.2.3 2004/03/14 14:01:54 momjian Exp $ + * $Id: thread.c,v 1.12.2.4 2004/03/20 15:39:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -107,14 +107,17 @@ pqGetpwuid(uid_t uid, struct passwd *resultbuf, char *buffer, size_t buflen, struct passwd **result) { #if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY) && defined(NEED_REENTRANT_FUNCS) && defined(HAVE_GETPWUID_R) + +#ifdef GETPWUID_R_5ARG + /* POSIX version */ + getpwuid_r(uid, resultbuf, buffer, buflen, result); +#else /* * Early POSIX draft of getpwuid_r() returns 'struct passwd *'. * getpwuid_r(uid, resultbuf, buffer, buflen) - * Do we need to support it? bjm 2003-08-14 */ - /* POSIX version */ - getpwuid_r(uid, resultbuf, buffer, buflen, result); - + result = getpwuid_r(uid, resultbuf, buffer, buflen); +#endif #else #if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY) && defined(NEED_REENTRANT_FUNCS) && !defined(HAVE_GETPWUID_R) |