From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 7566 invoked from network); 2 Nov 2023 16:42:32 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 2 Nov 2023 16:42:32 -0000 Received: (qmail 7262 invoked by uid 550); 2 Nov 2023 16:42:28 -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 Received: (qmail 7228 invoked from network); 2 Nov 2023 16:42:27 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1698943336; x=1699548136; i=nullplan@gmx.net; bh=z9ocqw0V6oxTdq2ATQB8B5t7snd6s7KyQZEClqtx5uU=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References: In-Reply-To; b=BuRo3MEgZBBvNmnnTHhjnJq977CaSitIGGDIdLCqV29n6q9bhJre7IFuycmdXVNA XRvJII21V8W0vEcwsHTVy5NDrwbXehieg/bwaVPKW11GKB1kV7Hnny6iuhvLmMRHt 18BUXhEzaQ8cKSPGJFO9zVSUho3yqWpDLx216e4E5iFwsy051xrHO2pWdpLC90yNw cc0mOqlMWWe31V9xOm20HVBbkUL7PWeqdOSZaxy5N7gciwiWcBO+QYkeWTTPx6pzC DLU2F1Cz6RJgzMBIh3qM0JCFOM95VnAek6nrTjSVxij3SbF5uSdfXRi/xEJss5zD6 4CiyioYesTGFI0ozOw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Date: Thu, 2 Nov 2023 17:42:14 +0100 From: Markus Wichmann To: musl@lists.openwall.com Cc: musl@lists.openwall.com Message-ID: References: <20231101130033.GR4163@brightrain.aerifal.cx> <20231101170506.GS4163@brightrain.aerifal.cx> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="UyviJEOPEcFlvj3D" Content-Disposition: inline In-Reply-To: <20231101170506.GS4163@brightrain.aerifal.cx> X-Provags-ID: V03:K1:cUnF22kaQGjZnjt7LVnIKdFiCJjan2Lkpu4e/kKxVRAuFEdrZXJ q3Blq5oe/t/3WkmBl6rSegd3BIP6A1MFg0Hveh7ThYPqiW6gxPo/y9NlLuYVbvF19VNhfzv /pjvUGZvgfHZ3E01FIvpJ8nHAdP8neqw+B185GSb3PZX5NoL9XkMu8ThN0pDxs6lwYxdz2V SVvUZmosBjXObgj0FiKzQ== UI-OutboundReport: notjunk:1;M01:P0:xbOA2pKCTAM=;FTLpAh7UiOMQIX300f8dYlS/Glw gKzGv5Jn7sOI3bKMraypVFxD68dCs0MPsTh9sQAKRx+T4YYWjKlt6qjAXMMwsHAHjRTpHXQFy fPS5JX6VpneB1MM2JBh961G4zZpFdJbz4k+UHJVn+Ybw995xnXbjP8dnFg08OQrtsxxnA0ZYa MCIsXUsM3lsANswHSlb4+Jo9DuzvgTgBbp4jHO1rtExVAFy8Cdix6PPLpwSb9Uqhq4LM60l/E EmdDdZNRNZ8I1TekEDLAodFqh6c8tkdFWH5gohxyJjFSBtzw+ezOYwF/8KoN4M+Jv+zHujwQt Ppm0d1PWQGHKO1LzXoRxSnMzytBAusNas0B6J52ROkl4owwRb7X+YJmElnJe1hk0BN1uyKCet SU6woTiCvrLG6x3b4Al3VJQ7fF/qiwG0F1LPp1AS6w7AKkOEG1bJ6HHgbSxvNK2aLKo1xqSUD iDxcuUvm1ytdkALYx4hDbuI7DviX6/dDU/Eg4ZGSyKJDDBRrwLW/4G87PureG0JSCwzUsZcy2 ljBzuziJMa/CIlOjJHIUx4yPi3OhyX0/68S7i2XCBzQ0q2nK1iOQTFN9/lAV1lvESF5+1Tr63 HwiSVtqT1zgC/9WFiNdtArrc6Q3P97d6itWvCcJJd/BK8v9qmpZT64TgaFQoa5zTOJV71Kp26 DcGKHLgZdnnNaJSw0vXZLrdimgyFwnvz0f/Gqr9oyhNw0uuz/QxrYtMrUdSP3FUTn/v26PYdd tcLIF7MK9eujWVu8cfVNnOrmjLYrSZjzCOpEkXOrfkF5GCay2KLadPGA11SJ70ZOyBaLt/SBa vl/dPjKwwwqxkZmalB6ESXIZAC4xR75ymGYgtnjcDBwtI3Lsysn2vEf2D+1VnjDRwrkPYWveu CQjNMaXmf+n3F1EgNfwiX+v3bjBU52L9LO+rZcJrF8xzmhj3iVAIltFXovW/lAU0OpwEUYpG4 oxTeLRDkPNivtKmMb2OUeuztwGI= Subject: Re: [musl] synccall patches --UyviJEOPEcFlvj3D Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi all, as discussed, I'm attaching a new patch for the __setxid issue. Ciao, Markus --UyviJEOPEcFlvj3D Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0004-Ensure-valid-setxid-return-value.patch" Content-Transfer-Encoding: quoted-printable =46rom 1f3b01f625dd7d33a7107efbd8417857461bb4fe Mon Sep 17 00:00:00 2001 From: Markus Wichmann Date: Thu, 2 Nov 2023 17:39:33 +0100 Subject: [PATCH 4/4] Ensure valid setxid return value. If __synccall() fails to capture all threads because tkill fails for some reason other than EAGAIN, then the callback given will never be executed, so nothing will ever overwrite the initial value. So that is the value that will be returned from the function. The previous setting of 1 is not a valid value for setuid() et al. to return. I chose -EAGAIN since I don't know the reason the synccall failed ahead of time, but EAGAIN is a specified error code for a possibly temporary failure in setuid(). =2D-- src/unistd/setxid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unistd/setxid.c b/src/unistd/setxid.c index 487c1a16..1dfb2c01 100644 =2D-- a/src/unistd/setxid.c +++ b/src/unistd/setxid.c @@ -30,5 +30,5 @@ int __setxid(int nr, int id, int eid, int sid) * trigger the safety kill above. */ struct ctx c =3D { .nr =3D nr, .id =3D id, .eid =3D eid, .sid =3D sid, .= ret =3D 1 }; __synccall(do_setxid, &c); - return __syscall_ret(c.ret); + return __syscall_ret(c.ret > 0? -EAGAIN : c.ret); } =2D- 2.39.2 --UyviJEOPEcFlvj3D--