On Thu, Nov 23, 2017 at 02:41:00PM +0100, Takashi Iwai wrote:
On Thu, 23 Nov 2017 14:18:30 +0100, b_lkasam@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.