From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755553AbcHBAei (ORCPT ); Mon, 1 Aug 2016 20:34:38 -0400 Received: from mail-he1eur01on0137.outbound.protection.outlook.com ([104.47.0.137]:39772 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755511AbcHBAeb (ORCPT ); Mon, 1 Aug 2016 20:34:31 -0400 X-Greylist: delayed 7604 seconds by postgrey-1.27 at vger.kernel.org; Mon, 01 Aug 2016 20:34:30 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v8 2/3] mm, kasan: align free_meta_offset on sizeof(void*) To: Alexander Potapenko , , , , , , , , , References: <1469719879-11761-1-git-send-email-glider@google.com> <1469719879-11761-3-git-send-email-glider@google.com> CC: , , From: Andrey Ryabinin Message-ID: <579F62D3.8030605@virtuozzo.com> Date: Mon, 1 Aug 2016 17:55:15 +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: <1469719879-11761-3-git-send-email-glider@google.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: VI1PR06CA0003.eurprd06.prod.outlook.com (10.162.116.141) To DB6PR0801MB1974.eurprd08.prod.outlook.com (10.168.85.147) X-MS-Office365-Filtering-Correlation-Id: 1657688a-d553-49bf-c5c9-08d3ba1baf1e X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1974;2:17tGI4TnHl0ch8CD6JuTGSSQk9FL7TC39mFTcBXIuJ0SngbtmvUevYGVB3LGuuvxqEN9zxdmhrBQG0Natn3ppJTiZkVEBwTVdO9aqNKTbsswqEiXmQQ+q48BOWbzRpoe7KErOQA7soJwfyOPBvJuRuv1eHHJcsIAxV6Z55DbpbDhImEmHqlQrooECO6TreJf;3:MWe4hqFFQPyDaHzKgucTp4VecTROummAT6YtHLcsHc9wBLq2EoA3olZA8V5/6xj6BsJppVxwm2qXPTBc4IYM2M2visVmHDB+BjZgXMm6W864AbjWg8vig3lh8H965poH;25:lrI49P2HdIALhGs9O56xEgHsR5p5wQcgD0RPKpIKL6RwVeMDszchzqub1+c+eJE0MO93MmQf5TemZ//cp4RtudLJ6G7lpIfNQbz2OQm2+zSBEpd8nfAB4D0KR9g2yStuBLYayxtYdJngTiAiH50OdTzlaxTvffT8ZfvqsqAZUgJ3xe+bR6WEZS4sak33B98CoxIuv546FTkSOn1zo8mfVkV/KcHvqmExskrHMGUco8ktXWJmntVLMClCgSD+mE8QcJgp1Xj/ye/0W6jqmo5dwNAMn74zVsnvfqZoHyXXB1KPyN3H6ntzEqheh8pxbIqfBwBn3MWBCXUlAwDx7tajcsDNCc8g5Zga457nRvYPqqJXwmKkjYJF4b8zZXbmLqBRFzut4GN9f+hKs8DrcB5XWn22mqBKalTutwXkTFuTlww= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1974; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1974;31:RGx1tW3PU5VzogNsmjJhjTazXDtjbiOnA2MotcOv2LdP9BdxyWQW+4Ey+uUcQNJrkLoqPQhqGyfvSlQ4QSaTBBtHsNKjlO3pTTIRBJnEffIk65dbjVM7MDs8OXhnzPyKzg5gyeeF2a0fsb+G7kEOg9k2ZeWf4nrX01pe5khmzeDvd4rGZGz7hOhzWPCYUdy9Ho+PBceu5vgMR34WI2EEZw==;4:zpNtTssGTu3O1uyphYPVQoZw9eEk9yCSGFEgI1Z1kAFoPxbvACTnUeqc+NO5kiSlCUEsjwXgMP7VODVPmcppQdke2Q7imVPedh3qodoWNJBiqVXQd4IHV13JPr3hnWQ7JVYyjqJJqQgU0PAWX4yzb6uS8tm5WAsAvTHnk+Tw2XJivb2mDakIeAnFBajDMvdPxhrssUClMeJw5BSL5Rlz5VuPeXm0eTlYG/+nVF/Ult5+JmwBgEG/cCd9Mq5rj9Njj7VGVxc0QNLWcvwCkMexXGqknfWrKWNijINrT5X5pdYFQ+jmKnjH8knLPAaznrlGk0U7dvuQA+zGk6xmEQLCpdn7N/6nf9blZvBbhcZLGh5n5eJEUPm5BkoK/JRTuTbcynwgFdTBK5QxSLrYGAngY9Wmk6wZUmz+spMe0RNOQfgobd1arDQk2tsy59iocahUbXChRlKX9u1aSYUiGDz8HuwsDjbTTfIq1vKmZ18rNawVz3YuqQv0LWNyxPGEXbF6 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(211936372134217)(42068640409301); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041072)(6043046);SRVR:DB6PR0801MB1974;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1974; X-Forefront-PRVS: 0021920B5A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(377454003)(189002)(199003)(24454002)(23746002)(5001770100001)(68736007)(50466002)(97736004)(2906002)(106356001)(86362001)(36756003)(105586002)(66066001)(92566002)(65956001)(47776003)(65806001)(2201001)(59896002)(76176999)(101416001)(65816999)(50986999)(189998001)(7416002)(87266999)(54356999)(33656002)(42186005)(15975445007)(81156014)(6116002)(3846002)(4001350100001)(81166006)(4326007)(7736002)(7846002)(230700001)(305945005)(586003)(77096005)(8676002)(83506001)(19580395003)(19580405001)(64126003)(80316001)(2950100001)(921003)(1121003);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1974;H:[10.30.19.223];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB6PR0801MB1974;23:OHDx8wMQD6IXAh41uIw8OmlhgJqorFe2+LN?= =?Windows-1252?Q?A3wbiJL/oVMJ9eaN4ucD1rZbeY5nLqH+xP3HRuVlMVQv8U5lVytqyuI8?= =?Windows-1252?Q?g3z2Fm3P7O0N2vfvE4LVGyo0JfqlBk2v8Vkn+POHaO4OeShzOj5S9ndV?= =?Windows-1252?Q?x6jB3fesluyL9iF3ZFFEXWapZn8qPxjFMeJ2JbeQHTvim6VDxwcM7Acq?= =?Windows-1252?Q?v5Fs/+J4Yt1UEhsEppy8cxu2mU3GXnMR3jESmbXndFtJhehKrleQVp3+?= =?Windows-1252?Q?4hK0pzf2ZyK8Hkwic1V2KqZqHw8iNll7GvWFh6nby9UOvmQpU+nsDDdz?= =?Windows-1252?Q?zN9hlRTzK+/pXuQ3e6pdy04aUZS+GYb6JTV7IxjL2ppAxykqwV+g1Zfa?= =?Windows-1252?Q?3V6UfGlVC1KXCLGv5AfuxUf+K/RREvbLXm6SLYYenAAcjgZ5+tx7225v?= =?Windows-1252?Q?iRV5X8Hld98Q9nNqD7V/0bFcc1Jzrpw6NAG/PadTvHhRZ94nVW5mvE22?= =?Windows-1252?Q?gr/yVzHCh3r6kVnEnXgm3KXzboJApHN2HqE2LvwCGaW3o25JX3T/6uek?= =?Windows-1252?Q?ZjQCfPtpSzWJQ6U70ropACYpZLr+hYN5Siw4xSldGmVwuhgVW7vCCHnB?= =?Windows-1252?Q?6cpzTH30wtWeDu0hUzop2CFt1dNNNW+hyETJHUHam0ssrekDgkmkjUP3?= =?Windows-1252?Q?Q+cY8lqEyGEtv7cdQ3+1QIWbiV/uL89qtFffJODFLeDVOEesHdH+PTYJ?= =?Windows-1252?Q?9ldpTvfVbtY8JTcj2dc/euS+UYXh3CIMOhiDAws2rsj0kPtjiy/EdtEi?= =?Windows-1252?Q?Z5f/JbAT2YUTAvoz9AbACL8Z9p0WW9TKGaAxU+1B+xLQW50feIPFrsca?= =?Windows-1252?Q?bfz5YWXF9BYD7njvOyk4QQOAz3nKb681h2aJrZrsTrFRuEUL1JVmMSjH?= =?Windows-1252?Q?9Kf5YYhb+M6Joe7AX7H+HsV24Vic/2BJi4NPuuA4/OZb9kyZy5nqKLZp?= =?Windows-1252?Q?5In71Zz4QfMSayjXBqf8PofAnt4hcLGU+4mDLVwC9opEjAztlNBlpWhP?= =?Windows-1252?Q?RU7hFrDDFt1rowupFVDIi7iLuc/OZZdwsQ7CwLVumKKqtaHsbt4Xdt+y?= =?Windows-1252?Q?QGIlKdZE+NRLFYLsjqTT8kPNE7iQWBBrMkQm02yCKvm2VBzlB2l2p7H7?= =?Windows-1252?Q?cBZwz/DD75AugNZ99cDq9+vOVniW1+hOsjEzAG5oMVvOlOLN5BeTpgQ/?= =?Windows-1252?Q?SOSGUR8zzS4b5NvDQBLS897kTWM37JUwqXcslxwsKo0FXfy53XhytRiq?= =?Windows-1252?Q?UlbSxbIx48Tjq9LLTHs0oYyQfr3ezz3sgqDIYMUuYM7+05zWtFLF4c8a?= =?Windows-1252?Q?ubxJI/IBqaqV8vIy1cF6WcVe/OPUf50HDzhYEulMZca4DKhWlbpWCCRg?= =?Windows-1252?Q?Xbm6WQFCv1vgDBxaEKmLDu1TK08zJ4oECRKAFqq8zQ/3l0InpkLTVU6H?= =?Windows-1252?Q?JjWenUeP1ttLOXiW4N7o1HUnUuGVq?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1974;6:NHXpYrC+kieFOjh7y1a1zcigcTr2Fep7FKbIBtGTjxaRoxbp8bKSMni/2F8umrspvNElSq58oDaMRi+4ztEXZDymv2As2Kkmp0Bf/JBuEyzGiBOMP5nMmInHEem1C9Ki+uuVTkaRwiRjasAM176AM18BusPys8QNgXyMa5psgPcnIEkpWsuKZcsT1VzqKP7AhLtS4YgWS6KucHThrQnsdRcS0UxTA2pkPjufyxqs1P0s1R/ek6oweANa8bheoKdfGbizOEV4hzfxILuXJyVW67SCynlIGlNUKrJ1Wk/1NDMZtNbAny2v1Lo3VPbaVre3;5:AhuiAIJjCgUGSEnYrB0N00g6FZIggOd2DQLkDT4fGWndZPiNgI2H6shds26vJ0LqpkfnazBLHzQtERj78yZWQt1AxieqP0Ikl05NR+wi/1L+6/wcUCzp3pbLmVRdbsTXZdE6N2B5/aZ6df09Zusu+g==;24:boByq5AdoINS8bcj51GSZzuePKqUNOkI5U/LrK7+PX+RD+cL0DwN1d1fjsShjYDCkdQRC284aIf6PebOkJ9OPXHGEBSxBC+30A/fMft79qc=;7:x6R3ghFdffnPR3JDkWVG2xjxiaC4j+D5xJ0wH6bInVowpDykhZ0y1LLvbT/UZO/DVRLdfNs/qFIbVFW4eWbHnABOUA8t31FFpHUUOG+wPYYI6t2zDI+YcV9mTNBSty0dbyGT4f9fwAaM9wczz0fT15L3kjMlzkhPGm9tq7lAfPhVHp5bt5nKPSsqzdz0vhFTjEBsuqMa9Yf6/shsHLaEWYAyN7NLTEsh8l2cA91zuX0c3vmvhK3Pgdhh6RQWQyUy SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1974;20:e1d6LXWTtaaU6+J6tOL13NyXfvnlxk2SR2v+7thZ1HXPR/6lGiA+6KwjFLrPJLq4eIMh1d1QoFEjmcXud698pEB0zcfgVNe36rYNfnACBbwyQLDgk8S0ypP8GAMXdCtGTPbPn+lbzJOArwDSnlZaVUJdWKDyPEzOlNAK0TxiLrE= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2016 14:54:03.8571 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1974 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/28/2016 06:31 PM, Alexander Potapenko wrote: > When free_meta_offset is not zero, it is usually aligned on 4 bytes, > because the size of preceding kasan_alloc_meta is aligned on 4 bytes. > As a result, accesses to kasan_free_meta fields may be misaligned. > > Signed-off-by: Alexander Potapenko > --- > mm/kasan/kasan.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c > index 6845f92..0379551 100644 > --- a/mm/kasan/kasan.c > +++ b/mm/kasan/kasan.c > @@ -390,7 +390,8 @@ void kasan_cache_create(struct kmem_cache *cache, size_t *size, > /* Add free meta. */ > if (cache->flags & SLAB_DESTROY_BY_RCU || cache->ctor || > cache->object_size < sizeof(struct kasan_free_meta)) { > - cache->kasan_info.free_meta_offset = *size; > + cache->kasan_info.free_meta_offset = > + ALIGN(*size, sizeof(void *)); This cannot work. I slightly changed metadata layout in http://lkml.kernel.org/g/<1470062715-14077-5-git-send-email-aryabinin@virtuozzo.com> which should also fix UBSAN's complain. > *size += sizeof(struct kasan_free_meta); > } > redzone_adjust = optimal_redzone(cache->object_size) - >