Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752020AbdCCNOH (ORCPT ); Fri, 3 Mar 2017 08:14:07 -0500 Received: from mail-eopbgr10095.outbound.protection.outlook.com ([40.107.1.95]:43343 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751160AbdCCNOE (ORCPT ); Fri, 3 Mar 2017 08:14:04 -0500 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=virtuozzo.com; Subject: Re: [PATCH v2 1/9] kasan: introduce helper functions for determining bug type To: Andrey Konovalov , Alexander Potapenko , Dmitry Vyukov , , , References: <20170302134851.101218-1-andreyknvl@google.com> <20170302134851.101218-2-andreyknvl@google.com> From: Andrey Ryabinin Message-ID: <12f7d7bc-23f1-a5b1-5f26-cfe8158e48d5@virtuozzo.com> Date: Fri, 3 Mar 2017 16:15:10 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170302134851.101218-2-andreyknvl@google.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0802CA0008.eurprd08.prod.outlook.com (10.172.123.146) To HE1PR0801MB2059.eurprd08.prod.outlook.com (10.168.95.135) X-MS-Office365-Filtering-Correlation-Id: a316bc7e-59e1-499c-5865-08d462372912 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0801MB2059; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2059;3:wYsNy67JMBeumaL99ok1pfIesPC7GqoC1KH47a1bcOfI6Nn8q1FEayRdjfr+YaxYbSyVDEwUNLG93ZbUBJ+j3TtJAmlgEuefIaC1xkDCLy9+k5kcPB1QHczI7rADE0uDOQbxwWZA/53JWdp0NVL70m/GAviTUZVD6vnfsaEpHGUMf85msMjfF04F2KYHfsggoIQhYi0qDgupEfUenFmGcw+A/tXEg/4ct5Bo3mm7IbIZkkmzdZSQoSnrWztxHpfWmbwpuBqs0jp7M0vrHYlNNw==;25:0qyf+mC16L9VEQ05AkNEYdKXBc0Mre3i9TPz2LyN7e6h4j7egxY3oXfSfiDpoiESiuAFWm9nhZTJzYqOzDPk1vvs1AoPAtY3FptW5npCDiKPlGy20n1ssOUCGCWStnyCF0S1RRPrAIjD7WtK0BgxpD82nfoTJoaUtaKc/5D7y31d1xaVITIKTsfhQwazboHWJuOc/wRP9rsZIiGyrlVNZi41121nP071omegdxYPtaZYQm3QOxzz8Jf7k1+6mozC1FKYrfzquo2aOjiltBaWcwlhpotXkIoOYtOjZYg3xa6Sa5jO+7NqU1XLLa7RZCsTlU2btXDJG3nVSccD4wtoHCAVKC1TmIaimHT2I7P0JkKG3nsSySBQvISHdjcg07aHePWVHrMIGd3DIA+uPKpYtpfuiX6Rgtq+nP1W7kU03Pv932yxyioHp12uu5gS561k X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2059;31:Dy6LehaGZ2q7Yp8A21eo0zTDHQtDRtxUTBPOISztZ2IQsPsfK1cZAo76+MoUH1DnleKbzN3fP8An4ijKH+T8eCXr0R+Lkb6zWj4fIv8F3WGg+eDrA+IGGQn6/tEOuDwIpW5ib1uTUW8MHq6QSDo3LmDyz6+IauB69XlzF5rdTxP0cI0ma/fwOCoZQa/jL7opPn8pLMPLe4A2e/C9upsdZHk8fVWtjuz7wzTC547oyg7KpBB2f9fSdA6rQjUurO8u7QUnV+FQETP94JMqoUvu0A==;20:VDZylXhKXbxgCnGvUJUpuXJajzqXKbkXequPs0jhZDqpfOoU/ick1VOcRAsDn7Eb/S+3/1kZ9jM6IqdjuCKI3+aQA5GPnnZCztlxo5h9jyzI2JzIPqhAzPN0JxcjSFq3QeD1XGwLoBQvGthL4B0m8syxAq+J5IPrG1PPpOG5xwrf6Ua95lKDSiOjW1xyiFHnfEOTvL2fCSAuwmI350Luq9GhLRQo1eCFvgHnwWv15IQRlz6VoMY6b3VAfVXfmx/qPDu/5lisIKsW7emmVKiVKpfh2G20ZOqp7exjqe7vbtZf6nTBSGkTQu6+Ls8ZhxjnqtlhV1Cj4CpI4fL5BMbQr54X92pkUfjkOXPCV2h3N9d2OaOjBm5g0DG4g28U+oeLS7B1p4xSlocXn7prTMABrmIiKWOlrMKEUNrxe56WxpM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(211936372134217); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(20161123558025)(6072148);SRVR:HE1PR0801MB2059;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB2059; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2059;4:oSeLQjCiTFcaWNGcvaDYtgeVpwjW/z+NZFViHG9bqh+4gfCxvG/AfHPvQ5KvRW9/xooMtIhVfYJgdUy4MET2X9z8iUxw5pEQolWhWlRh40bROUcYV3Jvfecl3rBAnjZX4kLQPInS9Cgy6JDbOAcb+gKidMilR190/RMSTJ8WMgkqmUu7X8N6DRoD+sVoGpDIlyv8uQhjl1HfOodrjcDSL00q7asGyOjDioHq7OCaLCiryO0pukyPR0YrET/ufvVZcRD4p+tt5YnyGr4ga4HajZAORyy2DiZho349bUoBeO4Z9fuCcZJerlTNZIAS/Ne/9QXQD08r4tyqTI1YJL/LGgftLrPCbJvu6aJ+A7TQmvNs2PqLgpuZw0oQjixbzcdFQSSd2bzFpUvWdKABhCWBXlTideCbilO8dVnS7wfeCzhXz9ZGC8W1OaTyHln/qM7QlxDxPJbhiuFLGXXkHiI8YQgzmp+GCrwezIaebPTMmwRNcpor/UWKznj7R7GyPhfIfAzF+WJ7wfnwKM29guBk/bGcptDFRP//fz/Ka26rmmyrlR150DC96cTkPEbJlsvLc6fd/zrKI3sLoARTLvmRTd3+WLBaFqC9O8ddSgc52aSTkSNoLPkkz5BvLoenVdUpUwCw042SK4hEqrIWdmyM9Q== X-Forefront-PRVS: 0235CBE7D0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(39830400002)(39410400002)(24454002)(377454003)(25786008)(230700001)(4001350100001)(2201001)(3846002)(31696002)(229853002)(65956001)(189998001)(86362001)(38730400002)(50986999)(47776003)(6116002)(92566002)(81166006)(66066001)(65806001)(53936002)(23746002)(77096006)(6486002)(8676002)(54356999)(7736002)(36756003)(305945005)(83506001)(33646002)(6246003)(76176999)(31686004)(2906002)(5660300001)(6666003)(64126003)(42186005)(50466002)(2950100002)(53546006);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB2059;H:[172.16.25.12];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;HE1PR0801MB2059;23:bDjUVRneAz/HP9hi823IvFKvD68VVEn7Q7x?= =?Windows-1252?Q?Sj5ZPTLX1W9i2kRAjYR8VKd2XNUZAbrAkjvEqTQ3ojGMyounBQBux0l1?= =?Windows-1252?Q?oa6TMb+OVJYU+CbCI53jOeLHGp7atujASCWc0vdtKr2oOEPYCvlGMvKo?= =?Windows-1252?Q?wmjOVNWwJBQ+zrFa8SkYlK+ZFU3fgY9FDX2C9sA5hxtPBxhcmA2iYkMy?= =?Windows-1252?Q?ErI8hFFguBBSFY7lqS/A69jLElkfI9ptYa9XK4hdx225sT+lPPQ2/Q54?= =?Windows-1252?Q?RLiyHR+WxscbWdIYNt/zAUIksP5ZOBbJ1XcB0mvEe08Ob6wosBECPsig?= =?Windows-1252?Q?W5JZCnJTNrtUhTE4YUtXGMOk+a+Ye90V7as7ZPf/ZoWfvh5VvXE15o/Q?= =?Windows-1252?Q?cZ31N6HMJT/KUjtVVqiQnv5zFc98qTZJnjw4NtxQxygxGvU+ygHTHq3i?= =?Windows-1252?Q?2QrBbr1x8gvMhnxojm1Wj8ea3CGWUhkH8cXxw9nNMqg5Ez8+/VbBf9XT?= =?Windows-1252?Q?5oc06IUkKgKbsTdG93jKoIvMoFSFw1nkFNVdDG+esCMJsXgyCJ+JXg4c?= =?Windows-1252?Q?fiYzZzXciwlw20CTvEWXH8K9NuxAVcLXUvs4FuabuNkEVrPe5YXpkIo+?= =?Windows-1252?Q?h3EsdZNJLj9QPfwVnOkXCDzJ/ji93aMR9bzPhdbBU8EFw2vcW2Vj8Q0Y?= =?Windows-1252?Q?J8lVOWmCU3ocLi6jsatLpmeovprgrhY7FqLZfvLDJK/MqUPX92medjHA?= =?Windows-1252?Q?NLncTEe0LnuFj0wvI/91pRibyVQxguZPsSLWf+SPsmgGLURC3rMj6suz?= =?Windows-1252?Q?7U40ldmuBlR3nrBH/SzdrW1sDasZlpSUUhvef6XbHXFzc1J2XNPQdgT2?= =?Windows-1252?Q?c7FRWBfbR5tp+fKYrf5rAvBlLJdTOKMDVVznZUhwn02dyzcy19tN9OUo?= =?Windows-1252?Q?hLYKF0i8Z3eAkdTK2LE89dyBt7jI9XipZZT2zZSQQddE24B8QCxeL69e?= =?Windows-1252?Q?7GEgH3AV5gjAHn/etuT+NB8uieBU9E+C4eoDsGzQRjvtlxOyzNILc1FA?= =?Windows-1252?Q?PUEAY+DFaqlvprcMBN1d8ptKL1FQfqX5hjnvQOzFPgwKQUkcoC15bj7F?= =?Windows-1252?Q?jTQENW1/F314cISroIY0muXJFm2oi31Y9+tkcYcstjtrAnDo5yO9L1r4?= =?Windows-1252?Q?mJ8RKCea/lNol1OZq035h7NYVQoHUjRf5v6MSIReJoSxJC/WGhk+CMSb?= =?Windows-1252?Q?4nJJ3h+M9DBKZQ8M2MXbKMAdt/9dwgZQDtq7RLG2KjF78SayC9B/MH+t?= =?Windows-1252?Q?TGtzA?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2059;6:tZ3CwG++ts6kAvoiHQB+K+vXddfqv6HkFccFVmolGBzBttxLncVxpJfI0aBoxMosntBn4O7GF2Tp1KhwZlIzlZsvR3azUYmxlY90VB3pOWhD0iWex1Sa6C+4P5WcMp7GMYZP2rGROVtdmCuzJyOexFFjz93MP3oYeWJuXpd08LnbLO449BBdoN3nhwlo1XG0v32bVKfH9e7urh1DWXm12fQWlp3xquDPHNNsL0ViheU93M77vCn+nRfprqAncjtMLQQhgDijrCRZ7gLG6Ysx4XiCAVKVPHwByTqImqG48rzO0sGIzPAF9lbf7ImgYrFu5diL+AyEOJ4GutnK0QgqFitjdiCiutqgCV6dPaO5mpT0pn8Kg/BGGSN/HgmdMNiGsWyGCH/jD0Q1iJdM42c+WA==;5:GnB4ECQVfbFrPr+Bp3VhErkDPrpNflpcfjfiSEnBjF6lg9S7U3FGNbIouVa0rQKwtUDACfbCUEVtFqatGgWm0d2TaRdD2+4YGtK7IwJQBvCCstZ96sjaEJ3QMSntvcszAZKH6OgUE0QWzAxzd3TDMA==;24:sAH0D5nEqwlzstwKMqBvGBcvCDhoK1ed13czO3H8+eXe3BE49Gkj7z7ggF7zLo9A6zU3ZyiXfdmJVwzoKBwUZQy3Euz2MFsIvxwus0kEj/E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2059;7:GZuHqz1s8SzJXZHpKnyJTWTPiOxqBbcfZPhaAof+L8b6Yk5i+dWEkc4qbIvCihXqAZk07g0nLgxhFd0xQ2bhNBKxASyOgLHw3ZsPL0C2yv9VAixGo/k41V+lezjl8x0gNyGH2w4yXpRew3/qqyMpIQgvxCp8ddWh47/sM1N43OCuOFz0LKalU8+jOoXuCDEnz7KyqKvFzmly9f4TOdS7NnJjVKOYT05mW6YtLbQTPxuUnJ4My3qOujCB1lbJNJCCu2DhnT3PHCvehQTKpg/NVksLN9F/T2Yi8i1u1VqbMpgW60mUggqTmWttk331cejWVtbA9tUAgW1HXX9qfsZoMA==;20:Wvp4jUbWHu0mBIQalGmrSNWi9fuDYO/tsIoM/Q/up5n13+Q41jDTl/AMdo+ojB5GLQJXVEtQlFE3g3ZPScLRneETVIR+2uhriZ4ElivLcy3KVJx8kbMp1uOnuAxG4SJpANRXqD1tC6eOq7iw/vwCo6MO1Ha6lSUxq6FB9rjiaVI= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 13:14:01.3900 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB2059 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1371 Lines: 41 On 03/02/2017 04:48 PM, Andrey Konovalov wrote: > Introduce get_shadow_bug_type() function, which determines bug type > based on the shadow value for a particular kernel address. > Introduce get_wild_bug_type() function, which determines bug type > for addresses which don't have a corresponding shadow value. > > Signed-off-by: Andrey Konovalov > --- > mm/kasan/report.c | 40 ++++++++++++++++++++++++++++++---------- > 1 file changed, 30 insertions(+), 10 deletions(-) > > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > index f479365530b6..2790b4cadfa3 100644 > --- a/mm/kasan/report.c > +++ b/mm/kasan/report.c > @@ -49,7 +49,13 @@ static const void *find_first_bad_addr(const void *addr, size_t size) > return first_bad_addr; > } > > -static void print_error_description(struct kasan_access_info *info) > +static bool addr_has_shadow(struct kasan_access_info *info) > +{ > + return (info->access_addr >= > + kasan_shadow_to_mem((void *)KASAN_SHADOW_START)); > +} > + > +static const char *get_shadow_bug_type(struct kasan_access_info *info) > { > const char *bug_type = "unknown-crash"; > u8 *shadow_addr; > @@ -96,6 +102,27 @@ static void print_error_description(struct kasan_access_info *info) > break; > } > > + return bug_type; > +} > + > +const char *get_wild_bug_type(struct kasan_access_info *info) static