diff options
| -rw-r--r-- | sound/oss/opl3.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/sound/oss/opl3.c b/sound/oss/opl3.c index cbf957424d5..407cd677950 100644 --- a/sound/oss/opl3.c +++ b/sound/oss/opl3.c | |||
| @@ -845,6 +845,10 @@ static int opl3_load_patch(int dev, int format, const char __user *addr, | |||
| 845 | 845 | ||
| 846 | static void opl3_panning(int dev, int voice, int value) | 846 | static void opl3_panning(int dev, int voice, int value) |
| 847 | { | 847 | { |
| 848 | |||
| 849 | if (voice < 0 || voice >= devc->nr_voice) | ||
| 850 | return; | ||
| 851 | |||
| 848 | devc->voc[voice].panning = value; | 852 | devc->voc[voice].panning = value; |
| 849 | } | 853 | } |
| 850 | 854 | ||
| @@ -1062,8 +1066,15 @@ static int opl3_alloc_voice(int dev, int chn, int note, struct voice_alloc_info | |||
| 1062 | 1066 | ||
| 1063 | static void opl3_setup_voice(int dev, int voice, int chn) | 1067 | static void opl3_setup_voice(int dev, int voice, int chn) |
| 1064 | { | 1068 | { |
| 1065 | struct channel_info *info = | 1069 | struct channel_info *info; |
| 1066 | &synth_devs[dev]->chn_info[chn]; | 1070 | |
| 1071 | if (voice < 0 || voice >= devc->nr_voice) | ||
| 1072 | return; | ||
| 1073 | |||
| 1074 | if (chn < 0 || chn > 15) | ||
| 1075 | return; | ||
| 1076 | |||
| 1077 | info = &synth_devs[dev]->chn_info[chn]; | ||
| 1067 | 1078 | ||
| 1068 | opl3_set_instr(dev, voice, info->pgm_num); | 1079 | opl3_set_instr(dev, voice, info->pgm_num); |
| 1069 | 1080 | ||
