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: 10610387 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 4F7D514BD for ; Fri, 21 Sep 2018 15:14:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F46928960 for ; Fri, 21 Sep 2018 15:14:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 30FAF2E49D; Fri, 21 Sep 2018 15:14:47 +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=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=unavailable version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D7F4428960 for ; Fri, 21 Sep 2018 15:14:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5DA428E0034; Fri, 21 Sep 2018 11:14:11 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 5632E8E003A; Fri, 21 Sep 2018 11:14:11 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B5A88E0034; Fri, 21 Sep 2018 11:14:11 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by kanga.kvack.org (Postfix) with ESMTP id CD8038E003A for ; Fri, 21 Sep 2018 11:14:10 -0400 (EDT) Received: by mail-wr1-f70.google.com with SMTP id d9-v6so6335187wrv.4 for ; Fri, 21 Sep 2018 08:14:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=vP7c768qnCzMOxVQ3loi78vrT7BMbKGxJOBnuhTzi5A=; b=tsqCU4h/DrBZtQMektF8oae1uHfMnz0tx53ivAJjZSZ/zyDd+qrBffxkFaqnUX/4dl IO1R59tyz25uyD/MlbrItgFLJ/ldX+fkGvFiv9TykMlDuem5FoXoxPZdN+va/rkKkDej dcvGjBiwRuZvvq72OKWT8huh+AcofL1Kau3fZ1EUTD/Yvz+cryBP5X0Clm9NVh9Wrr2O OSJABt2wErfgkVLURFGpv7LteEaBeddRZ1iMMDpi7n2fybcDIEDkc22VhO86H5e2OPtf Tg9hJbGgD53NUBZWqWJEU1KmuDPXayKiawAmOEsvc3VdxypokNzSaJGP/gKJbMzdOu+I Izug== X-Gm-Message-State: APzg51CkpAGMS5xlKhKjFyTO/KiL5zHKINdu7nk5bFUv3VdtdIWSWrA7 iedKjNQMNWghBKlmisZVA6WAYyElSy0T47d57B+OfUJ8afIdG04DSEG9Qa16gWJ09GD1Auq066q /IiZTEVMJrPTWR1AMthBlCDmGYaQEQvj+N5tfgJgp6O8ZJZkSGeXJCRhBJEaxD75WufvWunLXj/ be07cCWDGNHaMfCsdrlpIQpbxQMF8W97b2arFPksRZBZv1G6/y44QUQPbth/OazyWqtg2FdKe48 ekD2Ko9QLwP8RlIsPQwfsiSMn/K0ELmypMYoiTCgaxK3z9TKxNHkBtkGSFFTdVO4KmktGzTwgGO dtiNFyMdzx0gYfbiTpNj/l114i2a7Gb+mcRXaod4pM4VCdJecMd5MvxgJ676kQNBxIq4dKTqHam B X-Received: by 2002:a1c:1a48:: with SMTP id a69-v6mr7781420wma.43.1537542850348; Fri, 21 Sep 2018 08:14:10 -0700 (PDT) X-Received: by 2002:a1c:1a48:: with SMTP id a69-v6mr7781338wma.43.1537542849424; Fri, 21 Sep 2018 08:14:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537542849; cv=none; d=google.com; s=arc-20160816; b=ScXny6DWcnP4/4TiBdhPZeeEtCDkXoOLsqJIM5Fp8DMJeuZlrsoGQrhTjctyshBC2o Pv4nw/qCI8NAQiWYWgIqMfSJ3Nfc1hpmxKX85ZecKDQlDiKni8jdSFNN61RgcX8ni821 27Y+Ys/gvhXLBe35vGoivwzZzIprPL8KZJ8yzhwBxHfcz26MzDUUaoH3hE1F3sfCOH90 QRmjEcDPgUbvBiX6X88H5v5MUQaT9YQcK1O4V8qgI4Y0wlClpaY6SPw4/ASTAdRDhfXH avQJFes0GmkOAWsdM44QRsBPuKBNiEADlhxCwSdNpJK+pP+myvbVePwlHeS/3mS/vXT7 A7jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=vP7c768qnCzMOxVQ3loi78vrT7BMbKGxJOBnuhTzi5A=; b=LCcZa/cKD0lXw5g0PFaZP+Mp7PoFmv4H5f65EdCOyYDmiQuwPyk3j04PU+a7sm/Rpz Jn/Qm3oCI4c9bxJi+bvMMkTQIpLL6c0YTpx2r0QQ/Ae/owis8G772OH+dqccKZUNNpaA GF6ke85jie+KJ2dju6h4QhJiX/oACOrxcyvni8vjUy83c+bGAqkofNE2VegrCezqymT8 uLI2q1p1S5iTLNdt0JKIT+GlXtzzzqm4ji4l3nbQp/P21wJCch8U9ASutEzHJoH8PP7q wMY0zOM3DhPAs8MbKcB3TjVJ6JgM/PR8hmGlJc5oTwJ7DQ8CjFoOxL+9powDUmuT7/nX cAbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RLE1rsoz; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id j13-v6sor1383621wrp.49.2018.09.21.08.14.09 for (Google Transport Security); Fri, 21 Sep 2018 08:14:09 -0700 (PDT) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RLE1rsoz; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com 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-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 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 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;