Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752898AbcD0MZG (ORCPT ); Wed, 27 Apr 2016 08:25:06 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:57285 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751776AbcD0MZB (ORCPT ); Wed, 27 Apr 2016 08:25:01 -0400 Subject: Re: [PATCH] nvmem/mxs-ocotp: fix buffer overflow in read To: Stanislav Meduna References: <201ccd58-8735-02d8-b4e4-9d2eda828fd8@meduna.org> Cc: linux-kernel@vger.kernel.org, "linux-arm-kernel@lists.infradead.org" , Srinivas Kandagatla , Maxime Ripard From: Stefan Wahren Message-ID: <5720AF81.2080402@i2se.com> Date: Wed, 27 Apr 2016 14:24:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <201ccd58-8735-02d8-b4e4-9d2eda828fd8@meduna.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:pifo9bs81IFKeGWy2uEJeLqUBmuO2PlJYGG3bxOgLo9x7Iwo4vn a0yxk7GeVKRRg9bNivLWLbr+9tjcsT8xQ1Ajpenxs/qqC+7RQrsd8ntHqBde1fzxvJTahzm Dk9k0lM2M79c2qXUsxX2T7sHevC3pnQXCVqpqhy6PLpOGNxJfngLCWU9aCM5v8dtmZ6bmvw LgpifukzN35NE+DHeC7cA== X-UI-Out-Filterresults: notjunk:1;V01:K0:w1PH6GrjWjw=:Ibn2EPsJpntDOTErMeOF1U GmExieqjHelzdsKd/2gxdjfO+mkcHxuVt5kjh0diDELF5x5IZ0+72ftwVGDApzrqiwA1f3SDj OTq//Z18m3KbGPaPuhu5U1elplpXlFdAM+V4RPo8mi5LUwn4WaMQuzVRjjZI7xQBMWdDYAuXS KejlsM1YPG8Hw2lIRPAovh7z0luYPgjXYEBtsOKi34h7E22nkob5+0lkad/BvVCXD69rZ/gjq RLGId1UPed6y6kU5C28ufSAzrlvlnZVIHKiY4fQY18PzJoPyzy5puvUVaGlR+lbCWagHawvTz 298a7f9wwsLkftu6oXOr5QBOe1386xxp4PxbXNap1m01POJwUuYGsmuieBQEf+cuafU7c3joD 4AMPGDaWVcVhSdWIoD6D894+dvFkVB76t91te+TdL5ZdqSEF8xx50Qg4VKJBYar8Yc1yVqJLr IgfY9kfSwnV2FCBh9uhooW0FNdwnmYqdbFCazYLYfLZxLjJPVoLdkRH3ObE3xImKQ3u3idXnM QcGdIuqIGk/XLq4PydM0jergMKE02BvOUqjNrND+5dMfzJYuMoDoGE3NmgVClYGXRfcRu5MEy EKqfflv+9Wmt+hEKUxi5CINe3ZJnSFGcyhBw2Gxa0I+sAd75DvQR6q8MWlAFjpMCctnOTvVrI 2iWY/HZyBIYMh76+WoQSvV2ZZDvUM/Z2iz9iavc3GS06SlC5a1CAH9UnhS/DYPnJDwrWLAsrs oUheg0rbhKITPI2C Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1379 Lines: 50 Hi Stano, [add Srinivas and Maxime to CC] Am 27.04.2016 um 13:53 schrieb Stanislav Meduna: > This patch fixes the issue where the mxs_ocotp_read is reading > the ocotp in reg_size steps but decrements the remaining size > by 1. The number of iterations is thus four times higher, > overwriting the area behind the output buffer. please add your Signed-off-by here. > > Fixes: c01e9a11ab6f ("nvmem: add driver for ocotp in i.MX23 and i.MX28") I tested the patch successful with i.MX23 and i.MX28. Tested-by: Stefan Wahren @Srinivas: I think this patch should go to stable. Regards > --- > drivers/nvmem/mxs-ocotp.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/nvmem/mxs-ocotp.c b/drivers/nvmem/mxs-ocotp.c > index 8ba19bb..2bb3c57 100644 > --- a/drivers/nvmem/mxs-ocotp.c > +++ b/drivers/nvmem/mxs-ocotp.c > @@ -94,7 +94,7 @@ static int mxs_ocotp_read(void *context, const void *reg, size_t reg_size, > if (ret) > goto close_banks; > > - while (val_size) { > + while (val_size >= reg_size) { > if ((offset < OCOTP_DATA_OFFSET) || (offset % 16)) { > /* fill up non-data register */ > *buf = 0; > @@ -103,7 +103,7 @@ static int mxs_ocotp_read(void *context, const void *reg, size_t reg_size, > } > > buf++; > - val_size--; > + val_size -= reg_size; > offset += reg_size; > } >