]> granicus.if.org Git - postgresql/commitdiff
Guard against bug in Solaris' bsearch(), per Michael Wildpaner.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 5 Dec 2003 15:50:31 +0000 (15:50 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 5 Dec 2003 15:50:31 +0000 (15:50 +0000)
src/backend/libpq/hba.c

index 450b207450a51dd58f782d3ad2cfdf55af62488e..b1b2f343eea1b1bd2864da633564838181887caa 100644 (file)
@@ -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,