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

index 30b2371593af9144753134f05d3a68a4029dc734..d77ae5b830ceab3c90ee89bc856555525b350eb5 100644 (file)
@@ -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,