21 Nov, 2017

1 commit

  • Some timer compat ioctls have NULL checks of timer instance with
    snd_BUG_ON() that bring up WARN_ON() when the debug option is set.
    Actually the condition can be met in the normal situation and it's
    confusing and bad to spew kernel warnings with stack trace there.
    Let's remove snd_BUG_ON() invocation and replace with the simple
    checks. Also, correct the error code to EBADFD to follow the native
    ioctl error handling.

    Reported-by: syzbot
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

31 Oct, 2017

1 commit

  • The races among ioctl and other operations were protected by the
    commit af368027a49a ("ALSA: timer: Fix race among timer ioctls") and
    later fixes, but one code path was forgotten in the scenario: the
    32bit compat ioctl. As syzkaller recently spotted, a very similar
    use-after-free may happen with the combination of compat ioctls.

    The fix is simply to apply the same ioctl_lock to the compat_ioctl
    callback, too.

    Fixes: af368027a49a ("ALSA: timer: Fix race among timer ioctls")
    Reference: http://lkml.kernel.org/r/089e082686ac9b482e055c832617@google.com
    Reported-by: syzbot
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

23 Mar, 2016

1 commit

  • 'struct snd_timer_gparams' includes some members with 'unsigned long',
    therefore its size differs depending on data models of architecture. As
    a result, x86/x32 applications fail to execute ioctl(2) with
    SNDRV_TIMER_GPARAMS command on x86_64 machine.

    This commit fixes this bug by adding a pair of structure and ioctl
    command for the compatibility.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

29 Feb, 2016

2 commits

  • X32 ABI takes the 64bit timespec, thus the timer user status ioctl becomes
    incompatible with IA32. This results in NOTTY error when the ioctl is
    issued.

    Meanwhile, this struct in X32 is essentially identical with the one in
    X86-64, so we can just bypassing to the existing code for this
    specific compat ioctl.

    Cc: # v3.4+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • 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:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Aug, 2008

1 commit


03 Jan, 2006

1 commit


29 May, 2005

2 commits


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds