diff options
author | Kulikov Vasiliy <segooon@gmail.com> | 2010-07-28 20:41:17 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-07-29 12:25:06 +0200 |
commit | b3390ceab95601afc12213c3ec5551d3bc7b638f (patch) | |
tree | a9f2523442885df6e35f357bb74b9695127c3a4d /sound/oss | |
parent | 5157cc8113db3de60ab6320965331c63bc77003c (diff) | |
download | talos-op-linux-b3390ceab95601afc12213c3ec5551d3bc7b638f.tar.gz talos-op-linux-b3390ceab95601afc12213c3ec5551d3bc7b638f.zip |
sound: oss: midi_synth: check get_user() return value
get_user() may fail, if so return -EFAULT.
Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/oss')
-rw-r--r-- | sound/oss/midi_synth.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/oss/midi_synth.c b/sound/oss/midi_synth.c index 3bc7104c5379..3c09374ea5bf 100644 --- a/sound/oss/midi_synth.c +++ b/sound/oss/midi_synth.c @@ -523,7 +523,9 @@ midi_synth_load_patch(int dev, int format, const char __user *addr, { unsigned char data; - get_user(*(unsigned char *) &data, (unsigned char __user *) &((addr)[hdr_size + i])); + if (get_user(data, + (unsigned char __user *)(addr + hdr_size + i))) + return -EFAULT; eox_seen = (i > 0 && data & 0x80); /* End of sysex */ |