From: Ben Hutchings <ben.hutchings@codethink.co.uk> To: Arnd Bergmann <arnd@arndb.de>, alsa-devel@alsa-project.org, Takashi Iwai <tiwai@suse.com> Cc: Baolin Wang <baolin.wang@linaro.org>, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Jaroslav Kysela <perex@perex.cz>, Mark Brown <broonie@kernel.org>, Baolin Wang <baolin.wang7@gmail.com> Subject: Re: [Y2038] [PATCH v7 6/9] ALSA: Avoid using timespec for struct snd_timer_tread Date: Thu, 12 Dec 2019 00:14:38 +0000 [thread overview] Message-ID: <0e00090ef6fcf310159d6ce23f2c92f511dd01de.camel@codethink.co.uk> (raw) In-Reply-To: <20191211212025.1981822-7-arnd@arndb.de> On Wed, 2019-12-11 at 22:20 +0100, Arnd Bergmann wrote: [...] > +static int snd_timer_user_tread(void __user *argp, struct snd_timer_user *tu, > + unsigned int cmd, bool compat) > +{ > + int __user *p = argp; > + int xarg, old_tread; > + > + if (tu->timeri) /* too late */ > + return -EBUSY; > + if (get_user(xarg, p)) > + return -EFAULT; > + > + old_tread = tu->tread; > + > + if (!xarg) > + tu->tread = TREAD_FORMAT_NONE; > + else if (cmd == SNDRV_TIMER_IOCTL_TREAD64 || > + (IS_ENABLED(CONFIG_64BITS) && !compat)) This needs to check for CONFIG_64BIT not CONFIG_64BITS. [...] > @@ -2145,14 +2202,34 @@ static ssize_t snd_timer_user_read(struct file *file, char __user *buffer, > tu->qused--; > spin_unlock_irq(&tu->qlock); > > - if (tu->tread) { > - if (copy_to_user(buffer, &tu->tqueue[qhead], > - sizeof(struct snd_timer_tread))) > + tread = &tu->tqueue[qhead]; > + > + switch (tu->tread) { > + case TREAD_FORMAT_TIME64: > + if (copy_to_user(buffer, tread, > + sizeof(struct snd_timer_tread64))) > err = -EFAULT; > - } else { > + break; > + case TREAD_FORMAT_TIME32: > + memset(&tread32, 0, sizeof(tread32)); > + tread32 = (struct snd_timer_tread32) { > + .event = tread->event, > + .tstamp_sec = tread->tstamp_sec, > + .tstamp_sec = tread->tstamp_nsec, > + .val = tread->val, > + }; > + > + if (copy_to_user(buffer, &tread32, sizeof(tread32))) > + err = -EFAULT; > + break; > + case TREAD_FORMAT_NONE: > if (copy_to_user(buffer, &tu->queue[qhead], > sizeof(struct snd_timer_read))) > err = -EFAULT; > + break; > + default: > + err = -ENOTSUPP; [...] This is not a valid error code for returning to user-space, but this case should be impossible so I don't think it matters. Ben. -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom
WARNING: multiple messages have this Message-ID (diff)
From: Ben Hutchings <ben.hutchings@codethink.co.uk> To: Arnd Bergmann <arnd@arndb.de>, alsa-devel@alsa-project.org, Takashi Iwai <tiwai@suse.com> Cc: Baolin Wang <baolin.wang@linaro.org>, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>, Baolin Wang <baolin.wang7@gmail.com> Subject: Re: [alsa-devel] [Y2038] [PATCH v7 6/9] ALSA: Avoid using timespec for struct snd_timer_tread Date: Thu, 12 Dec 2019 00:14:38 +0000 [thread overview] Message-ID: <0e00090ef6fcf310159d6ce23f2c92f511dd01de.camel@codethink.co.uk> (raw) In-Reply-To: <20191211212025.1981822-7-arnd@arndb.de> On Wed, 2019-12-11 at 22:20 +0100, Arnd Bergmann wrote: [...] > +static int snd_timer_user_tread(void __user *argp, struct snd_timer_user *tu, > + unsigned int cmd, bool compat) > +{ > + int __user *p = argp; > + int xarg, old_tread; > + > + if (tu->timeri) /* too late */ > + return -EBUSY; > + if (get_user(xarg, p)) > + return -EFAULT; > + > + old_tread = tu->tread; > + > + if (!xarg) > + tu->tread = TREAD_FORMAT_NONE; > + else if (cmd == SNDRV_TIMER_IOCTL_TREAD64 || > + (IS_ENABLED(CONFIG_64BITS) && !compat)) This needs to check for CONFIG_64BIT not CONFIG_64BITS. [...] > @@ -2145,14 +2202,34 @@ static ssize_t snd_timer_user_read(struct file *file, char __user *buffer, > tu->qused--; > spin_unlock_irq(&tu->qlock); > > - if (tu->tread) { > - if (copy_to_user(buffer, &tu->tqueue[qhead], > - sizeof(struct snd_timer_tread))) > + tread = &tu->tqueue[qhead]; > + > + switch (tu->tread) { > + case TREAD_FORMAT_TIME64: > + if (copy_to_user(buffer, tread, > + sizeof(struct snd_timer_tread64))) > err = -EFAULT; > - } else { > + break; > + case TREAD_FORMAT_TIME32: > + memset(&tread32, 0, sizeof(tread32)); > + tread32 = (struct snd_timer_tread32) { > + .event = tread->event, > + .tstamp_sec = tread->tstamp_sec, > + .tstamp_sec = tread->tstamp_nsec, > + .val = tread->val, > + }; > + > + if (copy_to_user(buffer, &tread32, sizeof(tread32))) > + err = -EFAULT; > + break; > + case TREAD_FORMAT_NONE: > if (copy_to_user(buffer, &tu->queue[qhead], > sizeof(struct snd_timer_read))) > err = -EFAULT; > + break; > + default: > + err = -ENOTSUPP; [...] This is not a valid error code for returning to user-space, but this case should be impossible so I don't think it matters. Ben. -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2019-12-12 0:36 UTC|newest] Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-11 21:20 [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 1/9] ALSA: Replace timespec with timespec64 Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 2/9] ALSA: Avoid using timespec for struct snd_timer_status Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 3/9] ALSA: Avoid using timespec for struct snd_ctl_elem_value Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 4/9] ALSA: Avoid using timespec for struct snd_pcm_status Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 5/9] ALSA: Avoid using timespec for struct snd_rawmidi_status Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 6/9] ALSA: Avoid using timespec for struct snd_timer_tread Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-12 0:14 ` Ben Hutchings [this message] 2019-12-12 0:14 ` [alsa-devel] [Y2038] " Ben Hutchings 2019-12-12 9:57 ` Arnd Bergmann 2019-12-12 9:57 ` [alsa-devel] " Arnd Bergmann 2019-12-12 14:27 ` Ben Hutchings 2019-12-12 14:27 ` [alsa-devel] " Ben Hutchings 2019-12-13 10:25 ` Arnd Bergmann 2019-12-13 10:25 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 7/9] ALSA: move snd_pcm_ioctl_sync_ptr_compat into pcm_native.c Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 8/9] ALSA: add new 32-bit layout for snd_pcm_mmap_status/control Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2021-10-06 17:49 ` Michael Forney 2021-10-06 17:49 ` Michael Forney 2021-10-07 10:52 ` Takashi Iwai 2021-10-07 10:52 ` Takashi Iwai 2021-10-07 11:48 ` Arnd Bergmann 2021-10-07 11:48 ` Arnd Bergmann 2021-10-07 12:43 ` Takashi Iwai 2021-10-07 12:43 ` Takashi Iwai 2021-10-07 13:02 ` Takashi Iwai 2021-10-07 13:02 ` Takashi Iwai 2021-10-07 13:11 ` Arnd Bergmann 2021-10-07 13:11 ` Arnd Bergmann 2021-10-07 15:33 ` Takashi Iwai 2021-10-07 15:33 ` Takashi Iwai 2021-10-07 16:06 ` [musl] " Rich Felker 2021-10-07 16:06 ` Rich Felker 2021-10-07 16:18 ` Takashi Iwai 2021-10-07 16:18 ` Takashi Iwai 2021-10-07 16:51 ` Rich Felker 2021-10-07 16:51 ` Rich Felker 2021-10-08 8:43 ` Takashi Iwai 2021-10-08 8:43 ` Takashi Iwai 2021-10-08 8:44 ` Takashi Iwai 2021-10-08 8:44 ` Takashi Iwai 2021-10-08 9:24 ` Arnd Bergmann 2021-10-08 9:24 ` Arnd Bergmann 2021-10-08 11:11 ` Takashi Iwai 2021-10-08 11:11 ` Takashi Iwai 2021-10-08 11:45 ` Arnd Bergmann 2021-10-08 11:45 ` Arnd Bergmann 2021-10-08 11:53 ` Takashi Iwai 2021-10-08 11:53 ` Takashi Iwai 2021-10-08 12:13 ` Arnd Bergmann 2021-10-08 12:13 ` Arnd Bergmann 2021-10-08 12:07 ` Rich Felker 2021-10-08 12:07 ` Rich Felker 2021-10-10 7:53 ` Takashi Iwai 2021-10-10 7:53 ` Takashi Iwai 2021-10-18 14:43 ` Rich Felker 2021-10-18 14:43 ` Rich Felker 2021-10-18 14:58 ` Takashi Iwai 2021-10-18 14:58 ` Takashi Iwai 2021-10-18 15:08 ` Rich Felker 2021-10-18 15:08 ` Rich Felker 2021-10-18 15:26 ` Arnd Bergmann 2021-10-18 15:26 ` Arnd Bergmann 2021-10-18 20:42 ` Rich Felker 2021-10-18 20:42 ` Rich Felker 2021-10-19 14:16 ` Rich Felker 2021-10-19 14:16 ` Rich Felker 2021-10-19 14:23 ` Arnd Bergmann 2021-10-19 14:23 ` Arnd Bergmann 2021-10-08 12:06 ` Rich Felker 2021-10-08 12:06 ` Rich Felker 2021-10-08 12:37 ` Arnd Bergmann 2021-10-08 12:37 ` Arnd Bergmann 2021-10-08 17:20 ` Rich Felker 2021-10-08 17:20 ` Rich Felker 2019-12-11 21:20 ` [PATCH v7 9/9] ALSA: bump uapi version numbers Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-17 10:42 ` [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Takashi Iwai 2019-12-17 10:42 ` [alsa-devel] " Takashi Iwai 2019-12-17 21:15 ` Arnd Bergmann 2019-12-17 21:15 ` [alsa-devel] " Arnd Bergmann 2019-12-17 21:16 ` [GIT PULL, v8] " Arnd Bergmann 2019-12-17 21:16 ` [alsa-devel] " Arnd Bergmann 2019-12-17 22:22 ` [PATCH v7 0/8] " Takashi Iwai 2019-12-17 22:22 ` [alsa-devel] " Takashi Iwai
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=0e00090ef6fcf310159d6ce23f2c92f511dd01de.camel@codethink.co.uk \ --to=ben.hutchings@codethink.co.uk \ --cc=alsa-devel@alsa-project.org \ --cc=arnd@arndb.de \ --cc=baolin.wang7@gmail.com \ --cc=baolin.wang@linaro.org \ --cc=broonie@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=perex@perex.cz \ --cc=tiwai@suse.com \ --cc=y2038@lists.linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.