From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_ZEN_BLOCKED_OPENDNS autolearn=ham autolearn_force=no version=3.4.4 Received: from second.openwall.net (second.openwall.net [193.110.157.125]) by inbox.vuxu.org (Postfix) with SMTP id 09C5F2D4DB for ; Wed, 2 Jul 2025 15:08:51 +0200 (CEST) Received: (qmail 14097 invoked by uid 550); 2 Jul 2025 13:06:10 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com x-ms-reactions: disallow Received: (qmail 25616 invoked from network); 2 Jul 2025 06:20:23 -0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ciCycOZbIKye694F9nJopx3uYAdF1jL8B3GXbsOCsXtGteNRKhKcwD6vJ2Z9uzTkHlbgU9mZgitv5zUlH/tB+e+uRKFtwYZAOCOflA5WrhV+Q8iOVerLoKYtecXW98ZdBByMI95jjtV/kslo9x0d6m5an07GSPUtZPw7PxA1D9KQ3AOJbTrf9gxYiLkwbsfye6LDOyI2h/WuVR3u4MMNQu1kxZmCYwnjLQIu67PFQDdRN8Y2m2hsFlF91U7GPEJA1Cdr0QdrGau3WiOJAGYhifPRVvOeGPl+CTJ0Qrgq0gebr4wqdfO47p4NEfellER3zzVlBvabrdVHLSHBVolDfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/O4WkhBUTyzccEDN8sh7g6WxO/4FpCA4xZ+Tsuwd2so=; b=XEwvo0B2sBa2A85Ea94WU106pfjtwDhyS+yunfP74tNMa37lB40g3WSu/1QXCC8NEiFrRPwnOMSJ2F7YJGiprNFnHkrWAhzh9tCBu07LN03vXNQ0dX4RjPjjYuFOCgDW4X1/qj2nlDyH0aizs/C0luNd3O1q5/8+eLNrb4KtQFgyo5pXHlaoDcfIFJip136iXbj9wjaM6ny6DV8QMpjgo/eDfTKfR7e7CjlXEDXbczqDXBJV78WkxBBNyoTmGV+OMDXP+puGsP3v5eD1nMKEujEaLy6M3zONyPIp0LNbGIbnIPkR/xizIzZQmj92tzNCV4XeL3Di98qyAFM2HolYkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none From: "Deng, Wenbin (CN)" To: "Zhang, Huilin (Rebecca) (CN)" , Markus Wichmann , "musl@lists.openwall.com" Thread-Topic: [musl] [PATCH] __libc_exit_fini forgets to do pthread_mutex_unlock Thread-Index: AQHb6vkSrAjXnY8LuUSA1Ifbowc1jrQePiaAgAAauYCAAAF/EA== Date: Wed, 2 Jul 2025 06:20:02 +0000 Message-ID: References: <20250702022854.30301-1-rebecca.zhang.cn@windriver.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR11MB5136:EE_|MN0PR11MB6205:EE_ x-ms-office365-filtering-correlation-id: d4c44481-d874-47ff-8bfc-08ddb9307a7f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|10070799003|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?us-ascii?Q?rI1R6RWiuqNkpEqVm31GoP3r3r/7ZQL5xkrlNI3+VxDa99uvfh1rXttJD5+x?= =?us-ascii?Q?dNqUHeYi/XXpcKkJmoYr5xezk6pT6jYHSB++jeAZpwLDpphC1pCuRynwSTry?= =?us-ascii?Q?+lqbdtxgJ6dl7KEfJe6S9yEyxMZBh3wgrI2y2VG+bPkyaG2ly3s3Q94jowLH?= =?us-ascii?Q?OqOXDYvNRI7Yg3HIiglPg/Z8FfzDlFxN/I4RZexG2/N/0UweHM3hUK2qyQOw?= =?us-ascii?Q?zZoJftMef74ZTKb2ZbDiEEf6MjyGufa0n/Rkmmw5hdHYPkjeSWxjSAc2yLRQ?= =?us-ascii?Q?KYsnQm7Kv0V+17/nGDjm+erP9uftPIUbVD0CCVXPRtGr7HFUu0QfLXfXhz+P?= =?us-ascii?Q?rzl1Zg4Isq0zkZ5O9iJDBOAWwP4nFj5U9oh7uziNeXkBcxpwlKiveZSEuW5Z?= =?us-ascii?Q?Pv1SnGB49nOXjCK9AfNhbT7jDQGRMX4laJwvYj3fI0Gn7gZx+r8/Vl+WdUq2?= =?us-ascii?Q?U4W6m+sqTR2TJMfn2Jifdae+n9WzmkDcfhs9ypYUFnxxc0mGn2dsEGtlditN?= =?us-ascii?Q?X9fL5OQekv4/Az7hHINDrmtRec6mcRrVFCI9CRhBdKlGNLNguQFxZLg4zWyl?= =?us-ascii?Q?qHNrlDJDIwKYeYL8nuj21GR3E5HMv60PdCHqiWfaiufA58h4B+V1mMpAmuaz?= =?us-ascii?Q?K5kFmnZ5B7Z5ZdChGmDtTUUAGu933J0dmb0/DHutIpzoryA5IKGXPPt5mrpV?= =?us-ascii?Q?VF+km6/lq7GMFZEcz606IaWC6JKo9uG5fIhz+oEyFvsgC1aZyY9OOZgT7Ku6?= =?us-ascii?Q?+zvN+lQRG963+xo3lj1RKaoy2FxHOJyShT+ly1Wa8wC1/4ThjzpirjPxRmpL?= =?us-ascii?Q?IPpt4DpNYV9qX3ExZMbK7qgDe4t+ZF3kKfHKvLn7LfklVm36ZcezFEOdIZaj?= =?us-ascii?Q?PAI7gDZkpZbczMi6ebseEZUY4oEwATl+19rnFRsSENJQ1qSFaMpXv0zDQleq?= =?us-ascii?Q?two1furqjLbp+9BoZ0XolqyJAyGlrfZGXiXZZaWmF1O8rmwoOqHxra9zjfeY?= =?us-ascii?Q?/e1eAhIgUuviQQb64iYOzeovWWj6wyO7v4fDk1AVmLF3NjxZ3+MhYm49O0g5?= =?us-ascii?Q?ypf5qIowTh/GsENK5maOXCGRXxqEb6nUgdliO2ZcrXbHMRTzlUjQXrG4clhX?= =?us-ascii?Q?BFHFu/F8XeIVA4FNXSmWKwuVXa4ymfRLmhtkO0EkRTV4p5oUsgk0yPQc2wtv?= =?us-ascii?Q?mGlsDspqubNkWKAqqlxOyEGQr+OZOMFDA5byLVAKB/P5uJ1jw0XnL+zvdSBW?= =?us-ascii?Q?Q4U5h7dfIqa94m6unTK3Z8Qcq1f6wJHD3se8nhZD6J8n8Cr+s3nrrPP+Vznu?= =?us-ascii?Q?18ft8uH411SVGtyGaoOdNsjMVsp1BM/u6upczZR9IZjYQV/7dPrrRZuhCNQ+?= =?us-ascii?Q?UgfQCCwh3T+4RiOhzV0clHvCTbsN50vYZpwVIIv35hqY7HJk1c+aHuef3w9S?= =?us-ascii?Q?ZEZX+nae/jUpdB8Ugs9RFgDKvufHhTXhqdCnSBYttIcWP/4RemZ3bvPgm2fU?= =?us-ascii?Q?PK9ap7K4V1uOEwM=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5136.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?hCXGjQG+zvQU11/4Rhta6d58tjY9/b3VNCf7/xd+OY3akWs5VoB+EL7nQVdH?= =?us-ascii?Q?Rd6BAlyA/lmLSB5CprZWM/nojSDUxrmfypamBUkJ7CkyOcIRFIN5C+8SGkPz?= =?us-ascii?Q?tz7u+UPB8AyKq+/vMsdNk2XjLz6we9FYuhrgUIgvdAmcs0Yr4tcw4xGDyJP+?= =?us-ascii?Q?Q5rm3ATCqk1BlyzTgkASYrqwylvylPr5QQckuGpMOg5rZtVCzxRjessETt0X?= =?us-ascii?Q?Wh/fRcJIpeN7sW22GAHnpHGejg+BTxQx5sq07f6iTM3tMJQxA90d0hjpETGF?= =?us-ascii?Q?1bVkthCFRVO3AihHFpa0WEx/zOr5cyZe4T86sTqfhJO5osOaEV5ddr1wKxCB?= =?us-ascii?Q?PDXAXsjYsTfKLXHH6lquIRMObctIRSSUlxOjdP7z7tGB+df7wu0GyTFP4CLo?= =?us-ascii?Q?FYFddzTKoMlvWajZTOkpHMLkLulm26CfTFs/65Lr7cGzKr8zFyKHlrowDCcR?= =?us-ascii?Q?IIVJ/gVhHJBs5E57lT+J7pvB/QYaS5sF/dZF6pDyD9ktuHh6aRYFFIqvV/pO?= =?us-ascii?Q?q2iAZQ+xjtnqR4QF1fadxEPJWW2XHOsj2bBXAEpB7nFcU7mvGbcHXDcuSpI5?= =?us-ascii?Q?KKHILTMlnoFnQzUe5Js+zsHzB7S0ldKHCTCOKlgBAeWWzjLAOgVe6Zpnz7YY?= =?us-ascii?Q?H1sGGi1l7MJqZZn0EBYta0yQr45Q9ZWPcQeN1TpMcAjwSvr9A0cuY38jhZPm?= =?us-ascii?Q?v/+eaOnsV8aLg63CV2AtkuPrSda+ioImAFlG9+02fvv9DHBTyvaGFvDd91f0?= =?us-ascii?Q?CktKXrL5WGSMyDHmsDCH8/h3Bwmg00Ow1tP+d3hkAK3mI2yBNsz7+Q98yIiQ?= =?us-ascii?Q?TGz23VKG3cFXMA1IywbemJIhZWnSas3rswUAFotzsdcYcLlqA+hgiSVyVCzd?= =?us-ascii?Q?PxvV1ihm3coNxfS7QwPZNJHlpNe4lW8UQl8B2yyLiNUwr+PSlMpeyzcAMmw9?= =?us-ascii?Q?yMhP4riED2W0YrJeZMj3z+xZaapBRU+LJRcmgjM46siEoZbF8wncxhOQxdaq?= =?us-ascii?Q?zvpH3U6jBxUUiI2iDqvaUBTZ6UZ7/f7+Dw1dGjByMc6uIQTpufF8MsPmeXW3?= =?us-ascii?Q?zlbH2yZRQ0e8V000+Q0hFUr+IUug4HAiyhifwzStj/kU52iG3AbUpJvttVlG?= =?us-ascii?Q?vQ5cWlZWnaPuJmyDNICO5wRsRED1YfP/dBv2zUhwxHopelwLtL8B206xwA3n?= =?us-ascii?Q?fol4W4Un3M9TttmCsfyHfdF1r8xt4DJ/JnRO7y410Khk7teU9X0x+uu/WJB2?= =?us-ascii?Q?+4cTwYTjrR/5Kqro3UZrpKMN44jpMmjGg1Olq9ykqwLr0ZZgyHOnbBmlEKU1?= =?us-ascii?Q?gK5yPmdS5CF+TvLs8Tdfb239oPPKleW8thRjAN8Qn8oCez3NrSKruPnbM78R?= =?us-ascii?Q?/cx08gIk/0y1uRQD1wuhHmrpy3bOgEhep+nqeYKXR6nDJBY2Zq1TEVJaOFMn?= =?us-ascii?Q?2QIcthghOsJFY2qNgIoYGXj0tHSDMEf7PxoTmmjSOQnsk3HPCgHXowU5lmnk?= =?us-ascii?Q?Xw1bUMcr/XpZbYRxBfy5SjqDPm0oyCtqjmOwYmXw0MTKnR85y8kPwQolvpTd?= =?us-ascii?Q?rEQqGtb8Z2huMWadm9wCaVHoBgYyITbNjJm6xVUv67M1Vo/rfVB/2Bezecri?= =?us-ascii?Q?HIyGZQb5E6tpsuxlVxtMxCcke6Y49qXG2vJ2N71ZrM/SjoZPPpvAZ1ziBplk?= =?us-ascii?Q?BibpzA=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB5136.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4c44481-d874-47ff-8bfc-08ddb9307a7f X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2025 06:20:02.1176 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Q6VBwYb7D+YIXuoQA1DCYFRUXnklVffw4SloW2ETVvhVuhOrj2qawjbw9dWzFDHmxxrmgy1MSb/9gx0+iFf+rvp52RQel0SMF4XhFEWQ8gU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6205 X-Authority-Analysis: v=2.4 cv=LPRmQIW9 c=1 sm=1 tr=0 ts=6864cf96 cx=c_pps a=CZtxOoZ1hZRGAI5FIhcOlw==:117 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10 a=Wb1JkmetP80A:10 a=t7CeM3EgAAAA:8 a=VVlED5B4AAAA:8 a=XkRKQH6RAAAA:8 a=yj-aMKAYKbz0kkd27lYA:9 a=CjuIK1q_8ugA:10 a=FdTzh2GWekK77mhwV6Dw:22 a=1gUyE30hU_ULiMxJiLUW:22 X-Proofpoint-GUID: aBFD3VbbNyYcGVaWsbaB5JxSBjEI_Xk1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAyMDA0OCBTYWx0ZWRfX57xcZSDZ6hdX Q+8zdzMEg2bOYmJkfGuBEutG5HM95vJcT1HQ3a6HhlruSTr/v7/Gb0SG8OXHOi84KmyT42wRnMc WqmjIO74Z3sWZMAuVKF0B8RirtFvq4EBxhTACob0fzbvryrnknhUMpTNgzfRLOpDuSy3GIb3l4F +vbWYCm76uxaN6ICHi0gKdhF8fjZCKHlS3mLHWSew3TnGhulFzQ0DIQjGLeUfQvJAVe+RJckhQo uCWq4oMkyyDC3eqXWegHRnxYOImckmWFlIyk1aoh7cmEeBT+7youyhe8xBWDCVwDvYjnVWQBQ4O xeE8fNU/TGDyAbZ3aJjqsFRA6atr9pL/SVwmIM8wbJIkePTR61RTlKIwIWs0dxE79JmmzZGq+nx mkI9dBNbirjkI2GpZMgh1Qr9Gy6dA9jYjPaKHZVRAQ54Tn2dGlJRYc39O9/cdGO2UtOOu2ok X-Proofpoint-ORIG-GUID: aBFD3VbbNyYcGVaWsbaB5JxSBjEI_Xk1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-01_02,2025-06-27_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1011 mlxlogscore=999 phishscore=0 impostorscore=0 bulkscore=0 spamscore=0 suspectscore=0 mlxscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2505280000 definitions=main-2507020048 Subject: RE: [musl] [PATCH] __libc_exit_fini forgets to do pthread_mutex_unlock Hell Markus,=20 I think the key issue in the "vfork+execv" case is that : =20 With vfork, the parent and the child process share the same virtual memory = space. Once after child execv failed and exit, the child process locks init= _fini_lock but not unlock it. This causes the parent process pended on the = same init_fini_lock forever and can't exit normally. My understanding is th= e child process's execv failed should not blocks parent process exit. Thanks, Wenbin -----Original Message----- From: Zhang, Huilin (Rebecca) (CN) =20 Sent: Wednesday, July 2, 2025 2:06 PM To: Markus Wichmann ; musl@lists.openwall.com Cc: Deng, Wenbin (CN) Subject: RE: [musl] [PATCH] __libc_exit_fini forgets to do pthread_mutex_un= lock Hello, Markus, Please see attached test code main.c. Assume we compile it with MUSL and ge= nerate the executable program named myApp. This myApp needs an input parameter which is an another executable program.= If this parameter pointed to a nonexistent program, this myApp will get st= uck. For example: (aaa is a nonexistent program) ./myApp aaa The attached .png file is the snapshot that I ran myApp on ubutntu 22.04.3. Thanks, Rebecca -----Original Message----- From: Markus Wichmann Sent: Wednesday, July 2, 2025 12:31 PM To: musl@lists.openwall.com Cc: Zhang, Huilin (Rebecca) (CN) ; Deng, We= nbin (CN) Subject: Re: [musl] [PATCH] __libc_exit_fini forgets to do pthread_mutex_un= lock CAUTION: This email comes from a non Wind River email account! Do not click links or open attachments unless you recognize the sender and = know the content is safe. Am Wed, Jul 02, 2025 at 10:28:54AM +0800 schrieb rebecca.zhang.cn@windriver= .com: > From: Rebecca Zhang > > This commit fixes the issue that __libc_exit_fini only do=20 > pthread_mutex_lock, but forget to do pthread_mutex_unlock. > --- > ldso/dynlink.c | 1 + > 1 file changed, 1 insertion(+) > > 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); > } > > void __ldso_atfork(int who) > -- > 2.34.1 > I think that is a deliberate omision. __libc_exit_fini() is called on proce= ss 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 deadloc= k here is if a destructor calls exit(), which they aren't allowed to do. Ciao, Markus