From 5cee69b47b9719328ba16a837f5e347f11f06afd Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 30 Sep 2008 14:43:14 +0200 Subject: [PATCH] Replace some assert() with runtime checks 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 --- src/control/control_hw.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/control/control_hw.c b/src/control/control_hw.c index 7180eadc..13ee2a7f 100644 --- a/src/control/control_hw.c +++ b/src/control/control_hw.c @@ -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; -- 2.47.1