summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-12-05 15:50:39 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-12-05 15:50:39 +0000
commit88ae594bde5383b3ff6acf5d1a4bf5e6abcac1a4 (patch)
treec09ef3aba62a6db2c19d8cce3201f2731ae5ef47 /src
parent1a1485115ed8384b579dfe503a3e114c67b19405 (diff)
Guard against bug in Solaris' bsearch(), per Michael Wildpaner.
Diffstat (limited to 'src')
-rw-r--r--src/backend/libpq/hba.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index 5ac2610ac78..6b32c342140 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.116 2003/10/25 03:48:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.116.2.1 2003/12/05 15:50:39 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -381,6 +381,10 @@ user_group_bsearch_cmp(const void *user, const void *list)
static List **
get_group_line(const char *group)
{
+ /* On some versions of Solaris, bsearch of zero items dumps core */
+ if (group_length == 0)
+ return NULL;
+
return (List **) bsearch((void *) group,
(void *) group_sorted,
group_length,
@@ -392,9 +396,13 @@ get_group_line(const char *group)
/*
* Lookup a user name in the pg_shadow file
*/
-List **
+List **
get_user_line(const char *user)
{
+ /* On some versions of Solaris, bsearch of zero items dumps core */
+ if (user_length == 0)
+ return NULL;
+
return (List **) bsearch((void *) user,
(void *) user_sorted,
user_length,