summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-12-05 15:50:31 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-12-05 15:50:31 +0000
commita5ffa8fea4125a21fced438ab1598d5fbec1423d (patch)
tree53a6afec713fc56f1d140bc7e08abf686d8aaf7a /src
parenta5a68766e1d863c04089a4d0db67f1363ad1114a (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 450b207450a..b1b2f343eea 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/libpq/hba.c,v 1.117 2003/11/29 19:51:49 pgsql Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/hba.c,v 1.118 2003/12/05 15:50:31 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,