From patchwork Mon Jan 31 05:21:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carlos O'Donell X-Patchwork-Id: 50580 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 023F13858415 for ; Mon, 31 Jan 2022 05:22:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 023F13858415 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1643606522; bh=nI1iQo+ZFimu4iGo3JO/YOUdoaiuZdxN3LDb25uBsDA=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=eMcP+x5RRcd3CglcxlV5UN5x5YWGpeo3xCYTh88eexP5WqV8kkVL5fKh4w/o+zMT4 +jIrbIlJrlhyo3BjygKV8pxamiDf518mc3Den+t2Tqb1YR0MEvfL5LIi48ysvRKbb9 v3LqYK0fVvAakV1Z1TDX1vgh2tRaJUshtHLXtPWk= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 472753858D28 for ; Mon, 31 Jan 2022 05:21:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 472753858D28 Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-147-JddVzhkONXC27i713r7svA-1; Mon, 31 Jan 2022 00:21:39 -0500 X-MC-Unique: JddVzhkONXC27i713r7svA-1 Received: by mail-qk1-f200.google.com with SMTP id a127-20020a37b185000000b004789e386256so8868628qkf.8 for ; Sun, 30 Jan 2022 21:21:39 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=nI1iQo+ZFimu4iGo3JO/YOUdoaiuZdxN3LDb25uBsDA=; b=DflByV6eqpAZJZ2gUSzQgOBkr/DlCtQSVDMbaCXqaOl8DgIDXHAEFvrxp2LprW7jhM QENP9+utypcSlhki1fH39goWg0a/F76Gs7MNkQv13HPO4ZGErivSFKCFOggUAbmvV4BW GOe1BU0mIeSJn/8GfQrrNHnV/vii0OEBnrzICFTp/WCrQjc5zLB4xkVcYppOZr1UgL8p ejgP48EQWEXg3k4JKexnWe+JPTiM/RMxwnKori2kwwtnYOiG9HET8PxazaIwHiLbnzqX URNGYsjzCVqIK8uzoL+26j0CfNBupvP0h0WFSdmfjgXxccNrE/uK5Ho8xOFQyph8ZodG zq0A== X-Gm-Message-State: AOAM530bfVtUqcpJJFIocF51tAfkqW7UguB8EM8mpawxrX7t3nurO2tF zmNZT8FsfBUUUc7jpS5ybLsrFnp/JLiMKMyS0/Ul7h7gteBzoLG7hitGdVfO/PPvyvAqrQqibKk HzVdtk7DtBIj46kfjOcCd/WgytfYpuD+cuHptp0Z1a+8sDHa8JQ/ZfkUNfnSmMXkm8rERxA== X-Received: by 2002:a05:6214:2344:: with SMTP id hu4mr2502559qvb.0.1643606498573; Sun, 30 Jan 2022 21:21:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJzs7C8LNe5Ck2Is8CzkHs5TEQRVnPeFvYLqGdoFbFllLgZm865N6BQ8RDKCUOmMgr39y6zFpg== X-Received: by 2002:a05:6214:2344:: with SMTP id hu4mr2502548qvb.0.1643606498283; Sun, 30 Jan 2022 21:21:38 -0800 (PST) Received: from athas.redhat.com (135-23-175-80.cpe.pppoe.ca. [135.23.175.80]) by smtp.gmail.com with ESMTPSA id bq41sm2557749qkb.9.2022.01.30.21.21.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Jan 2022 21:21:37 -0800 (PST) To: libc-alpha@sourceware.org, joseph@codesourcery.com Subject: [PATCH] malloc: Fix -Wuse-after-free warning in tst-mallocalign1 [BZ #26779] Date: Mon, 31 Jan 2022 00:21:32 -0500 Message-Id: <20220131052132.3854764-1-carlos@redhat.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Carlos O'Donell via Libc-alpha From: Carlos O'Donell Reply-To: Carlos O'Donell Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" The test leaks bits from the freed pointer via the return value in ret, and the compiler correctly identifies this issue. We switch the test to use TEST_VERIFY and terminate the test if any of the pointers return an unexpected alignment. This fixes another -Wuse-after-free error when compiling glibc with gcc 12. Tested on x86_64 and i686 without regression. Reviewed-by: Siddhesh Poyarekar --- malloc/tst-mallocalign1.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/malloc/tst-mallocalign1.c b/malloc/tst-mallocalign1.c index 8bfd50c468..3116748e7e 100644 --- a/malloc/tst-mallocalign1.c +++ b/malloc/tst-mallocalign1.c @@ -20,6 +20,7 @@ #include #include #include +#include static void * test (size_t s) @@ -31,41 +32,42 @@ test (size_t s) return p; } +#define ALIGNED(p) (((uintptr_t )p & MALLOC_ALIGN_MASK) == 0) + static int do_test (void) { void *p; - int ret = 0; p = test (2); - ret |= (uintptr_t) p & MALLOC_ALIGN_MASK; + TEST_VERIFY (ALIGNED (p)); free (p); p = test (8); - ret |= (uintptr_t) p & MALLOC_ALIGN_MASK; + TEST_VERIFY (ALIGNED (p)); free (p); p = test (13); - ret |= (uintptr_t) p & MALLOC_ALIGN_MASK; + TEST_VERIFY (ALIGNED (p)); free (p); p = test (16); - ret |= (uintptr_t) p & MALLOC_ALIGN_MASK; + TEST_VERIFY (ALIGNED (p)); free (p); p = test (23); - ret |= (uintptr_t) p & MALLOC_ALIGN_MASK; + TEST_VERIFY (ALIGNED (p)); free (p); p = test (43); - ret |= (uintptr_t) p & MALLOC_ALIGN_MASK; + TEST_VERIFY (ALIGNED (p)); free (p); p = test (123); - ret |= (uintptr_t) p & MALLOC_ALIGN_MASK; + TEST_VERIFY (ALIGNED (p)); free (p); - return ret; + return 0; } #include