From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754015AbcGDOPY (ORCPT ); Mon, 4 Jul 2016 10:15:24 -0400 Received: from mail-db5eur01on0115.outbound.protection.outlook.com ([104.47.2.115]:39648 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753918AbcGDOPW (ORCPT ); Mon, 4 Jul 2016 10:15:22 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v3] kasan/quarantine: fix bugs on qlist_move_cache() To: Joonsoo Kim References: <1467381733-18314-1-git-send-email-iamjoonsoo.kim@lge.com> <57767B66.7070904@virtuozzo.com> <20160704043647.GA14840@js1304-P5Q-DELUXE> CC: Andrew Morton , Alexander Potapenko , Dmitry Vyukov , , , From: Andrey Ryabinin Message-ID: <577A2FD0.4040800@virtuozzo.com> Date: Mon, 4 Jul 2016 12:43:44 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <20160704043647.GA14840@js1304-P5Q-DELUXE> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: AM2PR09CA0062.eurprd09.prod.outlook.com (10.160.228.158) To DB6PR0801MB1303.eurprd08.prod.outlook.com (10.168.11.21) X-MS-Office365-Filtering-Correlation-Id: 7339b575-8633-44e5-d63f-08d3a3ef8c1d X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;2:VIf/tgrhGU/U9J7l0Waz8sa+53GN8WVbYRJF/VPZpdm6LLAXAkJ774s3w/bniSvPOwCQvCwxUge0ozekr0wV26MKJ3g43MygHRiJ6fBgRBAZ6ls/gTzSaHwJ/g0vTCmEQvtqAjoTFwC6Sm9ipSEbPyVPUwBm4QQWTIsukLx2P4ou37kFf1a0zKrQzdV5sJ6W;3:hQPrLiP7rhYhftFSWVmCEidWN77buEhCq0T3G6bHhIgCWW7LJm6CCfHPatyr9eza5hDMmHB/TKckR9RwLKzzel/XoBDH+vE9nbKFJblfqyqz+0Ri3SW6PuLQRaWMkQWo X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1303; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;25:cmg7oAo1866Wz8qm/m+VkNWeqAjZ6A37MGw+Pi2H+s0ZGATlKifZf0aS3/qOkVV6yxG4Q60JC49eSdSHGDlmyeC5WlnoedZzgobgGKOgaFg/AqNot04ZGgZdfKUTm/yoZzBTjrpCp+1ur7BVDfzlIQjPS9a25gjLGn+Lve2WgTM1sVQ7a3wHR+i2A5Mc+Tn80RU7Tm+W8fvXikygMQHb0vvL8kuDML9RZQdDalzPAVRGJD6LEgRueRXNhIjKXIbIKZVPOgWwNDn0rLRSWqgS4W1yoZu7UUkIBp4OFvjHtjT/+Mxu1X4R7a/IgkM4STFMv1eeodYbRs8Gevh5f1CR2qCHJ0jcStcIbR4olp7rn4NE2HJp0rhbGrSTmgSlOgWD2wH/OXv11X+rjAXtn9hzz76RP1vfPslvswAql+Trk3LHfEThsVss0h68BES6hZ+E6IgM8hRZHYHntbSN0Zxggk5yjIOW3DIPabqgHgxxxKGFzO+6p0TtKqcn3VVv8bWSBgbIevKQo3DKXQMhl8R5mKxiMvLGyyKZOaSiyAAfDSGPmUifEGvXSuRMeHU9GxrwS8avRwwRGInWoFNs0vj2/oto7wPXmA+Hyzt91XXSQw3XMu4kTteXLB275Ifq3XeL/mG/Oa+XF7iV8cqSqwuwVyE8ZoxIpJnd4FknZ1x4KlZDIiEOQAS269UBzRZWWsnzbFNMmoiIrKntvdeyUlPu/VCmTz0inLaaTaGQ2JK83Pn8992palz1amXY10JW8lpe X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;31:CBFfp+YD6w1TAmc+jYpJ0IitnYsU3dqvVMTpx0v34FqzhVWK1sd6lwMmTLV6IZhSYKWIzck9JV6YmthJl2/Rkr5GQ7LpvaX4+QCkIBjiy6UcqBIr6jWtgeCYmPA5sE91dFxJw7zxdDMnbWzAKpJsLJoe8HGinF8Qmv1URuwuQZNVyOG3dJsUVfdPQ+R4YYx41xVAmuDl/y9EZfPCYkAvJg==;4:3tZRi7pmCZsyOKZozdsJ2QP6bVZWad0O0PnSGHv1qMA/I35YJfvfJbF6dbT+m9ZhugAa3iT15Ip31iwycIqg7w8bsHAiRN2/TeJzy9NKqxeHFyV122MvvDfEo35GM6mwiuNwwOVMjbmfC5it7pThMXRbk8aVRDr9Sko8N3zSh4kU6ZABOnWfvBCTTHjVw2AJV1S4MthMFYP70+04L4058dbFyZty47P4Yg5hbimlFsouUMCKIji6c0AEL/FrveJO669xC/y/pHy02qFHHsKLnFLKLZZ2iFWNOJFAszGDooWLNrBw6qEDnBSvfQu6gQXZZVvqGLiULi0v7kgeDyNf8bSDPmtyAt05g+u47oE1eR7gbHGDgYaOC29R0EaKFTnw1LTwDJzfjHVCgu5NOzFU6hv8RzHx8hF1tjjNEgsgU/s= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041072)(6043046);SRVR:DB6PR0801MB1303;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1303; X-Forefront-PRVS: 0993689CD1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(199003)(24454002)(189002)(377454003)(7846002)(106356001)(19580395003)(19580405001)(80316001)(68736007)(2950100001)(7736002)(33656002)(77096005)(305945005)(50466002)(65956001)(101416001)(4001350100001)(65816999)(87266999)(54356999)(76176999)(50986999)(105586002)(47776003)(65806001)(97736004)(59896002)(66066001)(86362001)(23746002)(83506001)(36756003)(586003)(81156014)(64126003)(230700001)(92566002)(189998001)(3846002)(42186005)(6116002)(4326007)(2906002)(110136002)(5890100001)(8676002)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1303;H:[10.30.19.223];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB6PR0801MB1303;23:G3NTYzT4S5EiRJP5bpOy8ckFXshNn4LJ0Bu?= =?Windows-1252?Q?SYIzQkWQtOR9u2v9PfX6k65445qZSFgdFs1xQBCRmLb7MzievkNbL9YH?= =?Windows-1252?Q?DvcOCpuJdfno2heCXtWNDTLGZ4DNTk86MvqxjPfPXVykp4Qs1ZzQ0F7Z?= =?Windows-1252?Q?qXZxmqV0QtS/F0/ieDszY0XUuqCYIzlbx2cAXGeuM4kwb5l1EL2wqpTr?= =?Windows-1252?Q?qPg5Y3D99AumSoT3zuJqJvpU84tf4+XU3tkD1fHW/pXHG3mP5IKTTt4V?= =?Windows-1252?Q?TOk9JnqD2Q0i3Xt0CA1Ho+PvKa6w2LcQhHqgnzJui7d+PaHLw1zcZgos?= =?Windows-1252?Q?UFgpg60/kodo1wGfu/29iP4nx7CenGZ4BReoGsiKfu+hFMBdLrZQadlw?= =?Windows-1252?Q?iQ7xfDqX5vV36pT+ghsE+9c4rHOeqWYKX1d5rQlrti+66oEJASL/7A7f?= =?Windows-1252?Q?SuNrObZQnLDfrwhZxNXO7LC7aeYlbTrcPh8KJJ/HDgLo2FI/4xbOmQu7?= =?Windows-1252?Q?K72rTfZ6W7e6u6M/6uNKMr7nTtUxxns4IOd/3Xsv/VQuGYEryRi2zVtp?= =?Windows-1252?Q?Nm3a8RipNHhmhVlp+Q2LhdHyRnFGGJQWZSHRG3j22sESkBbdK5wZh98K?= =?Windows-1252?Q?yHLh+h0JJvwaBQcuq00S5mXCawWbTMghWgWIhq53YjsWATFROnma/O/N?= =?Windows-1252?Q?iYNCYl8ZGtttrGDXYCcn2Z9A6/TquurzHVSgB/fb46m5nLHaVaKb9HZw?= =?Windows-1252?Q?Wm4CoobNz8ODyhuCSb7bpZ3Scq3p8ONFZrSmJSaCs96DM1QxyxL9Ms6w?= =?Windows-1252?Q?ZPEE6uO8spInfPVfiXtcjQtug6YTc6RIvH8BrQLb7PMxlePMXD3WgrmG?= =?Windows-1252?Q?tgACeG0D0Spc/McbtXyO/k3GzWYz8+AeVZG5NLLTVtz3k+c81RLSfslV?= =?Windows-1252?Q?e3XnhcHZuAyi/dbVzZmkYoSeww+6UmTuxgYCQWyX4g/svrWpW0ce2r/d?= =?Windows-1252?Q?02r18DIscovNASzdZ6YI5eGmZU8qepv/g2c0gTZWVLNqFjqM9YEItmKH?= =?Windows-1252?Q?BvdsaO5rbUv7/ACjH15/0vInbyic9jw1ofCyQf/0PZziNg345rPF+ksF?= =?Windows-1252?Q?b1176fGq+cF6s48K1VGdrxga9IFNQIYhgYopqImBkAtSwW1NvcvrPF/5?= =?Windows-1252?Q?UjLzvmHn3IK8KKn0FjblwMJ9B5wKji8mat9RxWoHL79V8hi2FMCQP5PP?= =?Windows-1252?Q?0QKsnZIpWWVQXOebTUMM1uAzdDPF8VMYWdKOKC9hiHdngJwFUNS4JzeR?= =?Windows-1252?Q?dKRCTfF/Hrm+N0M+pM0svDOSqNAKlnITcaZGpBfoTxIJljmpqvMwXXwC?= =?Windows-1252?Q?4nZNEbhacBr3IoGOBOnSSEYXPxu/GIDrcjNRP1sMATLPOoBkHi/7l9qA?= =?Windows-1252?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;6:rNagZgDxD/7378LxJNMw4QdOhIt3/B5r/vh5dwFumJUJ0USE/Bygr35AdLwzwHQEGaujWPRRfmsqPdHl5fpJzlf2qPJ4wV7uZhcauc8yWKdZ/4i/B5EZXqqHvi1TeV978hLB7qjolD9PEwgAJkyia77FO0hTpJzKC0J5DZnrbgHNshC11JoGf2vgIcv8ySAlng07akRp5mw64eyeuTdEGcorjWneQXepMbB8p4+7P4dDX8cNXK0qh2Npf7KMa0C0GmWbXE+dAO/xRrWsnGZKw8NmYHiuyTI1RcnWaTlMzgTBJlQphTWFukZtexcI7EiR;5:0tjTKnxFq+C0TnzbmIL//eRlWD+4GmUPmDkQGoOTEjK2MCOgAHgNqEVgJxOcr+oglo5ZU+HVdl9we/eUgUXW0dWvddZL5CS7vMIgJOSqDgbO9lmedqFI8jWtSvh/Nw8QCVOAnMQNkVHaX/iRgoR05w==;24:O2sLTjkM7EJh1kOpkBl0ajR65X3W5f2td3pWRiFswoJ2UeKij5CRFGL60SuyFU9nPtObhV+Qc+fFSbeoLRWFEQ6PgJWZ3uvWUWA4GcX8H50=;7:hBIchByJoSL6/4WuOLiu5l15Fg5JX8YigUX+k6uv7x1wu3UFCR1UQvVFf+juvMlkLx8Q4Sp6hAf+b42zum+Cd2S7lIwI/LhPbL+gQEChbUOFHkZWATqFNt9VPnlxWR7MyHNmMvrs9AxUQxk2eYPSDr3cpj/ovlhWSwQR0Pb3gTMSuaUSrTvUM5PT8ZJXx+YMCfT3feZeTBKstN68QA+OYyX4e4L4k6knqh2icNVEwjBGPkNqTLBgUyW9of804XsO SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;20:AyWLAZaYKGdpVFKwSYKeBL9oawwKKJ2RX5KEAayhJeW0QUSeeoizMHkv8Yq0IMX9cLuRTC8DERtQvBbE9dh0+3cYtWleL8bsdPbwdZ31QrXf+zX8i/x66WPHuV7DaI85UQVPQjRD3b9HBt0X4MoZ4qgN3f7ngZJ1YutE5qm/eho= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2016 09:42:42.6383 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1303 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/04/2016 07:36 AM, Joonsoo Kim wrote: > On Fri, Jul 01, 2016 at 05:17:10PM +0300, Andrey Ryabinin wrote: >> >> >> On 07/01/2016 05:02 PM, js1304@gmail.com wrote: >>> From: Joonsoo Kim >>> >>> There are two bugs on qlist_move_cache(). One is that qlist's tail >>> isn't set properly. curr->next can be NULL since it is singly linked >>> list and NULL value on tail is invalid if there is one item on qlist. >>> Another one is that if cache is matched, qlist_put() is called and >>> it will set curr->next to NULL. It would cause to stop the loop >>> prematurely. >>> >>> These problems come from complicated implementation so I'd like to >>> re-implement it completely. Implementation in this patch is really >>> simple. Iterate all qlist_nodes and put them to appropriate list. >>> >>> Unfortunately, I got this bug sometime ago and lose oops message. >>> But, the bug looks trivial and no need to attach oops. >>> >>> v3: fix build warning >>> >>> Signed-off-by: Joonsoo Kim >>> --- >>> mm/kasan/quarantine.c | 21 +++++++-------------- >>> 1 file changed, 7 insertions(+), 14 deletions(-) >>> >>> diff --git a/mm/kasan/quarantine.c b/mm/kasan/quarantine.c >>> index 4973505..cf92494 100644 >>> --- a/mm/kasan/quarantine.c >>> +++ b/mm/kasan/quarantine.c >>> @@ -238,30 +238,23 @@ static void qlist_move_cache(struct qlist_head *from, >>> struct qlist_head *to, >>> struct kmem_cache *cache) >>> { >>> - struct qlist_node *prev = NULL, *curr; >>> + struct qlist_node *curr; >>> >>> if (unlikely(qlist_empty(from))) >>> return; >>> >>> curr = from->head; >>> + qlist_init(from); >>> while (curr) { >>> struct qlist_node *qlink = curr; >> >> Can you please also get rid of either qlink or curr. >> Those are essentially the same pointers. > > Hello, > > Before putting the qlist_node to the list, we need to calculate > curr->next and remember it to iterate the list. I use curr > for this purpose so qlink and curr are not the same pointer. > Right, I missed the fact that qlist_put() changes ->next pointer, thus we can't fetch ->next after qlist_put(). > Thanks. >