aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/sound_oss.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/core/sound_oss.c')
-rw-r--r--sound/core/sound_oss.c12
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