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 23601 invoked from network); 1 Aug 2020 15:52:43 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 1 Aug 2020 15:52:43 -0000 Received: (qmail 7867 invoked by uid 550); 1 Aug 2020 15:52:41 -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 7845 invoked from network); 1 Aug 2020 15:52:40 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1596297149; bh=mzCMYHcF3QkRdqjXSA9JKSnj/b6a7mcvU9SBrWClG9c=; h=X-UI-Sender-Class:Date:From:To:Subject:References:In-Reply-To; b=lSCrhLJT3ShDpsVrs+cnnLA8WuTF/HY00smtfMlcoZP/3+82lKMqjTPLwxFrf9ZVd 2nYjeOrTp+ZHcDw84vIGxUssSXLemkDMMuPLAbD+UCAvzA0SAjYoMONwrykIIzC9Uz C8FaIgrb9OmviC3JqXjnx4EDZMEM2e0p0w8fqssE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Date: Sat, 1 Aug 2020 17:52:28 +0200 From: Markus Wichmann To: musl@lists.openwall.com Message-ID: <20200801155228.GC2076@voyager> References: <20200801144658.6634-1-ariadne@dereferenced.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200801144658.6634-1-ariadne@dereferenced.org> User-Agent: Mutt/1.9.4 (2018-02-28) X-Provags-ID: V03:K1:GtI5+4LE+y/7pTwseBz+QJQplLO/iQXHsAwUXF7osrJExPOuMLb yECkXh1y+XMx40XXQFnfSlXbo5DAE7LTbHxpNG4RtEX4B236wJQugw7Ag3MNtVKzOsuK2sY tjd0hGlQDeh/tDcjcwAC+uL7XBRpOyHexA1LY3MPyesJnVHeU6+AeHptAG696Juq6KfM0ou lyTlGcz+L12PK4U0rwGlg== X-UI-Out-Filterresults: notjunk:1;V03:K0:EAJa3DbxzPY=:gUieFlCbPBgKLl7AaH4aVr fnPMrv5ba3Ihr4gMExQUSv6BJ5a5903dQeifXdB+orQmCs7xpLqQuvVO86HS2bxuaiQcP/eMJ hTnFOYQ1pZzw03Q+xwnb9rgM0rXYTM02MZfqBv+a38HHyaiDTSNzIArQvmWVRrzrLzLqawLo7 GIhZ2oTTOSzL12LALgkVatSi1FX8wK2dqgvAUHg8dh9vYwnUzZKEtRUB34YAWKjATGZMvfzsD dv5EcuxHPI2eH5vwK6Iuk993iohHJKSvqYY3ojmvWVe3iIVQYQkGg7K+zoBQqL2SsNFRjFHDN WBfXhKh3bPxQMYBwV1uTPTSLyyLFCgpMju0EWs1tFR1kEnxQKfT/0sDAUZBKX2VboxraBxKLa g/w0TkaED3BGWdKnn7XCfO1DB5vsx3ZCz+pl7iFHrSpidgl2AmiHh0GAJ0eQy4atgbJilpv+0 8QQ6B57XM7Gv3G9Ha/EFWcsOdnzKCzItq4MwWdZOq318FTbgNoqBaE9MqYIxh1aqQaWoVB+KP J3GeBeW0XSUigNnRvxmDkuepDBJkXf0lpsg6UpyL4MgQ/aONjnpUKVxeF3sZf5z+hnhIlBIbQ 2T23jX6UzzGip8k4hi5/0ZYNZ7WI8qFrXv1MbPJ2Q3H83VWS7WvNPNeSbkUAutNM2lo69AGKz 9E7WdzS1IqjQnfD6Q902bQLnOF2wno94hPh5HFaiuX59WVqEJBglAKTGR9wjOy4ziwlUnoZbj xwBTZdP8pjBhYk8idWVsFZgoLs8oGT5w9D+lB38oIM/AvoA9k4j8mrSH7dhxQyjnzeSBA6JtK JL3LI0U69peTqzDsk6JitgxQU35Ks/eB8XZdKtyYyBhekd+mTsfDD0d7VGXlK+a0agAoswEA3 uoVyAkNshs0TVdAJdFSK/zjani4zM0cguyrG9kM9UwSx0oyxywA2UeCG48Ko2k263KzRGNjWf qLcQWwwzQqAwPC0IIiayLokAIhsIcSS1pbXZ/rFUCPE07o6JRV59IRSlwtAMcbF9j6kuxRNOj IYdM4ByVwqIQ0SEB540GfCAbNpQnIvEO4lDqhAQ/GVuzTx2FA+G0bHIjEU/n+UdjQhr0mLUkU HfgZRadUDJ/A96mVZraB5//9jjr5izd3Th6vaH66l1htT3xjVrWo+1g6UUJqbYK52uIkmrJP9 Nw/eqWDiEmIP7Gbks3OqIbstiuKtmVBLLabODYR/2g37b1y9T8L8TH7ew0uTaOyihUujkadjv XqbDwlcQwsD9rvs7r Subject: Re: [musl] [PATCH] implement recallocarray(3) On Sat, Aug 01, 2020 at 08:46:58AM -0600, Ariadne Conill wrote: > +void *recallocarray(void *ptr, size_t om, size_t m, size_t n) > +{ > + void *newptr; > + size_t old_size, new_size; > + > + if (n && m > -1 / n) { > + errno = ENOMEM; > + return 0; > + } > + new_size = m * n; > + > + if (n && om > -1 / n) { > + errno = EINVAL; > + return 0; > + } > + old_size = om * n; > + > + if (new_size <= old_size) { > + memset((char *) ptr + new_size, 0, old_size - new_size); > + } > + > + newptr = reallocarray(ptr, m, n); > + if (new_size > old_size) { > + memset((char *) ptr + old_size, 0, new_size - old_size); > + } > + > + return newptr; > +} Is there a reason for the call to reallocarray? The multiplication m * n has already been tested for overflow and executed at that point. Might as well just call realloc() there, right? JM2C, Markus