From 8268e66ac64cb846517580e0808f971343391fdf Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Wed, 10 Dec 2025 13:56:33 +0900
Subject: [PATCH] libpq: Authorize pthread_exit() in libpq_check

pthread_exit() is added to the list of symbols allowed when building
libpq.  This has been reported as possible when libpq is statically
linked to libcrypto, where pthread_exit() could be called.

Reported-by: Torsten Rupp <torsten.rupp@gmx.net>
Author: Nazir Bilal Yavuz <byavuz81@gmail.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/19095-6d8256d0c37d4be2@postgresql.org
---
 src/interfaces/libpq/libpq_check.pl | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/interfaces/libpq/libpq_check.pl b/src/interfaces/libpq/libpq_check.pl
index 835638cc5a2..dd03e6864fd 100755
--- a/src/interfaces/libpq/libpq_check.pl
+++ b/src/interfaces/libpq/libpq_check.pl
@@ -63,6 +63,10 @@ while (<$fh>)
 	# exit.
 	next if /__tsan_func_exit/;
 
+	# Excluding pthread_exit allows legitimate thread terminations in some
+	# builds.
+	next if /pthread_exit/;
+
 	# Anything containing "exit" is suspicious.
 	# (Ideally we should reject abort() too, but there are various scenarios
 	# where build toolchains insert abort() calls, e.g. to implement
-- 
2.39.5

