]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Replace some assert() with runtime checks
authorTakashi Iwai <tiwai@suse.de>
Tue, 30 Sep 2008 12:43:14 +0000 (14:43 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 30 Sep 2008 12:43:14 +0000 (14:43 +0200)
assert() for sanity checks that can happen in runtime isn't a good idea.
Replaced it with the real check.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/control/control_hw.c

index 7180eadcc582ff3d2e5ad8fdb6123ba4e0584be6..13ee2a7f29da5dbc378e96697caf4d5ffe942a61 100644 (file)
@@ -324,7 +324,11 @@ static int snd_ctl_hw_read(snd_ctl_t *handle, snd_ctl_event_t *event)
        ssize_t res = read(hw->fd, event, sizeof(*event));
        if (res <= 0)
                return -errno;
-       assert(res == sizeof(*event));
+       if (CHECK_SANITY(res != sizeof(*event))) {
+               SNDMSG("snd_ctl_hw_read: read size error (req:%d, got:%d)\n",
+                      sizeof(*event), res);
+               return -EINVAL;
+       }
        return 1;
 }
 
@@ -368,7 +372,10 @@ int snd_ctl_hw_open(snd_ctl_t **handle, const char *name, int card, int mode)
 
        *handle = NULL; 
 
-       assert(card >= 0 && card < 32);
+       if (CHECK_SANITY(card < 0 || card >= 32)) {
+               SNDMSG("Invalid card index %d", card);
+               return -EINVAL;
+       }
        sprintf(filename, SNDRV_FILE_CONTROL, card);
        if (mode & SND_CTL_READONLY)
                fmode = O_RDONLY;