diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-12-05 15:50:39 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-12-05 15:50:39 +0000 |
commit | 88ae594bde5383b3ff6acf5d1a4bf5e6abcac1a4 (patch) | |
tree | c09ef3aba62a6db2c19d8cce3201f2731ae5ef47 /src | |
parent | 1a1485115ed8384b579dfe503a3e114c67b19405 (diff) |
Guard against bug in Solaris' bsearch(), per Michael Wildpaner.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/libpq/hba.c | 12 |
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, |