[alsa-devel] ALSA: Soc_compress open file node allows more than once

Vinod Koul vinod.koul at intel.com
Mon Nov 27 06:50:20 CET 2017


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?

> 
> > 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.

-- 
~Vinod


More information about the Alsa-devel mailing list