From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.linux.lib.musl.general/22175 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Markus Wichmann Newsgroups: gmane.linux.lib.musl.general Subject: Re: [PATCH] __libc_exit_fini forgets to do pthread_mutex_unlock Date: Wed, 2 Jul 2025 06:30:33 +0200 Message-ID: References: <20250702022854.30301-1-rebecca.zhang.cn@windriver.com> Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23036"; mail-complaints-to="usenet@ciao.gmane.io" Cc: rebecca.zhang.cn@windriver.com, wenbin.deng.cn@windriver.com To: musl@lists.openwall.com Original-X-From: musl-return-22195-gllmg-musl=m.gmane-mx.org@lists.openwall.com Wed Jul 02 06:31:01 2025 Return-path: Envelope-to: gllmg-musl@m.gmane-mx.org Original-Received: from second.openwall.net ([193.110.157.125]) by ciao.gmane.io with smtp (Exim 4.92) (envelope-from ) id 1uWp7c-0005qM-FY for gllmg-musl@m.gmane-mx.org; Wed, 02 Jul 2025 06:31:00 +0200 Original-Received: (qmail 27931 invoked by uid 550); 2 Jul 2025 04:30:50 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: x-ms-reactions: disallow Original-Received: (qmail 27894 invoked from network); 2 Jul 2025 04:30:50 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1751430637; x=1752035437; i=nullplan@gmx.net; bh=tsZZDYwNhv9TL62jS+LsQSFCA8DAj1qjLYCjMomkB6g=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:Message-ID:References: MIME-Version:Content-Type:In-Reply-To:Content-Transfer-Encoding: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=eHp21jrehUuJP0rG0hmEvWm13ouEX17751zs+nu0U3T4SRG+8m274fr20N3ok8cX NqoOhTUHM0/va6ZtbwCad1BFr/K7fjJLO4Lg7VJeZWUG1C4ol2jpF9QoWZXAtsqGu rQQWIrpWjPj9BhkKFyh0yLhrfKR923wqW7I7TEvpycct1F3mRMkGpAd9cO+w8t4vc 0VVPUu+AagF9xVv3LSSoxw1/WsX7/RoSvN3/z65DPHzfk+fQhAhuTyzmplxJH+5GU 6YN3U18yqsQ6Z4h7qyioGsCr7r1lGlvqVJXPA/2qaFivnka4mhNfO9jyMNiWFcKz0 q/CMIFvtNAsVmaeELQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Content-Disposition: inline In-Reply-To: <20250702022854.30301-1-rebecca.zhang.cn@windriver.com> X-Provags-ID: V03:K1:m3lj6tyfhuJW288L1mbFhHkz8vUgboan26dwjAX2NyWgVnQAFrx 5vRGzzeSz1MeNZMRYfz5b12EW96WMwXlvw0d6wYyevPPbJL4nu8FjvX85jpI7KqlKSIT/hJ Rq07NhKK0FFihG6lNfk73Vhdqcw+IJY5kG6oc1zqzsWiszlGd7OTnExwcYyc5lqkdoOoUIU XuhjAyBHMwSG+9+bjVWkw== UI-OutboundReport: notjunk:1;M01:P0:4mPXZY++l1s=;JzkaSpREUdKtXlu0WqNKv+np2TU qKCTw2XwwcBDi66Acd5IdpN0boh8pGWtGQzrhiPPPSsGR4P/Ku+Fq6MvGXF6JJ/uXaBmzW0+N Lx8fxaC7tiTVhHPv2oXKouD8vE3EiL5q4T6YEnC3MTwIkEivQF3UeKsFQaRzksd81Fk4yv53S VZroT5KgyD72rNmwB7x1OBkncN6ZshLka+sjWqOzxlP/RfUXxYGgb5pAaqrReyZhc4RSDYQym +Hyt5FCBQCJ3KkTW8i+VtVLZhElQGiM+cXEro1OR1fHY1hgXKb1CQfkSjvHbLt6RU1aZCt7x5 YBQAy1ro4U11FaNz7rP46x4fxHU5zYXK92y9esCZ1tsqWvoLTGFo12Y3K9PYWohzEROCIIGYk gwDN9VgPjptN24Rd8+vzSghQvu9oc1P7b1Y0N3sC3taJmwUTR8m4v5Vfy37Ii7Jf0zKvPx3rx UJv+1mWs0B2MTS5XIrS+IFLBq2F0Sqs/wholqjxxw2wEe/bnZclWw3/bv20D0B8Jymk2txHiI vsXK3FYFHgFWqtTIJX3uh5HIJORhqa3jUdDo3Xkon2xHkmX1Fff3UQPWKUTCqoGDNl16ZUqsc ehfusFTdz4oIUU4DMv4PUDxcZ5lg3wPCQwvctP/ZklNyi/oX1LgJRPGVm5N4UDfwSL5GrxfCn YmITcxXAIPD0edaxzMoHQf8fbHeGFF7IC5C5W0lucaivwh4MyLsMfeAE/hgX53Q8sbKMZFpU2 dcDhMeLZtQTzpFex45skJX4KNdGUTHsKcXBnCFrKyGwUQIuzIfsFv2DMCtry7KQjebLZheZe Xref: news.gmane.io gmane.linux.lib.musl.general:22175 Archived-At: Am Wed, Jul 02, 2025 at 10:28:54AM +0800 schrieb rebecca.zhang.cn@windrive= r.com: > From: Rebecca Zhang >=20 > This commit fixes the issue that __libc_exit_fini only do > pthread_mutex_lock, but forget to do pthread_mutex_unlock. > --- > ldso/dynlink.c | 1 + > 1 file changed, 1 insertion(+) >=20 > diff --git a/ldso/dynlink.c b/ldso/dynlink.c > index ceca3c9..7885675 100644 > --- a/ldso/dynlink.c > +++ b/ldso/dynlink.c > @@ -1492,6 +1492,7 @@ void __libc_exit_fini() > fpaddr(p, dyn[DT_FINI])(); > #endif > } > + pthread_mutex_unlock(&init_fini_lock); > } > =20 > void __ldso_atfork(int who) > --=20 > 2.34.1 >=20 I think that is a deliberate omision. __libc_exit_fini() is called on process exit. After it runs, it must not run again, and no new initializer must run at all. The process will exit very soon anyway. The only way to deadlock here is if a destructor calls exit(), which they aren't allowed to do. Ciao, Markus