[alsa-devel] ALSA: Soc_compress open file node allows more than once
b_lkasam at codeaurora.org
b_lkasam at codeaurora.org
Thu Dec 28 07:35:07 CET 2017
On 2017-11-27 11:20, Vinod Koul wrote:
> On Thu, Nov 23, 2017 at 02:41:00PM +0100, Takashi Iwai wrote:
>> On Thu, 23 Nov 2017 14:18:30 +0100,
>> b_lkasam at codeaurora.org wrote:
>> >
>> > Hi ALSA team,
>> > This is regarding compress offload framework file operations wrt open
>> > system call.
>> >
>> > For open call to this driver currently allows for same node more than
>> > once.
>> >
>> > This may result in memleak issues or data corruption if same node in
>> > use by multiple instances.
>>
>> This only depends on the driver side implementation. There is no
>> restriction in the core side, as the multiple open is possible
>> depending on the hardware design and the driver implementation.
>
> sounds right to me, also is the leak on core side or your driver?
>
Sorry for delay in getting back.. Yes, leak was in driver not on core
side.
Thanks everyone for inputs...We have fixed it in our driver.
>>
>> > can we have restriction to avoid open of same node using some refcount?
>> >
>> > we can either have refcount under compr->private_data and cross check
>> > in below function before proceeding.
>> > static int snd_compr_open(struct inode *inode, struct file *f)
>> >
>> > Please suggest accordingly.
>>
>> I'd suggest just to add an exclusive open check in the driver side.
>> The open/close callbacks are protected via a mutex, so it can be a
>> simple bool flag check.
>>
>> If the exclusive access is regarded as a common pattern, we can add
>> some flag to snd_compr later and check it in the core, instead, too.
More information about the Alsa-devel
mailing list