On Apr 10 2015 19:43, Takashi Iwai wrote:
I'm unaware of it... These code should be:
if (copy_to_user(buffer, &ev, sizeof(struct snd_ctl_event))) { if (result == 0) result = -EFAULT; break;
Well, it's not much better than the original code, IMO.
OK. I dropped this patch.
And I realize sound/firewire/fireworks/fireworks_hwdep.c has the same bug. I'll post another patch for this bug.
This is an implementation detail and I believe it rather depends on each driver. (But I should reread POSIX definition again before concluding it.)
That said, it isn't wrong to return -EFAULT immediately, per se. The problem here is that you change the existing behavior. Especially a core code like this should be treated carefully even for such a small behavior change.
Thanks
Takashi Sakamoto