From patchwork Mon Nov 13 18:27:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_Hamb=C3=BCchen?= X-Patchwork-Id: 79775 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 58D7E383DF9B for ; Mon, 13 Nov 2023 18:27:51 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.nh2.me (mail.nh2.me [116.202.188.98]) by sourceware.org (Postfix) with ESMTPS id 136A8385B524 for ; Mon, 13 Nov 2023 18:27:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 136A8385B524 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=nh2.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=nh2.me ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 136A8385B524 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=116.202.188.98 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699900057; cv=none; b=fatIC+HmgMUuK7tv4ESHPHk07hkcd+daRcKAaeP6KAnuSCdg/Vybvf89L0unW3too5qW2pxF5SEuZDbIaao8f1gKRXyA0EFYXgONRsaCF5FZ3xiws8SmY3gYTWBxntjh50/LzkOw+5BKIcJGR4b+2/TSf71qXmp4/t8VHM2hTC8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699900057; c=relaxed/simple; bh=YS+Mi4a17DpruI4+GMoTxXkiZNk1WNjMN/1Jm/Mbe30=; h=Message-ID:DKIM-Signature:Date:MIME-Version:Subject:To:From; b=V8HS9ak+afBQk7OYaIa/V4wUqRWh5VNvr9w3b4IWg23QrIPCkGd98zQRnO9QFX/SgWFZSmRxyvMivfW3ynItt0IFKZc3BRCat9n9yFYrGWgI9ZTOzd+vGWyCbulWWTsgi4NIy9FGlWk7TqY++DINrF1ugTq5KurtIroBhopcqK0= ARC-Authentication-Results: i=1; server2.sourceware.org Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nh2.me; s=mail; t=1699900054; bh=//vzuSJDUh+BidV+lFWCoArXVZEvZz72Li5amIcf7/w=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=aIlGA365EzDQm1B7SJm82VUDu4psX0gzGXBlZF6ovpMDj1tKq94biXLzgjAiKdQeh 6CEuo4e5IKRXFKkvTuRlZIjUBdlyaQUVUgiRG/vGtGSZs+2sneqgS6P5K8rBqag2Za jqs7R/7ivB9YBSrOJXJw8bvrz1fSxzCcTwFBOjj2Gi38DYsiBfnSiAOAY6xK6/Tuk0 dCLC8gAIAn7oP0sObiL7ITWEsvaFhjC7oI+e3tvU5ApurLUNMzIO7V/+oM9EseIlTD ka+KiUrbREKt70xOkTPDuBs0YE7L9gH2YK8CUsSNGk9z257Uz2QLLM4magnU+mXOzV /xDiQ6dwBi0bA== Date: Mon, 13 Nov 2023 19:27:25 +0100 MIME-Version: 1.0 Subject: [PATCH v2] malloc_stats(): Fix `unsigned int` overflow Content-Language: en-US To: =?utf-8?q?Niklas_Hamb=C3=BCchen_via_Libc-alpha?= Cc: DJ Delorie , Andreas Schwab References: <87v91fj91v.fsf@linux-m68k.org> From: =?utf-8?q?Niklas_Hamb=C3=BCchen?= Autocrypt: addr=mail@nh2.me; keydata= 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 Cm/C5afDKRk9vLSI8zyaJfM= In-Reply-To: <87v91fj91v.fsf@linux-m68k.org> X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_INFOUSMEBIZ, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Fixes malloc_stats() returning vastly wrong information for programs that use more than 2 GiB memory. `man mallinfo` documents that it uses `int` and wraps around, but `man malloc_stats` does not, and should not. Fixes https://sourceware.org/bugzilla/show_bug.cgi?id=21556 Signed-off-by: Niklas Hambüchen --- malloc/malloc.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/malloc/malloc.c b/malloc/malloc.c index 78a531bc7a..dfb266a226 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -5374,7 +5374,7 @@ __malloc_stats (void) { int i; mstate ar_ptr; - unsigned int in_use_b = mp_.mmapped_mem, system_b = in_use_b; + size_t in_use_b = mp_.mmapped_mem, system_b = in_use_b; if (!__malloc_initialized) ptmalloc_init (); @@ -5389,8 +5389,8 @@ __malloc_stats (void) __libc_lock_lock (ar_ptr->mutex); int_mallinfo (ar_ptr, &mi); fprintf (stderr, "Arena %d:\n", i); - fprintf (stderr, "system bytes = %10u\n", (unsigned int) mi.arena); - fprintf (stderr, "in use bytes = %10u\n", (unsigned int) mi.uordblks); + fprintf (stderr, "system bytes = %10zu\n", mi.arena); + fprintf (stderr, "in use bytes = %10zu\n", mi.uordblks); #if MALLOC_DEBUG > 1 if (i > 0) dump_heap (heap_for_ptr (top (ar_ptr))); @@ -5403,11 +5403,10 @@ __malloc_stats (void) break; } fprintf (stderr, "Total (incl. mmap):\n"); - fprintf (stderr, "system bytes = %10u\n", system_b); - fprintf (stderr, "in use bytes = %10u\n", in_use_b); - fprintf (stderr, "max mmap regions = %10u\n", (unsigned int) mp_.max_n_mmaps); - fprintf (stderr, "max mmap bytes = %10lu\n", - (unsigned long) mp_.max_mmapped_mem); + fprintf (stderr, "system bytes = %10zu\n", system_b); + fprintf (stderr, "in use bytes = %10zu\n", in_use_b); + fprintf (stderr, "max mmap regions = %10d\n", mp_.max_n_mmaps); + fprintf (stderr, "max mmap bytes = %10zu\n", mp_.max_mmapped_mem); stderr->_flags2 = old_flags2; _IO_funlockfile (stderr); }