Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp115423pxb; Fri, 5 Mar 2021 16:18:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJxadYSeKstntQL4P0bAnOSEhPiMqKk8qHf3UQHwIshixFAT9MB60azjDiAWiDAoHF1+pwqb X-Received: by 2002:a17:906:3ac3:: with SMTP id z3mr4851395ejd.106.1614989908651; Fri, 05 Mar 2021 16:18:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614989908; cv=none; d=google.com; s=arc-20160816; b=U5KQJ+20K3E18H3lE3R+onQdaGpoxJWsj/hYJ1VwPYFHmlDnrUpeZrOrHmlmuJTJCx aEYYEAntmL3dQ6WkKIxdbMRd6lwAYOFu7lzwKwlt6iGSkFb6VV8ma5RpPoDuARRdb67c k9lDlajN/9Z1v4VJBC437GN3AIL8KXnNo3kv2+jcZUGmbOMZFAWjLCsNZ0olYaEFNA/v KzNsYdHUaAWmjJIp5+Tl0xl6IzWUCI/688j7nQlcG2jPdPauL4r8d+yFvHTQsiDrvd1G YZl7qigUE0qHGDZs+x6Bi8Dg0OBG+lsYvWaLYdElafGte4t3A973zFFzMxtpdDjH+osG cgtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :sender:dkim-signature; bh=fj2q1zjTS7x5AWIG0dea58z8gWp6VMPPrsYTyOmyMJM=; b=G2FAIwfcKHbkBKIPyjfK9VbeVuPjsZRUtqklECVGsCv8ijP4nZ3bBD0pCb5Vqw3kxe /CjCk2zUYxEWjSBxarH3R+8AggBob2edsgJFtICWtzuvbYWP+rUh0Jcbhz0RCD7hji0h k12F6QFNq75Nx9UYgD/O9+29FArY//JYRiINtpzRbw92Vy5G5RWkEAco55NNWeJfk9dr w5pRfTHpxaQpapOo5NONt+6YC9P4anaVEIewQZSQB2IOwDuz51fHjlTX7MNVagQvwIpD 5q78L1v+hcQaZh2Cx69rW4uFVhkyWQv09h/JvFmgyJXtP8k0YDKDguREvzvwyVIgoWDW P9Kw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=UM8dPWue; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hd42si2482583ejc.727.2021.03.05.16.18.05; Fri, 05 Mar 2021 16:18:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=UM8dPWue; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229821AbhCFAGh (ORCPT + 99 others); Fri, 5 Mar 2021 19:06:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45422 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229818AbhCFAGD (ORCPT ); Fri, 5 Mar 2021 19:06:03 -0500 Received: from mail-lf1-x14a.google.com (mail-lf1-x14a.google.com [IPv6:2a00:1450:4864:20::14a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC71BC06175F for ; Fri, 5 Mar 2021 16:06:02 -0800 (PST) Received: by mail-lf1-x14a.google.com with SMTP id m16so1386116lfg.3 for ; Fri, 05 Mar 2021 16:06:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:message-id:mime-version:subject:from:to:cc; bh=fj2q1zjTS7x5AWIG0dea58z8gWp6VMPPrsYTyOmyMJM=; b=UM8dPWueQ2rP8EQo22LdiFyFIdNcCm2LrTSYmDM5rdipYyWdvPnCGXqzzc47WHtSsy hQkeEeT7Ssu8oPpE1PgktnWl0RccYYOCRoDcrhs4G3kfHceJK9WbSVmkpsfAXbwrLYO5 o1Laczp1zvUGvOkZpzzwBWHaUjHUJaJU3YWWeO3Oovo1hrmE1WKm3qhhSz78IQK5ORPQ QD+UAm0N7kAwsHGr9UDhMzI99Kq4GktDYPgKl5HXdujIwjSqUEzKyeVK+AYmD6YAc2QC GnTl1m7b2eHmW9gNVCAN1UR0DDmMSG3P7jD+nztIZfiYhmCvpTXyRu6g+FyTNRmi/0cm jjhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:mime-version:subject:from :to:cc; bh=fj2q1zjTS7x5AWIG0dea58z8gWp6VMPPrsYTyOmyMJM=; b=XZ9AjzcxWxfngGHUSSjkHxP4yPVT09lyijYcmXd3akjOE6Pxs3oV6qkkwMVc9e7cQ6 A9npa7HA7sn5frYzsioej6SU9gaZTwmOAyZs2XGrE8iRWSbBQ3tSoZ1QB8a1gq3/UAHT c2ceT/FNMcl1btD8W6UCsEHu1B7+e1tyIvXZMnodDuhxD9dE650754cJyHLxxtNpD7bt MP3eexnYoCEp91gcIEfC3SKZMWxKLhyiSoCO2pYv9K4YAuXqT9hbKsqNFGEgDzo106ZV cAY0ryvpSpFO6O46VmM9N6lH6If7TDiRQWERpQrrcVXvMgL5HUx6BlLxcrWPPc4YnXug 4joA== X-Gm-Message-State: AOAM532puUaLksb+v44HAarlS79BdM3bPyA6Mc7ReZhru5jZwcJzvhVw 96ICDHNxnvtarFiwMRaK0CjV+mAgTGlk4oOQ Sender: "andreyknvl via sendgmr" X-Received: from andreyknvl3.muc.corp.google.com ([2a00:79e0:15:13:953b:d7cf:2b01:f178]) (user=andreyknvl job=sendgmr) by 2002:a2e:8e86:: with SMTP id z6mr833578ljk.27.1614989161291; Fri, 05 Mar 2021 16:06:01 -0800 (PST) Date: Sat, 6 Mar 2021 01:05:57 +0100 Message-Id: Mime-Version: 1.0 X-Mailer: git-send-email 2.30.1.766.gb4fecdf3b7-goog Subject: [PATCH v3 1/2] kasan: initialize shadow to TAG_INVALID for SW_TAGS From: Andrey Konovalov To: Andrew Morton , Alexander Potapenko Cc: Catalin Marinas , Will Deacon , Vincenzo Frascino , Dmitry Vyukov , Andrey Ryabinin , Marco Elver , Peter Collingbourne , Evgenii Stepanov , Branislav Rankov , Kevin Brodsky , kasan-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, KASAN_SW_TAGS uses 0xFF as the default tag value for unallocated memory. The underlying idea is that since that memory hasn't been allocated yet, it's only supposed to be dereferenced through a pointer with the native 0xFF tag. While this is a good idea in terms on consistency, practically it doesn't bring any benefit. Since the 0xFF pointer tag is a match-all tag, it doesn't matter what tag the accessed memory has. No accesses through 0xFF-tagged pointers are considered buggy by KASAN. This patch changes the default tag value for unallocated memory to 0xFE, which is the tag KASAN uses for inaccessible memory. This doesn't affect accesses through 0xFF-tagged pointer to this memory, buut this allows KASAN to detect wild and large out-of-bounds invalid memory accesses through otherwise-tagged pointers. This is a prepatory patch for the next one, which changes the tag-based KASAN modes to not poison the boot memory. Signed-off-by: Andrey Konovalov --- include/linux/kasan.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/kasan.h b/include/linux/kasan.h index b91732bd05d7..1d89b8175027 100644 --- a/include/linux/kasan.h +++ b/include/linux/kasan.h @@ -30,7 +30,8 @@ struct kunit_kasan_expectation { /* Software KASAN implementations use shadow memory. */ #ifdef CONFIG_KASAN_SW_TAGS -#define KASAN_SHADOW_INIT 0xFF +/* This matches KASAN_TAG_INVALID. */ +#define KASAN_SHADOW_INIT 0xFE #else #define KASAN_SHADOW_INIT 0 #endif -- 2.30.1.766.gb4fecdf3b7-goog