Skip to content

Commit

Permalink
ALSA: snd-usb-caiaq: Fix NULL dereference in input.c
Browse files Browse the repository at this point in the history
There was a case where a newly-registered input device could be opened before
a necessary variable in the device structure was set. When code tried to use
the variable in the URB reply callback, it would cause an Oops.

This fix sets the aforementioned variable before calling input_register_device.

Signed-off-by: William Light <wrl@illest.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
William Light authored and Takashi Iwai committed Oct 13, 2011
1 parent ffd3d5c commit 3d37fbe
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion sound/usb/caiaq/input.c
Original file line number Diff line number Diff line change
Expand Up @@ -664,15 +664,17 @@ int snd_usb_caiaq_input_init(struct snd_usb_caiaqdev *dev)
for (i = 0; i < input->keycodemax; i++)
__set_bit(dev->keycode[i], input->keybit);

dev->input_dev = input;

ret = input_register_device(input);
if (ret < 0)
goto exit_free_idev;

dev->input_dev = input;
return 0;

exit_free_idev:
input_free_device(input);
dev->input_dev = NULL;
return ret;
}

Expand Down

0 comments on commit 3d37fbe

Please sign in to comment.