diff mbox series

ALSA: wavefront: Proper check of get_user() error

Message ID 20220510103626.16635-1-tiwai@suse.de (mailing list archive)
State Accepted
Commit a34ae6c0660d3b96b0055f68ef74dc9478852245
Headers show
Series ALSA: wavefront: Proper check of get_user() error | expand

Commit Message

Takashi Iwai May 10, 2022, 10:36 a.m. UTC
The antient ISA wavefront driver reads its sample patch data (uploaded
over an ioctl) via __get_user() with no good reason; likely just for
some performance optimizations in the past.  Let's change this to the
standard get_user() and the error check for handling the fault case

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
 sound/isa/wavefront/wavefront_synth.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series


diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c
index 69cbc79fbb71..2aaaa6807174 100644
--- a/sound/isa/wavefront/wavefront_synth.c
+++ b/sound/isa/wavefront/wavefront_synth.c
@@ -1094,7 +1094,8 @@  wavefront_send_sample (snd_wavefront_t *dev,
 			if (dataptr < data_end) {
-				__get_user (sample_short, dataptr);
+				if (get_user(sample_short, dataptr))
+					return -EFAULT;
 				dataptr += skip;
 				if (data_is_unsigned) { /* GUS ? */