From patchwork Fri Sep 21 15:13:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10610407 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1668E14BD for ; Fri, 21 Sep 2018 15:15:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 064942E4AA for ; Fri, 21 Sep 2018 15:15:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E8BC62E4CA; Fri, 21 Sep 2018 15:15:01 +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=-15.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, USER_IN_DEF_DKIM_WL 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 A4A312E4BE for ; Fri, 21 Sep 2018 15:15:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390930AbeIUVDa (ORCPT ); Fri, 21 Sep 2018 17:03:30 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:35172 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390887AbeIUVD3 (ORCPT ); Fri, 21 Sep 2018 17:03:29 -0400 Received: by mail-wr1-f65.google.com with SMTP id j26-v6so13226731wre.2 for ; Fri, 21 Sep 2018 08:14:09 -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 :mime-version:content-transfer-encoding; bh=vP7c768qnCzMOxVQ3loi78vrT7BMbKGxJOBnuhTzi5A=; b=RLE1rsozSV0zZ0sOdztgxYnq2Tug9v/n8R1sOEFvbh9GcH/MGsLOsDgt9HjYx+oyvh zfPs40puTwCQKCzPmSYjvtiGjJ2q3aiQvCVQEP6VTWXLmlVaEma8hlLfst73Peo5eRfY ZA/N/WdN7PXmdj+Cimt2jW3x7vxdaTqVU7z3ZaZfH/zthxecXN9c24SqSkGUDQrOjwZT DyxBJokdab+lSvQ6ty/N60UryhF3VIyRtRwxpjr+yQDySQ1dHAiPdnkCaK1Z5CqHhU2c ijfMHIArKRoyTAPwQjUJWykxdjrdQOqHpTDKFNd/ODybrDvxkRHAAbNGxrPJzAS8oCR5 ZYoQ== 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:mime-version:content-transfer-encoding; bh=vP7c768qnCzMOxVQ3loi78vrT7BMbKGxJOBnuhTzi5A=; b=eJGSmzA5QeaQZMlbghQ+mPFA5kSxdENpo+hLp9aJw2Ma+V1yx68cqpEQqDSVcuQ2at PyH16EbFoQTaacn5FrWQdMXdV1MWxXKLXEFtsuctIIXup004rX4c6YSsY5ifdPmSIwoh p5y7e0eJh6PvJ4OU8PU0BXMdA2FveFskS5vFCaM3B/e2qg2V4zm0Sychg7VZ9OWEEtzF iCmap1E427oAapLGowsj5HxYqL5DH8qPHkwWs5JRW2tXyTqbhK6UH34kp6eUfsXOLUEX IBcNe9dhCTId+coom/gHgXcfow3N+JwFoE07Ao911ArXH68ApOf9tTEHh3mUTZ4n1zhg y98A== X-Gm-Message-State: APzg51CceaqgWeoBVQhkJWKBGI/mKCB/kT6ANw6Wx/XAYsxg1GV2Uq2v CTzgHVqMkZg4yDZN8uEtvu+blA== X-Google-Smtp-Source: ANB0VdbH3LzUVKRrjYmGt7AbNi6fGfWTpEst1ryidFlZ6Ot+wwm5EVh2XYgPZ77DuIFyB/oTqIzyYQ== X-Received: by 2002:adf:bc44:: with SMTP id a4-v6mr40096556wrh.255.1537542849011; Fri, 21 Sep 2018 08:14:09 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id e7-v6sm27990271wru.46.2018.09.21.08.14.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Sep 2018 08:14:08 -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 , Vishwath Mohan , Andrey Konovalov Subject: [PATCH v9 13/20] kasan, mm: perform untagged pointers comparison in krealloc Date: Fri, 21 Sep 2018 17:13:35 +0200 Message-Id: <77d6321d5117c8b8e2267a707b693a6eb67ea17c.1537542735.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.444.g18242da7ef-goog In-Reply-To: References: MIME-Version: 1.0 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. Tag-based KASAN 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 3abfa0f86118..221c1be3f45f 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -1513,7 +1513,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 && kasan_reset_tag(p) != kasan_reset_tag(ret)) kfree(p); return ret;