From patchwork Tue Sep 24 11:38:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kjetil Oftedal X-Patchwork-Id: 1166537 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=uclibc.org (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=uclibc-bounces@uclibc.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46d08y0SMtz9sPJ for ; Tue, 24 Sep 2019 21:59:13 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 757E4844EB; Tue, 24 Sep 2019 11:51:17 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bOnG9hpGybzk; Tue, 24 Sep 2019 11:51:17 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id E49A784693; Tue, 24 Sep 2019 11:51:16 +0000 (UTC) X-Original-To: uclibc@lists.busybox.net Delivered-To: uclibc@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 16F651BF31B for ; Tue, 24 Sep 2019 11:51:15 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 1468E203A9 for ; Tue, 24 Sep 2019 11:51:15 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cukygYbO4CLT for ; Tue, 24 Sep 2019 11:51:14 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from rel03.intility.com (rel03.intility.com [137.221.30.10]) by silver.osuosl.org (Postfix) with ESMTPS id 3858B20402 for ; Tue, 24 Sep 2019 11:51:14 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2F4AAApAIpd/2QKAQpkHQEBBQEMBQGBVQYBCwGEOZ82hWWJRYF7CQEBAQ4FKgEBhD8Cg0U2Bw4CDAEBBQEBAQEBBQQBAQKGIoI6IoNEBlwtFjshAjQZgyKBagEDrxYFAReFTIF+ChknDWaBRQkBgSoBhy+EcYF/gwF0bIIagXOBBIUWBKxLQUaBZoIujluEAQIZmSQBmDWPIoFZC4F/MxoIGxVsgjtQEBSQFXGKX4JUAQE X-IronPort-AV: E=Sophos;i="5.64,543,1559512800"; d="scan'208";a="12962790" Received: from i2-relay-002.i04.local ([10.1.10.100]) by rel03.intility.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Sep 2019 13:38:51 +0200 Received: from buildhostv2.i04.local ([10.70.47.153]) by I2-RELAY-002.i04.local with Microsoft SMTPSVC(10.0.14393.2608); Tue, 24 Sep 2019 13:38:51 +0200 From: Kjetil Oftedal To: uclibc@uclibc.org Subject: [PATCH] malloc: Add lock to heap consistency check Date: Tue, 24 Sep 2019 13:38:52 +0200 Message-Id: <1569325132-22320-2-git-send-email-oftedal@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1569325132-22320-1-git-send-email-oftedal@gmail.com> References: <1569325132-22320-1-git-send-email-oftedal@gmail.com> X-OriginalArrivalTime: 24 Sep 2019 11:38:51.0278 (UTC) FILETIME=[A31D02E0:01D572CC] X-BeenThere: uclibc@uclibc.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Discussion and development of uClibc \(the embedded C library\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: uclibc-bounces@uclibc.org Sender: "uClibc" The heap consitency check was unprotected leading to false heap errors being reported in multithreaded applications. Signed-off-by: Kjetil Oftedal --- libc/stdlib/malloc/malloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libc/stdlib/malloc/malloc.c b/libc/stdlib/malloc/malloc.c index f6bf10a..485aac3 100644 --- a/libc/stdlib/malloc/malloc.c +++ b/libc/stdlib/malloc/malloc.c @@ -204,8 +204,11 @@ malloc (size_t size) debugging_initialized = 1; __malloc_debug_init (); } - if (__malloc_check) + if (__malloc_check) { + __heap_lock (&__malloc_heap_lock); __heap_check (__malloc_heap, "malloc"); + __heap_unlock (&__malloc_heap_lock); + } #endif #ifdef __MALLOC_GLIBC_COMPAT__