From patchwork Tue Jun 26 13:15:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10488991 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 27E3D601A0 for ; Tue, 26 Jun 2018 13:19:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16D4728956 for ; Tue, 26 Jun 2018 13:19:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0B34F28960; Tue, 26 Jun 2018 13:19:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B6B1A28949 for ; Tue, 26 Jun 2018 13:19:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935527AbeFZNS3 (ORCPT ); Tue, 26 Jun 2018 09:18:29 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:54021 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935521AbeFZNPx (ORCPT ); Tue, 26 Jun 2018 09:15:53 -0400 Received: by mail-wm0-f68.google.com with SMTP id x6-v6so1883005wmc.3 for ; Tue, 26 Jun 2018 06:15:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yBPRwBaWYUVSArjumBa6fauS/4DSRyKow4zS0UL3/uQ=; b=F5BA1fb9nMc2llPcpCY45+Govd2NK97f8DeANvLf6/pO+8ZmySSwPGT1QB8mjbGwcm +jBy/JwaDlvGaXBjCxqHRVmaDgiCAUY96hiv/hM8YaY32atVyychrCmE+3/BVRMOsNwp Kn6aKoO5sB6cWxGvwtuGwgOI2aVvPPfsY2sj0pFhyoLksQSZPx/tBv8y5N6P6ypfZ1YE SV/LxGr4VV24bnWuBuEtAb4tit0Eq2C6vck2Um3KnGgDCw+f7W46c4Ntra9VSYDZR6Zh tdwZkPQDXYh/YEwXFnAlSQdYMSz6tay2i7Pj/cLpfnfV29yEN7Nd+naOl15nnSAyJlP9 Iy3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yBPRwBaWYUVSArjumBa6fauS/4DSRyKow4zS0UL3/uQ=; b=HNk/xKYECZvXa4lzmj/DRgBzIjg0E4i/U9xUlYWSa6VLz99ACOs5FCM+VRoxP1tdVg DoguxBhVOu8PaNOh6/f/MbjranQnmnFY9ERWaKK10AahngNL7NqTJhFS10XJXfPJlnzj yLKyz52iYBA8lerAOqL2kuoGenvLZHjz22p1uM+mVh+2Lto7ahRtwdrJFusND6abQNBz CT/7I2EVS28vk7AGwtGkozRi5L5+XwHe2IXD3u3hYr3rTaPXfb6HbU8rT36xe4gwFK8I 8q8IJ/KAY6gfd4/m8dQs6SewZR1LphoLrKInFaD2fwtbNItIAyZiiyxM4CkaraEjM8no F05w== X-Gm-Message-State: APt69E3EamN19uRpxzEcVVshjD+ujwjKyZ6ZxjoL8AjL72NW52e4sWu9 vzFBQX8GrCVzzwcNv12dohnuNA== X-Google-Smtp-Source: AAOMgpcIZGN8/Izw0CfyPMZx5yvgYHVOM/4GCivZrU5323uijnvw+HedN5vD/6BGwQOLFt2SEUXnAg== X-Received: by 2002:a1c:3504:: with SMTP id c4-v6mr1531279wma.59.1530018952054; Tue, 26 Jun 2018 06:15:52 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id w15-v6sm2162639wrn.25.2018.06.26.06.15.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Jun 2018 06:15:51 -0700 (PDT) From: Andrey Konovalov To: Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Will Deacon , Christoph Lameter , Andrew Morton , Mark Rutland , Nick Desaulniers , Marc Zyngier , Dave Martin , Ard Biesheuvel , "Eric W . Biederman" , Ingo Molnar , Paul Lawrence , Geert Uytterhoeven , Arnd Bergmann , "Kirill A . Shutemov" , Greg Kroah-Hartman , Kate Stewart , Mike Rapoport , kasan-dev@googlegroups.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sparse@vger.kernel.org, linux-mm@kvack.org, linux-kbuild@vger.kernel.org Cc: Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Jann Horn , Mark Brand , Chintan Pandya , Andrey Konovalov Subject: [PATCH v4 10/17] khwasan, mm: perform untagged pointers comparison in krealloc Date: Tue, 26 Jun 2018 15:15:20 +0200 Message-Id: X-Mailer: git-send-email 2.18.0.rc2.346.g013aa6912e-goog In-Reply-To: References: Sender: linux-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The krealloc function checks where the same buffer was reused or a new one allocated by comparing kernel pointers. KHWASAN changes memory tag on the krealloc'ed chunk of memory and therefore also changes the pointer tag of the returned pointer. Therefore we need to perform comparison on untagged (with tags reset) pointers to check whether it's the same memory region or not. Signed-off-by: Andrey Konovalov --- mm/slab_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/slab_common.c b/mm/slab_common.c index c279b52c7565..7746d2ef5d45 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -1509,7 +1509,7 @@ void *krealloc(const void *p, size_t new_size, gfp_t flags) } ret = __do_krealloc(p, new_size, flags); - if (ret && p != ret) + if (ret && khwasan_reset_tag(p) != khwasan_reset_tag(ret)) kfree(p); return ret;