diff options
Diffstat (limited to 'sound/core/sound_oss.c')
-rw-r--r-- | sound/core/sound_oss.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sound/core/sound_oss.c b/sound/core/sound_oss.c index 7be51546eb9e..7fe12264ff80 100644 --- a/sound/core/sound_oss.c +++ b/sound/core/sound_oss.c | |||
@@ -64,7 +64,8 @@ static int snd_oss_kernel_minor(int type, struct snd_card *card, int dev) | |||
64 | 64 | ||
65 | switch (type) { | 65 | switch (type) { |
66 | case SNDRV_OSS_DEVICE_TYPE_MIXER: | 66 | case SNDRV_OSS_DEVICE_TYPE_MIXER: |
67 | snd_assert(card != NULL && dev <= 1, return -EINVAL); | 67 | if (snd_BUG_ON(!card || dev < 0 || dev > 1)) |
68 | return -EINVAL; | ||
68 | minor = SNDRV_MINOR_OSS(card->number, (dev ? SNDRV_MINOR_OSS_MIXER1 : SNDRV_MINOR_OSS_MIXER)); | 69 | minor = SNDRV_MINOR_OSS(card->number, (dev ? SNDRV_MINOR_OSS_MIXER1 : SNDRV_MINOR_OSS_MIXER)); |
69 | break; | 70 | break; |
70 | case SNDRV_OSS_DEVICE_TYPE_SEQUENCER: | 71 | case SNDRV_OSS_DEVICE_TYPE_SEQUENCER: |
@@ -74,11 +75,13 @@ static int snd_oss_kernel_minor(int type, struct snd_card *card, int dev) | |||
74 | minor = SNDRV_MINOR_OSS_MUSIC; | 75 | minor = SNDRV_MINOR_OSS_MUSIC; |
75 | break; | 76 | break; |
76 | case SNDRV_OSS_DEVICE_TYPE_PCM: | 77 | case SNDRV_OSS_DEVICE_TYPE_PCM: |
77 | snd_assert(card != NULL && dev <= 1, return -EINVAL); | 78 | if (snd_BUG_ON(!card || dev < 0 || dev > 1)) |
79 | return -EINVAL; | ||
78 | minor = SNDRV_MINOR_OSS(card->number, (dev ? SNDRV_MINOR_OSS_PCM1 : SNDRV_MINOR_OSS_PCM)); | 80 | minor = SNDRV_MINOR_OSS(card->number, (dev ? SNDRV_MINOR_OSS_PCM1 : SNDRV_MINOR_OSS_PCM)); |
79 | break; | 81 | break; |
80 | case SNDRV_OSS_DEVICE_TYPE_MIDI: | 82 | case SNDRV_OSS_DEVICE_TYPE_MIDI: |
81 | snd_assert(card != NULL && dev <= 1, return -EINVAL); | 83 | if (snd_BUG_ON(!card || dev < 0 || dev > 1)) |
84 | return -EINVAL; | ||
82 | minor = SNDRV_MINOR_OSS(card->number, (dev ? SNDRV_MINOR_OSS_MIDI1 : SNDRV_MINOR_OSS_MIDI)); | 85 | minor = SNDRV_MINOR_OSS(card->number, (dev ? SNDRV_MINOR_OSS_MIDI1 : SNDRV_MINOR_OSS_MIDI)); |
83 | break; | 86 | break; |
84 | case SNDRV_OSS_DEVICE_TYPE_DMFM: | 87 | case SNDRV_OSS_DEVICE_TYPE_DMFM: |
@@ -90,7 +93,8 @@ static int snd_oss_kernel_minor(int type, struct snd_card *card, int dev) | |||
90 | default: | 93 | default: |
91 | return -EINVAL; | 94 | return -EINVAL; |
92 | } | 95 | } |
93 | snd_assert(minor >= 0 && minor < SNDRV_OSS_MINORS, return -EINVAL); | 96 | if (snd_BUG_ON(minor < 0 || minor >= SNDRV_OSS_MINORS)) |
97 | return -EINVAL; | ||
94 | return minor; | 98 | return minor; |
95 | } | 99 | } |
96 | 100 | ||