From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751569AbdGRUQB (ORCPT ); Tue, 18 Jul 2017 16:16:01 -0400 Received: from mail-eopbgr00122.outbound.protection.outlook.com ([40.107.0.122]:13704 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751413AbdGRUP6 (ORCPT ); Tue, 18 Jul 2017 16:15:58 -0400 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] lib/strscpy: avoid KASAN false positive To: Linus Torvalds Cc: Andrew Morton , Dave Jones , Alexander Potapenko , Dmitry Vyukov , kasan-dev@googlegroups.com, Linux Kernel Mailing List References: <20170718171523.32208-1-aryabinin@virtuozzo.com> From: Andrey Ryabinin Message-ID: Date: Tue, 18 Jul 2017 23:15:34 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [84.47.128.244] X-ClientProxiedBy: DB6PR0801CA0050.eurprd08.prod.outlook.com (10.169.219.18) To DB5PR0801MB2725.eurprd08.prod.outlook.com (10.166.176.21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 752e64bb-d867-4762-e51f-08d4ce19cb50 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:DB5PR0801MB2725; X-Microsoft-Exchange-Diagnostics: 1;DB5PR0801MB2725;3:y4FRUVRw64GK4AA5uiOdnOUSyWQlHKZH0sN7fE5sIQ7pBnA4VkROs6YH4K0OrkOdrQABSMNmKXFO++WedekKCpf6lT/mgBZcuEYOvHp1T9qlR4oyt5cjOU+iIkOLak+ZiRBcj5frJoGwyFOdAw7Nkn63zVIe6ETALyR5lsaTueVSIzRjGbBM/lpPk3QbX5H18ne2A3S90qNw5IZEtKJPtUP8rp9ljsIjWb9wOQijKdrgBSDvOoX+XQz9ZuB/tn5Yu/BxqtphwvicUG+ffR6w+ZZSeBLpHOn3r8TBZY9WNYWbzYyWbP5O5GQvxrvrHu4f7uKV7e0ojt5nOPSDUsOF9p2asMJWNeuFdvG6oFZM46a7jIKvpOtzeECUuWevzMd/vf4HMVT2CbT0rGyu8LbIEGN1F4xJp1abcFkbH53QmHRFw6O63p6COw4AIUDI2X17JbIvevJ71/zzWpIA/xKy8G1qXtpdrAKSiSfsA8wpgXdKebeZyA5MvvkKJK1WphytrX2dogqjmmvuo11so22+mwBH6CCqGWQKQpUgr/TLSpo9tCzWriARahYSCCtMXi11jLyD22p0Z28fle/Qnp91hCCLpjH+dhgxQ91BQLC0D501LayG3P6iwn64vFIGiKFHk/TJexhkCzjdhv4E+Y3fu+jchZx9VhRPzl/GNWBBVTbA0n5OWWXcGUWwYuMtWfL30fqStSOlG+JwBAaHAINXQqP8zjj7j3pGmKamm6fHJBc= X-MS-TrafficTypeDiagnostic: DB5PR0801MB2725: X-Microsoft-Exchange-Diagnostics: 1;DB5PR0801MB2725;25:HDAXdOps3iI4lx8yp+v5otIfFbAE/lxBDNx3Emk22gCmjLZL7M8D/IxQBkhcxzRzr+Pwopd0G3v42ypSW0YUDpnR/anlxpNFaNpNE6SyMP4HV4ypoDa8NUnGrWe5ftNJO79TdNSV0guJ7jMQ81HWjNkvhCZZ9gEqFmTzsmu/8cr40tjc6uOxj8ZLLHITw9Jr/TgqC+Rl4hkeSnIyMcfYca7AahEBEyFjOlWQNUlAoEO+4efMur3L9e55WKUQe9wuyzbyPuos5+UixWmeIg7Y2mUFdfZjBAycjk8cUgkSJnQfC1xYFrDLhnyz8XkG9ehef9fZ8JNX6ZXI069HzDwM4yvkMEvC9Lj3ysAMRjvB1H2p7IfFvUt7/Hb2cKePNtMefnwrQlbYof0lxhYmY3CtH7t5mUEBSFUyCyapSbc0M7hbMIF6v0/B5So3F3//qnmGbAoPEm/LEvnLBbOtpLCFyLgInjQfRvkEPczIQRHF23dZ8pQy5eJ0Dgq6/oZa+xP/f4CCdhkvg8/oAM3uItgCGb0ghylLBPd5CBAfF/BL47eCySW7iXBO65MwoIzTshGRGW/FpFgqcPRsGlk3zhh4j6JwKudNsmBYxPvfEMN8bnXPWRiennsoW65AGOUta3PcIRy7l+74HrgjKnNVBe53+uTcB3ffVUqp5RSoUn4OGaWjYKqOnQtiS+imfLviqbe9hfOoY8Lu8S58moCiARWbSS7eTnb+5avdhGtgPUCZ2He6jRnvkDLtojYv55VNlkIB/KuCsVlK2bd2daw0RZ+ZVMRVUjuVo38nNQtR2BgBmOlQSBIfIsvW4H3wmTkgFtPoBazKrKedlbyOKH9cj49A9znFv7sjBOWOy2XrbEdJKa+TJVyAWN9kWD+8BFMdlp6Q4oy4e7hM4GwKM10Xf6s/9gCUgSxvBlkQaObHwHz76D0= X-Microsoft-Exchange-Diagnostics: 1;DB5PR0801MB2725;31:yeNqs1pZFtnGvz/H1EoaGJvQWdFQL3QRxah1xxjlfJYxXdEebpQD08PrulLaC+zoHahtFE/T04rO7+U5GgJ+Br3l3t0Vwkm0CO1s6CBOD61m4Isd9HNtPZ2f1Mm3wSYCWNT3eCtDwXWB9l5TvLs6eSd+ALo2lt/6inPL3U0xnXw+9l2FCPdReoi4+C8onv0RrQ+AfwOteXkyfuYPu0foFdn0FVmKN8NPors9huY9vSPlKTH6asiv0KLxo7dWaOCccNzkzo3YoaRoXktfgp749smaKUg+HDD+Er3zwhSBZyjlfvRaw+vWgY4lf2RuwNGuphLBzEHvJVlIqhiPjnIVGk+SQHuJ6EznL736hILIXQbrHe9D57EYs6akYzEYoeeL/ix6qxa1YZx6za6rlwEGM0e8dslaas8XoDofzfnhrF8XaN7knZayImpJ8hr01GMzTEw0Xa7zO37Oh3AXObstrg0lw2bvkxd1CZ3kAruUoi5xJTAC4B7whI90M5xIvoAkAn4puXxAY5HT9n84C5xsTPBRD+aw2RXc81iGwV/CoJHCmCoz5oHvE15v0ylu3BoqrK+TmBwwvBlUGKYnLCoMNH5HfZYxeL0U/Xk9mA74LKCYXoOZzz9yNdxP6EzUcKBLEVECaBh+9vLK6yZnmrICGp3l772qpyMPn3GxCu5qL1s+0v0X9QOwA/boM49zN4b2 X-Microsoft-Exchange-Diagnostics: 1;DB5PR0801MB2725;20:x1BUk0hZWQoq8xXiIIYjDNF/lmDOe/zC8mIWFtweI1qZNgQw1nl5FQctq347P1geRAqkIFWtw8J1P74rb+CGV8bhVKza/8A1bO4T/rTCXuWfmIj1IuiEU6TVT3nVH2XQu3Cb047NDqsCo4FBOZv3/kA6+gSvCwAuiSm6Q7ejiKJkPVnnAa6vQ+Wal3Q2FevMC7MA7/s+uBH9fCjvg8tyU5BAul4bi/4+BDPP8tjw4YMW3c7+dZ/gTV7l8qHe1l7FSCSzsJTQLtY/9h/FPuPcgzMbb8MrTH8mBT7gZR0/ZFWMw2wgD+KOJMAGCStO0U01ZSjFFJePHLi0glzi0qRpV38ACz7Cnd3Pn72eTdU4Eniyzul4Yg8scjzMQwVFcYMDl5KCjnDfCUpSItIUtxXqb3EFeM+JrAbf6G6bNaCkYs0= X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(788757137089); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(2017060910075)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(20161123562025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB5PR0801MB2725;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB5PR0801MB2725; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjVQUjA4MDFNQjI3MjU7NDpkbG9nOFp0elBKTEc5QTFQa2ZxNXhiVDRV?= =?utf-8?B?ZzhKbGhqSWY2ZjFubnFzMHc1akQrQWJNMjQvcWxrcnArNlJFNVdQSWUrZVN3?= =?utf-8?B?MHBBVVBRTFNTcURDd3RLWERXeWVhTExBM3V5WTZYOUZrMm5SenloWUdYMDc5?= =?utf-8?B?ejdVWUNJMS9pUmhHREhNQ0lUVGU1d0p4QXcwdVE4YUJ1bGRxdnNzcjl1ZDM4?= =?utf-8?B?WDJIVmkrcU8wRk9KYnJCOCtQd2FjQklyQTc3Rmh3YTd0UFFWU2ZOejJDMkJo?= =?utf-8?B?RGRyOGVsWkdkdC9zTkU0RnF0TEcxNDU1VXF3MUhrcGtRc3AxOVZ0clhBZVR5?= =?utf-8?B?Z1hXNmhISmJKMVlJcVZjTlR3NEh3T3ZNZ3ZSQ1ZPZ3ZHN05RekQwU2hEQWFQ?= =?utf-8?B?bFR5eDd3UjVKSlFoS2R1K3Q1SHg1eGkvV2J3KzN1NVgyZXJwUnA0bWkxc2xa?= =?utf-8?B?VnBhTk5oSlZtNVo1V3ZNSmpGMk16Vm1Ed1RjYVo1aHdYVzhFTDdUaEpDQlBx?= =?utf-8?B?WWMzSUI0YVBVbmo1Y2F6dkFVekhoemFpT0xSdnJJNzBhREZOWElxa3JHNmM3?= =?utf-8?B?SVhEMjhhNzFJa3dicWFTbWhlVGRNWjFVam9WYkFtc0Q4Y256dTFGVHV5Q1Qw?= =?utf-8?B?WHVqUkNxWUZNc0paSmt5TCs4UlppczBKeEJQT1JRVDRoSjJ5OHR5RVJWWnJW?= =?utf-8?B?aXJhemhEME1LTjFBK2xwVzVlVWpFUDM1L3dueHk3dFBMZHpENkY3d2d4ekNs?= =?utf-8?B?KzVjSTZQNnBJYnNpOWhsZzYrbHNMOU10bnJxUUpCaGtIcEExTStlMjNua2hv?= =?utf-8?B?T3RiTE84OTZKVm9hNTJJWjNtcEF2Njk5d1lZa3pnTEdydkYrQlllY29WZzc2?= =?utf-8?B?bEdYVEFSQlVJekpKRmo4bnF3R1NGQlVhWlVWc01vREFTL0hZWko0NDRReDA1?= =?utf-8?B?cU9JdVVxVzNZVkZhR2o4SjhQbVZFdmhpcmp2RlhaMjlYQmI0Nk5Qc2ZkS0pk?= =?utf-8?B?UnNTWkIzb2NiWTdxRUtvNVMvMllsM1NmWjZQNDI3cDQyejFGL21QbGNablRn?= =?utf-8?B?OXBPT2RYSHpHZlF3L2VNalpmb3I0bU9FUTc2YzhwYWptdERjVHd3ZE9hSHpE?= =?utf-8?B?eW5zWFRJemEzLzlqdUh5ZDVFMnAyOTBYS2c4dGRsNXpRVmNMU1VLem9xcUpp?= =?utf-8?B?NzdXb0I2Q3NSZzJRWjgyaERraGRycjZ0Ky9TL0tSRlNyNWVaVU9NdC9YVjFD?= =?utf-8?B?R3RzVGRubWhxSnlaellVaEpXM01XUXpsSnJhVGZpRWVvWE5uOERJK1J5M2Ur?= =?utf-8?B?eHoySzR3eXJRUEk2blUvVjVRcnQxK21ZRnFkNWxCMWpxVmpCemM0SHZ1MVRh?= =?utf-8?B?N0NoM0hLTWhDcVBSb3BDaWtNbHI0b1lBYVBROW5QNDg2YlRSUjZBbnFibzhC?= =?utf-8?B?T2xIOHl0dnVlSTkrL0UxaWNpR0JOd2l2ZXFBb2M3WG9PU0NlVk9yYjUxK29m?= =?utf-8?B?Wm1zUENHODd5L2NnWUV5djVZNG5vS0R3QVoydVlveVBtMC9IK0RGOXBzb1Bj?= =?utf-8?B?TW8wanQrbkN0R01uaFlCVEFVamQzd2dEdk5PVy80VmdxUkNGeTBvL0d3VFNr?= =?utf-8?B?Y0VaRzFlUjYyZkJ1WFlHTkF4MDU2cDdtdjBJVGxwQXN2cUtLeFVZMHd3ZlNm?= =?utf-8?Q?r0ylmN7x4JVHbbuDNQ0=3D?= X-Forefront-PRVS: 037291602B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(7370300001)(4630300001)(6049001)(6009001)(39450400003)(39840400002)(39400400002)(39410400002)(24454002)(377454003)(51444003)(5660300001)(23676002)(53546010)(64126003)(65826007)(54906002)(83506001)(33646002)(2906002)(110136004)(53936002)(305945005)(6116002)(25786009)(3846002)(38730400002)(189998001)(2950100002)(6916009)(31696002)(50466002)(8676002)(90366009)(7350300001)(81166006)(478600001)(6666003)(86362001)(77096006)(36756003)(42186005)(6486002)(31686004)(7736002)(4326008)(65806001)(6246003)(47776003)(66066001)(230700001)(50986999)(4001350100001)(76176999)(229853002)(54356999);DIR:OUT;SFP:1102;SCL:1;SRVR:DB5PR0801MB2725;H:[10.52.82.106];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjVQUjA4MDFNQjI3MjU7MjM6ODcyZ2NvY2FCNU1XelNPRkswK1RoRXNE?= =?utf-8?B?bUNXbmNnUUVQZWd0ZHZkZHBGUm04cXdhRnVaQ2RGblBHeGorV2E3RTROOWxn?= =?utf-8?B?MFN2a0themxjYW1ZeE9CdWJoaTgwOWlBUkR6RGhVK1c5QTBlY0dxd2U5YUV4?= =?utf-8?B?ME9RRklnSlF4MWhTcWtxZU9OdGg2MHZmbTRVbXZ3NlVJVURicXFZSituMExH?= =?utf-8?B?d1dEUWRxV0tiQk9lZzdEcTZHaFAvZWdHZGprR3YvT0xLMEZRd0JKQU1UeGcz?= =?utf-8?B?c2FIWTF5aGVsM0xKRUJDNFJPRlJUYklFTmJWcnZKcDR0azZQYlc5aFZkcXEy?= =?utf-8?B?Z0RTN0g4NVdCOWErNkQvZ0NyYXBNMGF3VnZZQzA5b2xZSnFqMFRWekpRNnhu?= =?utf-8?B?d3ZYTkJ1cExjN3p1Wk9NWVQyVFlFdU1hL3VYRFFCQStSd3ZBc1hMcFN1YmI2?= =?utf-8?B?NDUrNllWcEZEUXdqUWd2NGUwemRQL2tCUXllR0FlYUxtTHI1dFVocDg0T2lO?= =?utf-8?B?ZWVBU2tsS2RVZHRPTDh5a25CaEFzSmJsZUZqZ1VlZUhtUFllR3FiZUhEMml1?= =?utf-8?B?RldDaVNsalNhWHgyeHVsYklSTFkvb0lWMnBjWk03Ryt2S24waW1MK1pTUTRn?= =?utf-8?B?VjhieVFodmFlejZRbndndUtxaURpcmx5QkplTDlqenk5YjdTR011cDdTbElQ?= =?utf-8?B?ZFZpaERVczdWSk1kcVZsRW5HVGg2SXpDUkl2L2dmeXYzQ2NSZVJQZGlKOW41?= =?utf-8?B?SWppRzJVanJNOENIMXgwRGZwSDNiU3NhL1IyRUhndFFRcm5tNGtwNnh0b1Mw?= =?utf-8?B?TC95V3FhT3p2dEc0SUsvNFdybDdCRHhGMVFxK3lhSXBhellCblhUMWFpenlM?= =?utf-8?B?U0FRMmZoZzNjNFdBYlk3NTAwc1pRaW42cXYvL20vUFd2dVpJNVI5YUY4KzhU?= =?utf-8?B?cy9lMmNPZjlsV0x0QUZzQjFSSmZHekh5VkR6d0VPWG1yODhweWFUZ1ZZcVUz?= =?utf-8?B?MTljNkhzWlZIc1h2OXYvd0JIRVdEV3RUMytCNzRQR1RCbTZ0ZVdDeW5PdFJj?= =?utf-8?B?UDR5NzVYaWNYcGdFNFdzbTFRU1NWMXNCczlqVDd6S2U5S2JvNHc5eThCMXZY?= =?utf-8?B?aEpLMkJ2SitHNzc4ZWUxSlVUSXFMSi9FUHJtcFp2QkpuVEFNSi9WcEJmeU9q?= =?utf-8?B?d3ljOVU4UmJTSWMvNm16SlBmUm1LWXJCeVorMnpxODBCb3ZYeno0NFBydXho?= =?utf-8?B?Q2F2WFJYbDlOS3pxbnI2WFMxQTdtWU04QkN2a2VCZnZHQWw5V3RSMnFoT1ZN?= =?utf-8?B?Q1RMQzU1RGdwUlhWWlU1ZG13dFZkVWYwTUdZUlNseEx4L3p1VFY0bWpLdFlo?= =?utf-8?B?Z0tUWDdMSmxOc2NCVGJlVmk1Tjg2WTl3aFJleDZvSm5RSXhmYXJ3ck9qbmZl?= =?utf-8?B?a29HTTRYSnZRRllJZjdqbzZIb3I2N2RnWlNOT01ESFkzSUpsWVJUYkVPbDVR?= =?utf-8?B?TTl2Zk1Bdld2c25IblZQbStRNGE4MHB2WmovaWpKREZMVjlORjhHY3d3YVJL?= =?utf-8?B?b3JkM0JhTGJCOUtQcnRrSXpDdW1iZGd5OHFkSjJ3bzFEMmdFODZrNXVlMFNT?= =?utf-8?B?ZjQ0Z0VKRUIrdUdKbDJVZWhSRlB1eGVTM2tBNEV4TFVIRnZ4R1B0NTV3ZTBt?= =?utf-8?B?Yk4wdDBNUkNiQUdPcndNYVNlZmJGZmxjdW5iMWJISU14OGlYREcrVitPa3Rv?= =?utf-8?B?ZmdibUhjMFFteGN5QjV0eEhSb3JUK3JRSUh4T3VOeHZncXRINzRJdVBIK2Vt?= =?utf-8?B?c2FUWFhndVF1OHhScWFUWi9xdndCbjFxKzg0VnYxSHhCbTFzQktpWUQ5UGNQ?= =?utf-8?Q?eUeBEYTdHGhCc=3D?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjVQUjA4MDFNQjI3MjU7NjowY3l5T1dQbXljVXRuSVQyV1ZJSEhSeVFi?= =?utf-8?B?VE9nRG4zeUd1VFhPOVh0ODkza0Q3ZFJTOWdDNFAxQTNxYTZiQ0gvcUhJVDR0?= =?utf-8?B?Ly9FRmFuZDhrLzJteUZDM1RZYUNZeXR2cFhvRmhBREQ4dUNqYUV3UmN1cjI2?= =?utf-8?B?ZU5laUFsWlFld1k4SUdvVk0xN1BRUWlpZVo2d05wcXhkaDlYN1o1Rm5iNG1s?= =?utf-8?B?TW1UT045U3U1Y2RidXBkWWJOSDlYNFJhN3BVYjB5UVJ1ZWVBZnJ1bVVWVFpG?= =?utf-8?B?Z1RXZnZDRmVhaUc2Q3AwNUVnVEpmeTkwckk2M0dVc0pTTFJwVUZ5MFl4YTRr?= =?utf-8?B?Wm5IMWRKTDZ6eXZvYlJDcVh6a01xeno0ZlZpT0pSK0hqV0dUUVpqQ1BhMGNh?= =?utf-8?B?NHdyQWhYUTIrMUhRT2xLTjNNK2x5Ty9jcm9kTFVuVG1ONVJ0YlAvcVZKcWRT?= =?utf-8?B?aXNpa1pNSnhUbytwRUMyYTYwNTRFODBHajdzVWR6TTdCT3RsVVMrYWU4MFRP?= =?utf-8?B?Z0JpYU1SSHJJaUViakhOanZJN1FvcWdjTnYxbFRMMjh3S0I1aHdxWjBEbTRV?= =?utf-8?B?YnJBQ05zY2tDQ0RqQmh6TVJxdDBlM1pXU1hOQk5NSlJ0aEh5S3UxcXBkTjFU?= =?utf-8?B?SCt4VXNOQ0M4U1Z3ZWFrcE1XOUV0QllKNy85TVVJajRUeU9LdkdnYUk4MVM3?= =?utf-8?B?cm91TnVXWTNvVDVBS1FOVkZPRlJoWUhJUzd1d2tPVjV3OTA4Zzc5OHVwMVZt?= =?utf-8?B?TlV6WWg4d1h2cDJrVFpzSWxPaHA1dmJnWThrWCtnNi9DVm5TZDdtYTdUNWZi?= =?utf-8?B?aGZwNG5iQVF2eG9VS1VPNU1seldndEFQdUEyRmxpTDAzb0NDUHMvejBhbW84?= =?utf-8?B?RUh0ZHhvR0MzNjltamxJOVhWbTVLYnZEYjFKTWw2VDNjNGdDblNHbUJ3L2ZN?= =?utf-8?B?eG85bFZFK1lsaitUcWhHOWxFRXN0bzI0SS9PVXhxeUY5dHFmaWd5SldiZkIx?= =?utf-8?B?TllKWDIzNHBmblFQSTdaQkZ1d1VTTmxaN2crVWIvQUkwemYzQ1BYYW9LYytK?= =?utf-8?B?ODNCWllJYUswUG5iUEVTYzhmRk9LWkJoVEJ0RTF0Ry9zK0F5MlZxVE9KTmor?= =?utf-8?B?ZnBNRlF4anM0OVVGcm9IejVTeFVSMU15RktmUXhLVUtNUGw0cEFmekZzcFdv?= =?utf-8?B?RlVFSWlqbkIvSXo3QUJQaXN1TE5TQU52Qnl0azJBVG5qa3N0UjFSK1MxSGlE?= =?utf-8?B?cTduNXY4RE1ib1FVUDNtdXc3NThWaFUyVjNPaDEzNnM4ZkxzeXBNQ2phSHB3?= =?utf-8?Q?oOFBDPpP0UMoNfHtGh48SD4eNPABNfSM0=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR0801MB2725;5:EinC4K7traNXj5/jYNKkuIdqtf4gUXShlRV1hGCtBP6y0mh40ArmFLVt4M5gH0sleV8Ig5aa8nnupil9WH+OhA9Uol7oszw8YFaW8HcGkKPEnpYMviasujrEpeo4SWw0NIEuk1B9Vgwq0nl2YEdENIW5FDJ5jxyjrDGSQrR1uVzPK17JBMi2mh1UPq06fFX0+KruMsTevf8tqx0mu/LsX8vbxQ99nIfm2Gro60dW6+o0UqG6be73ZdhMOuNfKaLm1Ww3stL6rB9RjX8cdi+F4ICtlvTB3/hp7J98jux4L/rPqxVI+SKINVq0hzeFtKVivZO37S1uSQsq5PK1lDXgY/EKvb9TId+Ozawtkb7iEn4UNV+2fYxXeDlQhwCnR4y6WXfV7lwh86vyUvUO5nftBQ92MzNMidDSvzIhTz8qWYhcuLbByX9DcKFt19NObGvNVX79AxhrBCakbjn8XQFcBRcoIymC2OLMnLiGbFrQZQRnMACM2ysFDV4oDHgn05T1;24:GqlyAiUMJGYSJ2WRjh5yVz80Ar6I4enKset7/9GbN/kr05AnUv5Yi4JSvnA5pMcuL7/e0uuz+Dzc6xYWB2Xw/762rvLJYvtt6S6oAHI79Eg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB5PR0801MB2725;7:QFM2tQ10L5lUG+Pu6malHiLZkG5K7KktxzlvBxjDZAFp+yjHrFcQm9glHLTK86KJUMHUYRQFl0VJZ68oat+vKVG+sL30YpQnDqjmBMDfDjTG9ilsXbJUX6IcU93ldvedXGO3/xGwcaDrboDAbVITDFUfiKdH1S7L3dOJN8+e9Abshr0s7sKUpFtUpAWwDCcpVtOh0W71c6pBguNwS+/YFqrzyR81HQdp/PgeuHoU4q+pltLBBA+Y5wzVeAznzunczUK6Jkas3KWLtFSMwDQEBLz6lZlsr4sVnNufHBPSf3vyhco5fvEts3EFe7yuydnuFd/EBUnsPV1yA4BImH8bf4Nv1uPWB20mOnBUV0/mc9mgMnBNqa03Mf3zumZMlB8/AdCxh7Qdug1AcLcb2hXzdBQ+9MN/qKgbCH4HolyxaPpzoyeLV+eOnAdabRNe/gZfBaerjQLMcGsvLozXF1KbXZnbBG9GL7yxVGyQ03axgsNMSuvn1aR5jxYdXFvuEAocmCv4BomZazd/fSIK0qb23xQiIq90Waa55hFcuPSbfw4bBAqvVRXnlT3LnIwAuHF1vGE9knSPFEt1snAk9t+fXi5cABkEoqDiI9+TWNMKYx/wIssjtT2n4jz3jjLiQf8ny9q4pg+nsPYaifuGoDc1ltXQPnOxKc8Ab24/Ma6//7+DVo2l6DDuSNrJVVGYKtk6blsG/Odo7pGLzvSlZvFoJd+ovpAoqOb7mjBJ+cBfrxvG+3OMMVT1fM+Y1sab9CzA4Cy+XA0js3HDhl5eYBTAn1ybpI0qP6ZEdVVEfn04qj0= X-Microsoft-Exchange-Diagnostics: 1;DB5PR0801MB2725;20:SpvAN0SC4PXr3E2BPBuTkDynnayTvwqyMlSuJAbFCTPWgjuE8Fmpgn58pgU1AkHllZ2xB+Hp4tkM0+p8lcQsetKL7nvkkMpkW/+ZCtHbSodOYI0S0HcvacGbCLDkxgdvWNFTdMEGtHZJRDtvz0YSi0JCMphG5fGU7BlRKfmFJug= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2017 20:15:53.9162 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR0801MB2725 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/18/2017 08:22 PM, Linus Torvalds wrote: > On Tue, Jul 18, 2017 at 10:15 AM, Andrey Ryabinin > wrote: >> >> + /* >> + * KASAN won't be happy about word-at-a-time >> + * optimistic reads, so let's avoid them. >> + */ >> + if (IS_ENABLED(CONFIG_KASAN)) >> + max = 0; >> + > > No, please don't. > > Two reasons: > > (a) it turns out that KASAN doesn't actually warn about this when > there aren't buggy users (because we only do word-at-a-time in the > spacified-to-be-safe region anyway). > No, it does warn about valid users. The report that Dave posted wasn't about wrong strscpy() usage it was about reading 8-bytes from 5-bytes source string. It wasn't about buggy 'count' at all. So KASAN will warn for perfectly valid code like this: char dest[16]; strscpy(dest, "12345", sizeof(dest)): Currently KASAN doesn't complain about strscpy() only because KASAN doesn't complain about unused code. And after 077d2ba519b2e8bf1ab("replace incorrect strscpy use in FORTIFY_SOURCE") or before the FORTIFY_SOURCE patch strscpy() is pretty much unused. Only 2 calls in some drivers, plus 3 in tile arch-code. > (b) havign automated testing that then just changes semantics and > implementation of what is tested is a bad bad bad idea. > I agree, but what choice do we have here? > So (a) says that we shouldn't need it in the first place, and (b) says > that we should avoid KASAN changing behavior unless we absolutely > *have* to. > (a) is wrong. I absolutely agree with (b) and I think that this is exactly the case where we have to do this. > In fact, I think we should *never* have that kind of "KASAN changes > semantics". If there is some particular load that is known to be > problematic for KASAN, we *still* shouldn't change semantics, we > should just mark that single load as being unchecked by KASAN. For strscpy() that would mean making the *whole* read from 'src' buffer unchecked by KASAN. Although, we can always check the 'src' afterwards. But honestly, this looks shitty: --- lib/string.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/string.c b/lib/string.c index ebbb99c775bd..5624b629bffa 100644 --- a/lib/string.c +++ b/lib/string.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -202,12 +203,15 @@ ssize_t strscpy(char *dest, const char *src, size_t count) while (max >= sizeof(unsigned long)) { unsigned long c, data; - c = *(unsigned long *)(src+res); + c = READ_ONCE_NOCHECK(*(unsigned long *)(src+res)); if (has_zero(c, &data, &constants)) { data = prep_zero_mask(c, data, &constants); data = create_zero_mask(data); *(unsigned long *)(dest+res) = c & zero_bytemask(data); - return res + find_zero(data); + + res = res + find_zero(data); + kasan_check_read(src, res); + return res; } *(unsigned long *)(dest+res) = c; res += sizeof(unsigned long); @@ -215,6 +219,7 @@ ssize_t strscpy(char *dest, const char *src, size_t count) max -= sizeof(unsigned long); } + kasan_check_read(src, res); while (count) { char c; -- 2.13.0