From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v1,1/1] dmaengine: stm32-dmamux: fix a potential buffer overflow From: Vinod Koul Message-Id: <20180322052150.GB15443@localhost> Date: Thu, 22 Mar 2018 10:51:50 +0530 To: Pierre-Yves MORDRET Cc: Maxime Coquelin , Alexandre Torgue , Dan Williams , M'boumba Cedric Madianga , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org List-ID: T24gVHVlLCBNYXIgMTMsIDIwMTggYXQgMDU6NTU6MzVQTSArMDEwMCwgUGllcnJlLVl2ZXMgTU9S RFJFVCB3cm90ZToKPiBUaGUgYml0ZmllbGQgZG1hX2ludXNlIGlzIGFsbG9jYXRlZCBvZiBzaXpl IGRtYV9yZXF1ZXN0cyBiaXRzLCB0aHVzIGEKPiB2YWxpZCBiaXQgYWRkcmVzcyBpcyBmcm9tIDAg dG8gKGRtYV9yZXF1ZXN0cyAtIDEpLgo+IFdoZW4gZmluZF9maXJzdF96ZXJvX2JpdCgpIGZhaWxz LCBpdCByZXR1cm5zIGRtYV9yZXF1ZXN0cyBhcyBpbnZhbGlkCj4gYWRkcmVzcy4KPiBVc2luZyBz dWNoIGFkZHJlc3MgZm9yIHRoZSBmb2xsb3dpbmcgc2V0X2JpdCgpIGlzIGluY29ycmVjdCBhbmQs IGlmCj4gZG1hX3JlcXVlc3RzIGlzIGEgbXVsdGlwbGUgb2YgQklUU19QRVJfTE9ORywgaXQgd2ls bCBjYXVzZSBhIGJ1ZmZlcgo+IG92ZXJmbG93Lgo+IEN1cnJlbnRseSB0aGlzIGRyaXZlciBpcyBv bmx5IHVzZWQgaW4gRFQgc3RtMzJoNzQzLmR0c2kgd2hlcmUgYSBzYWZlIHZhbHVlCj4gZG1hX3Jl cXVlc3RzPTE2IGlzIG5vdCB0cmlnZ2VyaW5nIHRoZSBidWZmZXIgb3ZlcmZsb3cuCj4gCj4gRml4 ZWQgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBmaW5kX2ZpcnN0X3plcm9fYml0KCkg X2JlZm9yZV8KPiB1c2luZyBpdC4KCkFwcGxpZWQsIHRoYW5rcwo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: vinod.koul@intel.com (Vinod Koul) Date: Thu, 22 Mar 2018 10:51:50 +0530 Subject: [PATCH v1 1/1] dmaengine: stm32-dmamux: fix a potential buffer overflow In-Reply-To: <1520960135-26575-1-git-send-email-pierre-yves.mordret@st.com> References: <1520960135-26575-1-git-send-email-pierre-yves.mordret@st.com> Message-ID: <20180322052150.GB15443@localhost> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Mar 13, 2018 at 05:55:35PM +0100, Pierre-Yves MORDRET wrote: > The bitfield dma_inuse is allocated of size dma_requests bits, thus a > valid bit address is from 0 to (dma_requests - 1). > When find_first_zero_bit() fails, it returns dma_requests as invalid > address. > Using such address for the following set_bit() is incorrect and, if > dma_requests is a multiple of BITS_PER_LONG, it will cause a buffer > overflow. > Currently this driver is only used in DT stm32h743.dtsi where a safe value > dma_requests=16 is not triggering the buffer overflow. > > Fixed by checking the return value of find_first_zero_bit() _before_ > using it. Applied, thanks -- ~Vinod From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752259AbeCVFRo (ORCPT ); Thu, 22 Mar 2018 01:17:44 -0400 Received: from mga05.intel.com ([192.55.52.43]:28737 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752042AbeCVFRm (ORCPT ); Thu, 22 Mar 2018 01:17:42 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,343,1517904000"; d="scan'208";a="35832958" Date: Thu, 22 Mar 2018 10:51:50 +0530 From: Vinod Koul To: Pierre-Yves MORDRET Cc: Maxime Coquelin , Alexandre Torgue , Dan Williams , "M'boumba Cedric Madianga" , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 1/1] dmaengine: stm32-dmamux: fix a potential buffer overflow Message-ID: <20180322052150.GB15443@localhost> References: <1520960135-26575-1-git-send-email-pierre-yves.mordret@st.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1520960135-26575-1-git-send-email-pierre-yves.mordret@st.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 13, 2018 at 05:55:35PM +0100, Pierre-Yves MORDRET wrote: > The bitfield dma_inuse is allocated of size dma_requests bits, thus a > valid bit address is from 0 to (dma_requests - 1). > When find_first_zero_bit() fails, it returns dma_requests as invalid > address. > Using such address for the following set_bit() is incorrect and, if > dma_requests is a multiple of BITS_PER_LONG, it will cause a buffer > overflow. > Currently this driver is only used in DT stm32h743.dtsi where a safe value > dma_requests=16 is not triggering the buffer overflow. > > Fixed by checking the return value of find_first_zero_bit() _before_ > using it. Applied, thanks -- ~Vinod