Skip to content
Snippets Groups Projects
  • Takashi Iwai's avatar
    40cab6e8
    ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams · 40cab6e8
    Takashi Iwai authored
    
    OSS PCM stream management isn't modal but it allows ioctls issued at
    any time for changing the parameters.  In the previous hardening
    patch ("ALSA: pcm: Avoid potential races between OSS ioctls and
    read/write"), we covered these races and prevent the corruption by
    protecting the concurrent accesses via params_lock mutex.  However,
    this means that some ioctls that try to change the stream parameter
    (e.g. channels or format) would be blocked until the read/write
    finishes, and it may take really long.
    
    Basically changing the parameter while reading/writing is an invalid
    operation, hence it's even more user-friendly from the API POV if it
    returns -EBUSY in such a situation.
    
    This patch adds such checks in the relevant ioctls with the addition
    of read/write access refcount.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    40cab6e8
    History
    ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams
    Takashi Iwai authored
    
    OSS PCM stream management isn't modal but it allows ioctls issued at
    any time for changing the parameters.  In the previous hardening
    patch ("ALSA: pcm: Avoid potential races between OSS ioctls and
    read/write"), we covered these races and prevent the corruption by
    protecting the concurrent accesses via params_lock mutex.  However,
    this means that some ioctls that try to change the stream parameter
    (e.g. channels or format) would be blocked until the read/write
    finishes, and it may take really long.
    
    Basically changing the parameter while reading/writing is an invalid
    operation, hence it's even more user-friendly from the API POV if it
    returns -EBUSY in such a situation.
    
    This patch adds such checks in the relevant ioctls with the addition
    of read/write access refcount.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.