From: Daniel Gustafsson Date: Tue, 30 Nov 2021 22:23:57 +0000 (+0100) Subject: Extend the private key stat checking error handling X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=538724fc36e05339ea3734f1b886a67398fce71a;p=users%2Frhaas%2Fpostgres.git Extend the private key stat checking error handling If the stat operation on the private key failed, the code assumed it was due to an ENOENT, which may or may not be true. Extend the check by printing a different error message on non-ENOENT errors for easier debugging. Per suggestion by Tom Lane due to an issue with the fairywren animal in the buildfarm. Discussion: https://postgr.es/m/1632478.1638305700@sss.pgh.pa.us --- diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c index a90d891c6c..33f095c12e 100644 --- a/src/interfaces/libpq/fe-secure-openssl.c +++ b/src/interfaces/libpq/fe-secure-openssl.c @@ -1235,9 +1235,14 @@ initialize_SSL(PGconn *conn) if (stat(fnbuf, &buf) != 0) { - appendPQExpBuffer(&conn->errorMessage, - libpq_gettext("certificate present, but not private key file \"%s\"\n"), - fnbuf); + if (errno == ENOENT) + appendPQExpBuffer(&conn->errorMessage, + libpq_gettext("certificate present, but not private key file \"%s\"\n"), + fnbuf); + else + appendPQExpBuffer(&conn->errorMessage, + libpq_gettext("could not stat private key file \"%s\": %m\n"), + fnbuf); return -1; } #ifndef WIN32