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=-2.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,T_SCC_BODY_TEXT_LINE 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 ADB9D24B38 for ; Thu, 25 Jan 2024 15:11:52 +0100 (CET) Received: (qmail 3751 invoked by uid 550); 25 Jan 2024 14:09:39 -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 3713 invoked from network); 25 Jan 2024 14:09:39 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1706191899; x=1706796699; i=nullplan@gmx.net; bh=NhoVDjuCW7y4UqoF0MVqm7HF56Q6eLS/lPK0651+VzQ=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References: In-Reply-To; b=sj6XST1AwCsq2GvQK93IpmMrGHTIq1bFrhcTXRb8B8IOSnR+Ox8xVPhtMBLUXuT+ WKWEgFHcX0GtOugEvhIRoIDao8L3o7po68nRYdHIM04fnPaisyPcyI+m+U1mZEUzh 5JrSDKq7xG4ZA7Pfd0o3Si80gSH7gF7+J9ua2TzZpYtxblDaml+R0q57pTtgO1n/6 mEDQYI6LYlIBANd30KBoEOQc5go9jyfJPV0A59He6xuBNGLlrly2G38C/PSGnvbuE Itj/ZJRwguUFElb7YLudQD/k0WxDMLmzLpJc8RuuN9XWl7+Hkd/1wEX5+Ws+8Q7sE r7rpO0/DUMa4Wu8BYw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Date: Thu, 25 Jan 2024 15:11:36 +0100 From: Markus Wichmann To: musl@lists.openwall.com Cc: Rich Felker , Ismael Luceno Message-ID: References: <20240125070950.28673-1-ismael@iodev.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240125070950.28673-1-ismael@iodev.co.uk> X-Provags-ID: V03:K1:CKoXLvNTrJOSrhUMlgoCsM3OLHx9jPO+68uG+xC31OaaSbdlVrS Yos9d6FDlFlGxL+DWC4C/eGqbGPHQ4aoV9YzoqCeWBF3F8i87KObbwhTrQjAUm5SSvRyJbE Ll+mLR5yj3STP3cSxElaSadMmCw/lLkaoN7+oAWt5yShGqmqtajOgbpJoBZ4ZAIhYGPIRFk zlMp+gqb+zlXzBaR3mggg== UI-OutboundReport: notjunk:1;M01:P0:tffff70C1fE=;Rqvmsc9M3B/Ado2toBFEvgXXiDA syiPIH/TMwovCt5eAWhrJn6x4UC5xi82sL3euoAav/KTraj2G9JkHgCCVSM09Bvl0WwayRsqy Xv9mnjcOLRnDdrdHbG3FKnL7JOdNgUevB+1sKkWQXYnE2iNgQRRe/2AgjHdVaKNq9v38MvSU0 fbbQUiymOndRTGsN/bodP5598e8oHOvCtTQiPvNISW9ukcydxGcbbBa/48H6LgdXaLzSJFp7G xs8fS0yd0AY/XOfj9swG/QqvdJ8JZVlRofoKSWOV3mtsB9gIPwdy7Uqu1czE5Ql+pEOwq59XD OI5E2bQ2FE1Ay81dCkyfEOdlFkyW5TGC54Y3sbqSuav7UM3uFMLpJaeVLumJqhpfwjfxjv8NV LNGMT5Y8s7ZLKA5/UDEZY0IN9luwlZ3ciVhA0bA4B25LBjo1KN19Oam8vhXFg5EZuiLuEZZMS erqe2WfyPC5MhqnWLql5JfyiFTddGXj2wJnvMNlBD4ZlVF7EmQb931YYy0TViIb4NrM3tiCCH p01o6Pj9XWc8c+SeSEpg2Kw7QNx0GdI3iZjtgSCUSvQ4mvd2ho62QO+Jkv46368DT2a5ZMBE0 no+HfgdjYohFGyeYCeLmX8ah3N/GgkXJWyUXJ/LGICemnd6RzvVZVV3OWGQaFq2X5ymUOOXfX AUfiUv0xDtTuylCzEM4cHNRk9SbQxOdBVpK786o1pJkEcZ+QnFpgUZjUq7PGSHSjrnm1DXavN FEby1/U0y86Y/G/NYMUeh9N/IOc/B41Sd9bYcheVcmew8HFilakx3fECxMvQ6Is9nb26vVzPh MY56K+Vqmy5sqXgWFgazaKzgnP0j7fP/qnjQOrBiGwh9FOicpuWtPRjrwfPE8j/rlkjypNE3U NuMrLWQvxdlj4TBPIrzztIhK8sQXOkGJ07yxkdymfX6HkMZ23dHsyCO3iz/KBoa3YHb7w6Cux NGu/R/bTe++P0L3vHPYGD0E25gY= Content-Transfer-Encoding: quoted-printable Subject: Re: [musl] [PATCH] fix avoidable segfault in catclose Am Thu, Jan 25, 2024 at 08:09:49AM +0100 schrieb Ismael Luceno: > catclose may be called with an invalid argument, particularly -1 may be > returned by catopen if there's an error. > May it, though? My copy of POSIX does not say so. Whenever a function description does not say that you can call a function with invalid arguments, you cannot do so. And it has been musl policy to crash on invalid args since the beginning. The problem you describe sounds like your app has control flow being approximately: nl_catd cat =3D catopen(...); if (cat !=3D (nl_catd)-1) { use_cat(cat); } catclose(cat); and that is just wrong control flow and can be remedied by just moving one line: nl_catd cat =3D catopen(...); if (cat !=3D (nl_catd)-1) { use_cat(cat); catclose(cat); } BTW, POSIX does not say catclose() is required (or even allowed) to accept (nl_catd)-1 as argument, its description of the return value of catopen() also says that it is only suitable for use with catclose() when successful. Ciao, Markus