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.1 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 20317 invoked from network); 21 Jan 2021 14:32:03 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 21 Jan 2021 14:32:03 -0000 Received: (qmail 20281 invoked by uid 550); 21 Jan 2021 14:31:58 -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 13536 invoked from network); 21 Jan 2021 14:02:59 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.ca; s=s2048; t=1611237766; bh=4Gv/d6bfS5YQJ/cQ5TyODtfsbOBMpNU9/hLXrmxfzrw=; h=From:To:Cc:Subject:Date:References:From:Subject:Reply-To; b=lgEiMAoe5z6QBOK7y+BRx2g8XN8o/yFew2zCbcF3WFBmDF/R1WML96+xcUh13g9ohyU7Vz8cJMAbJNK2/gv+u8H1UnXa3FUaszLIPeSEWColksKjvJt+8xsZGSAF3w4KgH6Mvs4zR70SJgVKjKGkKSreIBU1I1U/hOlQ437hGsHd+0gJj2WAq6/nyRgu4jGelkCpg/BQpUqNALOGAKNJqTDKGoRvmmvstJdpHAIPCDkhNub5EPIMlX4GL5naKIPuOZ1R3yiiNp1uWB183kuBR5+XFFr0tSWPceh9Q9uO8csN8A/Ej76vkmQhtgw+ECTHW0YMryojMKOf5uAh7ks0Mw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1611237766; bh=XfmAWVVrQMLVX0SNicZYgwLauDhpBUfWaWnZSZq1gBV=; h=From:To:Subject:Date:From:Subject:Reply-To; b=rp/J2QRhYeEEmaMwHuqezrlU4CCABBOoJ6mD0sO7Jf/07CfebwoIulttbxTwUMQGvFUbEdkkCS/Cp5pB+qUThgabv5bYX1jDxdmp15MkwfP9nH3IHrUMibB5CXD+mufbMkWmlaj3wimFyWs9kn3ANva4y32AUS47AFD99UOCTzJsX3LU3hFJfR4cpI79yR6IJVn8M+eBHZAVFwmnIwYRRiYZ5AcYUhnPAdaTIBitnOvioqHAMH6c22JvkIexDVeAPYSnT7eNT8O5ZFec0aUE6sCGmRbh74KLSwilpB0TFtjqb6U6VXD95AAGlK6RaBnBFOmPQMus/A1fFpct7O77ug== X-YMail-OSG: v_ZWdb4VM1l9mfLRAi9oxo0SPIxwBa4GUEZSrbbaCLNSYOJXWDy9YwoXm532xBE ieT5x3epw5oaUDHiTjPwphZb48nPykcE8j.jNuuXQ22SY.GVvSDe_zAcXKYdyyaFJvcO0YyYyF7G x4NxP0OS8eVd_CZlb4CA5kShg58U8PCrAN_aGvNs6sifoBsWQx_fjlsC1rJngbz1KMettYvJq8n9 di_LQxvp7_96OBBFGKYmWhq99nqCxKBpSLSTe5NTynDodZ.FuNdsuAP0TFCdRsVRx8x5Alh6hKEy wL84sYg_QQl8eUte5qAy5rY6_JTktcGChwlDo45_iTlcoju_AhY6kkCChouVXVe0991KH7555nBY lFzrYeYoH0_KR6RYA01dN.vHJKsfUMq01AZewajFpcNdqvLLzhTAX4hQxlkuk0RQQvVdsl2DqaWb fJA6b.qgtzTg65url2m6U2YoCeqod2Y9L6uIa3DtlNRyBWS4OgrWIL2p9_1kyGxUCeKA4GJnFGwS yfAuCNFwFtnJeKcIYfaFT5IiBvtiiaj6BK0w8_w7U_G3RLb9vzi2i7KO9Wa2vFoi6.w8NbtvmlM. eYbKqPunB3zeaL_.BWwnAeU.srDjUEpBOHV6Rv5R704aXuBwo872PRBs63.NAyYFTJMkwDeJgDSr 5_iIPPNL1wkTp8o5q9Li7RCRv5oueVao.igqU46PgDQVQqIgwOeMan5o.K3T8kGcc39EwtmT38b4 ttEU2jpkiKJ93dYYXrhhdSuiBXU0mx0rvE3p45hTwY9bIBvznXs_FxWuU7dww841GLblFyOwA.aH JvKSfL6LBbibN_BaWSCbKKR_Yar5jOSYaCiEIj2JUnONEkELZbG5cJ1ODubPBDtu7NJaPfAE66OG e4qxnc.bcUNy16ulUMon3uZtp6xEzIx8p3tqRrc8GwFkCabH57YSHjaiqSf1757fiY_mYlChhBGy sU_uG.T7tWerGfa8PJkTybIZOHXRqoPCGSvi3SCbkGeNbeV3sLThhbrnyPE6Xb2xN_jdIXlsQ1ng 9wgEqGre6xpzIdjsSBAVy2IFXK4Eln03z7IMi7MJST.qWNfVwZKzaGH2YLC68MvVg4S8aTLkBhWG TT4C48pog.p3tc8j_ia7LlLF9Sd.6yDpJuF0oOBdis3chkmSotX7.L2LL29XjyJAXImEkoGQWahA wALeKP5HIsdW_8Pdt2wtmKMCX4ggf5TP.YoAhlqGmiTrJqqgGzJK_tPkn_uZG9eVKpmV2NarwGJ4 rc_xK2k76K9DL_EvnSxLtE4TYxWN1D1OgcO2vkyctlHD_c3v_O_XRoj9pn4WHVqW1mALRWd_XoOO nL7bX0GlSM61MGxhWdklXsBynllFVAKqNcbO5NDoh111EGvQ6xQTpvTl1sqLocvR2kpl5T5yeLBx KKPfI7jzcidz6E9WJ5XN4FpJU8OwHrkOQyQrEheSWovcRypllT4ekhVoz7sGuLEp3A0W1Jcq2Ovj OtFNQTHMBCsArjjsJ8Nruw05HaK_ivnP8DE.kNXPzGfUxQ.zeKm8izfpmpEkydq1VwCKHCOv9h8H XX0F6KCck18XNdV4HddjGObg4Permft3m6hrODHOE6DfV4dHWkVAoo5lTCFRRgRapAvUkcGFX1RG .flHPPpBexFFfeqxwGrXgqakcWRi.698djX0YAlaW9H0YH7ra58wyCeBghhC0p4JsubC3DxlHHYX PROqCY_Oh6sD7t6ipZEc639YLCr06fx89CuXzfgnbfEUV_xGAjhWL0NEL_DtXCI6zkltrJYD_D3B c4MdfKaMTQPEKI__KYwybLwl65L2m_.beSDss42YOzpwsyvSGgrXMN1LnPnvfHATRKibfPuE47Xo b5Pg7dmRaajs9aSwCZBHPnrGdeZASCOQMJ1zNzyR3z3f4H4fIU8_QS4nFUs4z0_z8K747apsvv8K oNM79gmqA.iVowviyIffh9adDrse85sA8yLdCVvpvXnoKhX3tzaqiEpNDmqtgR.Mv3wr.W7x7f0D TEbI4Xh.d53cbuDTV3F5ncPlZbAFc3am3RJflMdOQyP1Zb6Ea3UQKDWBjddA0SRO_U6cY_1Q2Enb bJ9NG7rGfKbjcLYDuHQxORu2ERTHfRLuYUbKlTo99FeDts94xmidnlFP31ehbshHN1fARdesdvEP EIe28hvPfQnPZmw0YGOMq2YeVnpDWkHbqtOVTZXNuK6rtOSizU7B1kOaFXFntWiLzwAQq95_ZH7x i8YOAZZPi86uPVMW1Xe_B9VSRZsxgnEkWmwSpyovQ2RI5YQ9MypPr7Cmy0Q7FaKoUyr6XPTVZivG h.reyV_E2aNyvy.k.BJv6ZGrmFSmk6N2WPZR4TXSGFNWBdDasueg6uT3xuiKDU0yPzVrb9ZcjVE7 ghRv4cUsvRbZe775e8aZVMm9EEV08Yvjg3N50fA6QSQ1sfKZbUFRcsTtypML6wHD.xRTQonRy8RZ jQt3A83Sf37Avli00IuB3GkZz21DM9w1se7OH254c0Y74y0V_jquT5w-- From: "Alex Xu (Hello71)" To: musl@lists.openwall.com Cc: "Alex Xu (Hello71)" Date: Thu, 21 Jan 2021 09:02:40 -0500 Message-Id: <20210121140240.83405-1-alex_y_xu@yahoo.ca> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit References: <20210121140240.83405-1-alex_y_xu.ref@yahoo.ca> Subject: [musl] [PATCH] don't set errno in free busybox echo fails if free sets errno, which madvise does on old kernels. --- src/malloc/mallocng/free.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/malloc/mallocng/free.c b/src/malloc/mallocng/free.c index 40745f97..82836815 100644 --- a/src/malloc/mallocng/free.c +++ b/src/malloc/mallocng/free.c @@ -119,7 +119,13 @@ void free(void *p) if (((uintptr_t)(start-1) ^ (uintptr_t)end) >= 2*PGSZ && g->last_idx) { unsigned char *base = start + (-(uintptr_t)start & (PGSZ-1)); size_t len = (end-base) & -PGSZ; - if (len) madvise(base, len, MADV_FREE); + if (len) { + // madvise(..., MADV_FREE) returns -EINVAL on old kernels + // POSIX.1-202x requires free() to not modify errno on success + int e = errno; + madvise(base, len, MADV_FREE); + errno = e; + } } // atomic free without locking if this is neither first or last slot @@ -139,5 +145,9 @@ void free(void *p) wrlock(); struct mapinfo mi = nontrivial_free(g, idx); unlock(); - if (mi.len) munmap(mi.base, mi.len); + // POSIX.1-202x requires free() to not modify errno on success + // munmap should succeed but no harm checking it again + if (mi.len) + if (munmap(mi.base, mi.len)) + a_crash(); } -- 2.30.0