On Thu, 2002-12-12 at 13:13, Rudy Lippan wrote:
> I know this is a broken install, but postmaster should not segfault when
> it can't find a file.
>
> postgres@war PGDATA $ ../pgsql7.3/bin/postmaster
> LOG: load_hba: Unable to open authentication config file
> "/usr/local/PGDATA/pgsql7.3/pg_hba.conf": No such file or directory
> Segmentation fault (core dumped)
Good catch. Here's a patch against CVS HEAD that fixes the problem.
The actual segfault was caused by a double pfree(), but ISTM that
failing to find pg_hba.conf should be a fatal error anyway, so I
increased the priority of the elog() from LOG to FATAL and refactored
the code a little bit.
Bruce: unless anyone has an objection, please apply.
Thanks for the report.
Cheers,
Neil
Index: src/backend/libpq/hba.c
===================================================================
RCS file: /var/lib/cvs/pgsql-server/src/backend/libpq/hba.c,v
retrieving revision 1.90
diff -c -r1.90 hba.c
*** src/backend/libpq/hba.c 6 Dec 2002 04:37:02 -0000 1.90
--- src/backend/libpq/hba.c 12 Dec 2002 22:45:59 -0000
***************
*** 841,856 ****
file = AllocateFile(conf_file, "r");
if (file == NULL)
{
! /* The open of the config file failed. */
! elog(LOG, "load_hba: Unable to open authentication config file \"%s\": %m",
conf_file);
- pfree(conf_file);
- }
- else
- {
- hba_lines = tokenize_file(file);
- FreeFile(file);
}
pfree(conf_file);
}
--- 841,853 ----
file = AllocateFile(conf_file, "r");
if (file == NULL)
{
! elog(FATAL,
! "load_hba: Unable to open authentication config file \"%s\": %m",
conf_file);
}
+
+ hba_lines = tokenize_file(file);
+ FreeFile(file);
pfree(conf_file);
}
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]