• Takashi Sakamoto's avatar
    ALSA: control: add dimension validator for userspace elements · 860c1994
    Takashi Sakamoto authored
    The 'dimen' field in struct snd_ctl_elem_info is used to compose all of
    members in the element as multi-dimensional matrix. The field has four
    members. Each member represents the width in each dimension level by
    element member unit. For example, if the members consist of typical
    two dimensional matrix, the dimen[0] represents the number of rows
    and dimen[1] represents the number of columns (or vise-versa).
    
    The total members in the matrix should be exactly the same as the number
    of members in the element, while current implementation has no validator
    of this information. In a view of userspace applications, the information
    must be valid so that it cannot cause any bugs such as buffer-over-run.
    
    This commit adds a validator of dimension information for userspace
    applications which add new element sets. When they add the element sets
    with wrong dimension information, they receive -EINVAL.
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    860c1994
control.c 50.3 KB