lkml.org 
[lkml]   [2011]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 1/2] ASoC: Add BUG() assertion if max98088_get_channel returns -EINVAL
    On 29/09/11 00:01, Axel Lin wrote:
    > The callers use the return value of max98088_get_channel as array index to
    > access max98088->dai[] array.
    > Add BUG() assertion for out of bound access of max98088->dai[] array.

    BUG() is pretty heavy handed for a driver. Why not fix the problem
    properly in the callers?

    ----
    Check the return value of max98088_get_channel in the callers and
    propagate any errors up.

    Signed-off-by: Ryan Mallon <rmallon@gmail.com>
    ---

    diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c
    index ac65a2d..e07700e 100644
    --- a/sound/soc/codecs/max98088.c
    +++ b/sound/soc/codecs/max98088.c
    @@ -1811,6 +1811,9 @@ static int max98088_put_eq_enum(struct snd_kcontrol *kcontrol,
    struct max98088_cdata *cdata;
    int sel = ucontrol->value.integer.value[0];

    + if (channel < 0)
    + return channel;
    +
    cdata = &max98088->dai[channel];

    if (sel >= pdata->eq_cfgcnt)
    @@ -1838,6 +1841,9 @@ static int max98088_get_eq_enum(struct snd_kcontrol *kcontrol,
    int channel = max98088_get_channel(kcontrol->id.name);
    struct max98088_cdata *cdata;

    + if (channel < 0)
    + return channel;
    +
    cdata = &max98088->dai[channel];
    ucontrol->value.enumerated.item[0] = cdata->eq_sel;
    return 0;



    \
     
     \ /
      Last update: 2011-09-29 01:17    [W:0.028 / U:59.252 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site