ALSA: timer: Fix broken compat timer user status ioctl
authorTakashi Iwai <tiwai@suse.de>
Sun, 28 Feb 2016 10:36:14 +0000 (11:36 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sun, 28 Feb 2016 16:48:11 +0000 (17:48 +0100)
The timer user status compat ioctl returned the bogus struct used for
64bit architectures instead of the 32bit one.  This patch addresses
it to return the proper struct.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/timer_compat.c

index e05802ae6e1b1e240a187a43c9f5308fcf7145c0..8e7eddf35c6a4c170b513c0ca0b7ebc68721dbdb 100644 (file)
@@ -70,13 +70,14 @@ static int snd_timer_user_status_compat(struct file *file,
                                        struct snd_timer_status32 __user *_status)
 {
        struct snd_timer_user *tu;
-       struct snd_timer_status status;
+       struct snd_timer_status32 status;
        
        tu = file->private_data;
        if (snd_BUG_ON(!tu->timeri))
                return -ENXIO;
        memset(&status, 0, sizeof(status));
-       status.tstamp = tu->tstamp;
+       status.tstamp.tv_sec = tu->tstamp.tv_sec;
+       status.tstamp.tv_nsec = tu->tstamp.tv_nsec;
        status.resolution = snd_timer_resolution(tu->timeri);
        status.lost = tu->timeri->lost;
        status.overrun = tu->overrun;