OSDN Git Service

pcm: Remove assert() from snd_pcm_hw_params_slave()
authorTakashi Iwai <tiwai@suse.de>
Thu, 21 May 2015 05:26:39 +0000 (07:26 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 21 May 2015 05:26:39 +0000 (07:26 +0200)
Using assert() for non-fatal error checks is really brain-dead.
These are especially bad, as it hits even in the normal operation with
plugins and some h/w constraints.

Reported-by: Alan Horstmann <gineera@aspect135.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/pcm/pcm_params.c

index 6e57904..1d667a5 100644 (file)
@@ -2244,9 +2244,11 @@ int snd_pcm_hw_params_slave(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
        snd_pcm_hw_params_t slave_params;
        int err;
        err = sprepare(pcm, &slave_params);
-       assert(err >= 0);
+       if (err < 0)
+               return err;
        err = schange(pcm, params, &slave_params);
-       assert(err >= 0);
+       if (err < 0)
+               return err;
        err = sparams(pcm, &slave_params);
        if (err < 0)
                cchange(pcm, params, &slave_params);