From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752791AbcJCNsT (ORCPT ); Mon, 3 Oct 2016 09:48:19 -0400 Received: from mout.web.de ([212.227.15.3]:53237 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752384AbcJCNsK (ORCPT ); Mon, 3 Oct 2016 09:48:10 -0400 Subject: Re: [PATCH v2 2/2] KVM: s390: Use memdup_user() rather than duplicating code To: Geert Uytterhoeven References: <82b84c9c-38a4-4d17-910f-312668dbae01@users.sourceforge.net> <73d5a586-2178-a311-f19c-c16c6e8cbb22@users.sourceforge.net> Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, =?UTF-8?Q?Christian_Borntr=c3=a4ger?= , Cornelia Huck , David Hildenbrand , Heiko Carstens , Martin Schwidefsky , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , LKML , kernel-janitors@vger.kernel.org, Julia Lawall , Walter Harms From: SF Markus Elfring Message-ID: <9ee60162-110b-1305-5a97-624de425d072@users.sourceforge.net> Date: Mon, 3 Oct 2016 15:47:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:XITzXGtIr28/WzdRbKhXdU/5fDFZpORPmaRUNnXWCHVvJjhtmdK r+Vh5B8Gq0fi+U6rYWPI3AoEJRm2a/Y/hS9vlTWuQz1q0ppbwkvUk6zAW/IGUIRLSgS39Gy SbdNVvKbGJ6A4hlzcbxLOHCz3ea1RhxH5mxV3iNdFpFcsYuZ3KYokd1Q1U4uE6NhWopWMSv yce9r/ap+6lwxACxs7kLg== X-UI-Out-Filterresults: notjunk:1;V01:K0:9HcRIgfWMSM=:Cwb7yyB5YCGbzWKmiKUi9Q HMg7aRJHoEudSsIm23CKQhFwiyyZlGr0rLjTHYgVsKbnuWPRY/rMTiqZa0FLNolCeRhNwQ0tQ v4rVGv4hVhh4zB5JWFGcamdNLc42vrKTqlb1LToah0mazuFoI3D1Tf3+t5j/2wpxhe0nFJMME tGIZ5LbsOs4u19x6EwLFYbjfbpnnVMiVZv4D9Y+Yi0v28pAFQKhyId6AvmJrmJJq0D3Vw0aAL RwpcKdsCSOXb7tMYKcKYa2sHQEUDvVpjtdU3zFwS8CFojFkJA2rapt9Dnfk75hRZl5/tPjwkb Aj/2yVgGC3nBDQ1F0ArMZYWHM7JzusPbLbJsm91jyxaPFQCFHRbD4m2zpzyIUpwJeJBjUKcKi zj4AHVIP12hKScY3r5ZwkabnsjMm2Xww4Y7nt8j+8cVLROuHGM9Fa90oDBBuz+SyYseHBZcR/ fSjXpCz3FK8+bbl2QxVQA8AVD2Brax2dZnC9vCkH/D19nS4HqFioQS8aiGnH12jTtCOUE0mcf 6GKEjIJvMBdCYTUTtIuK1ApYpznsKCEOpwFJpe9e2O14umWJnKhHG11vLso0yAu/qyQBktk0O emFOudKIZDFS6S41wre06jHOnGoLiQvE+ktUGbrcsAqHspSkmUlctXG/xUmrHPZu7mmXbfcwZ RKurginxHjNtbGNYEd4ABUt+6AvPqCGaVVt+mqXw3RBZCVJLMCsx/8OCpNq1QwyGLH1jGsRl/ 5ajyBnoPgqfAu3xrP8Rpe9vH7AWaMDDQ+2Vv/mDkqwhLzPwNoAmg1CjdOyFngZCh2SoSDdW5O d3QL74d Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >> Did you notice the check "IS_ERR(bp_data)" and the corresponding reaction >> in this update suggestion? > > Yes, but bp_data may still be a valid (as in "not an error") value. Thanks for your constructive feedback. > Your commit a1708a2eaded836b ("KVM: s390: Improve determination of sizes in > kvm_s390_import_bp_data()") made the code more robust, as kmalloc_array() ha > a builtin overflow check, and will return NULL if overflow is detected. > However, commit 0624a8eb82efd58e ("KVM: s390: Use memdup_user() rather than > duplicating code") dropped that safety net again. * How much are you concerned about the shown software evolution around multiplications for memory allocations? * Does there really a probability remain that an inappropriate product would be calculated here (as the situation was before my two update steps for this software module)? * Can it be that you are looking for a variant of a function like "memdup_user" where values can be passed as separate parameters "count" and "size" so that the needed multiplication and corresponding overflow check would be performed together as desired? Regards, Markus