Skip to content

Commit b94c6c6

Browse files
committed
libpq: Report strerror on pthread_mutex_lock() failure
1 parent cbb565f commit b94c6c6

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/interfaces/libpq/fe-secure.c

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,14 +257,18 @@ pqsecure_open_client(PGconn *conn)
257257
/* First time through? */
258258
if (conn->ssl == NULL)
259259
{
260+
#ifdef ENABLE_THREAD_SAFETY
261+
int rc;
262+
#endif
263+
260264
/* We cannot use MSG_NOSIGNAL to block SIGPIPE when using SSL */
261265
conn->sigpipe_flag = false;
262266

263267
#ifdef ENABLE_THREAD_SAFETY
264-
if (pthread_mutex_lock(&ssl_config_mutex))
268+
if ((rc = pthread_mutex_lock(&ssl_config_mutex)))
265269
{
266270
printfPQExpBuffer(&conn->errorMessage,
267-
libpq_gettext("unable to acquire mutex\n"));
271+
libpq_gettext("could not acquire mutex: %s\n"), strerror(rc));
268272
return PGRES_POLLING_FAILED;
269273
}
270274
#endif
@@ -1116,10 +1120,12 @@ initialize_SSL(PGconn *conn)
11161120
* SSL_context struct.
11171121
*/
11181122
#ifdef ENABLE_THREAD_SAFETY
1119-
if (pthread_mutex_lock(&ssl_config_mutex))
1123+
int rc;
1124+
1125+
if ((rc = pthread_mutex_lock(&ssl_config_mutex)))
11201126
{
11211127
printfPQExpBuffer(&conn->errorMessage,
1122-
libpq_gettext("unable to acquire mutex\n"));
1128+
libpq_gettext("could not acquire mutex: %s\n"), strerror(rc));
11231129
return -1;
11241130
}
11251131
#endif
@@ -1334,10 +1340,12 @@ initialize_SSL(PGconn *conn)
13341340
X509_STORE *cvstore;
13351341

13361342
#ifdef ENABLE_THREAD_SAFETY
1337-
if (pthread_mutex_lock(&ssl_config_mutex))
1343+
int rc;
1344+
1345+
if ((rc = pthread_mutex_lock(&ssl_config_mutex)))
13381346
{
13391347
printfPQExpBuffer(&conn->errorMessage,
1340-
libpq_gettext("unable to acquire mutex\n"));
1348+
libpq_gettext("could not acquire mutex: %s\n"), strerror(rc));
13411349
return -1;
13421350
}
13431351
#endif

0 commit comments

Comments
 (0)