1. 01 Feb, 2020 4 commits
    • Al Viro's avatar
      vfs: fix do_last() regression · 6404674a
      Al Viro authored
      Brown paperbag time: fetching ->i_uid/->i_mode really should've been
      done from nd->inode.  I even suggested that, but the reason for that has
      slipped through the cracks and I went for dir->d_inode instead - made
      for more "obvious" patch.
      
      Analysis:
      
       - at the entry into do_last() and all the way to step_into(): dir (aka
         nd->path.dentry) is known not to have been freed; so's nd->inode and
         it's equal to dir->d_inode unless we are already doomed to -ECHILD.
         inode of the file to get opened is not known.
      
       - after step_into(): inode of the file to get opened is known; dir
         might be pointing to freed memory/be negative/etc.
      
       - at the call of may_create_in_sticky(): guaranteed to be out of RCU
         mode; inode of the file to get opened is known and pinned; dir might
         be garbage.
      
      The last was the reason for the original patch.  Except that at the
      do_last() entry we can be in RCU mode and it is possible that
      nd->path.dentry->d_inode has already changed under us.
      
      In that case we are going to fail with -ECHILD, but we need to be
      careful; nd->inode is pointing to valid struct inode and it's the same
      as nd->path.dentry->d_inode in "won't fail with -ECHILD" case, so we
      should use that.
      Reported-by: default avatar"Rantala, Tommi T. (Nokia - FI/Espoo)" <tommi.t.rantala@nokia.com>
      Reported-by: syzbot+190005201ced78a74ad6@syzkaller.appspotmail.com
      Wearing-brown-paperbag: Al Viro <viro@zeniv.linux.org.uk>
      Cc: stable@kernel.org
      Fixes: d0cb5018 ("do_last(): fetch directory ->i_mode and ->i_uid before it's too late")
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6404674a
    • Linus Torvalds's avatar
      Merge tag 'kconfig-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 14cd0bd0
      Linus Torvalds authored
      Pull Kconfig updates from Masahiro Yamada:
      
       - add 'yes2modconfig' and 'mod2yesconfig' targets (useful mainly for
         turning syzbot configs into more modular ones as a step to minimizing
         the result)
      
       - sanitize help text
      
       - various code cleanups
      
      * tag 'kconfig-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig: fix documentation typos
        kconfig: fix an "implicit declaration of function" warning
        kconfig: fix nesting of symbol help text
        kconfig: distinguish between dependencies and visibility in help text
        kconfig: list all definitions of a symbol in help text
        kconfig: Add yes2modconfig and mod2yesconfig targets.
        kconfig: use $(PERL) in Makefile
        kconfig: fix too deep indentation in Makefile
        kconfig: localmodconfig: fix indentation for closing brace
        kconfig: localmodconfig: remove unused $config
        kconfig: squash prop_alloc() into menu_add_prop()
        kconfig: remove sym from struct property
        kconfig: remove 'prompt' argument from menu_add_prop()
        kconfig: move prompt handling to menu_add_prompt() from menu_add_prop()
        kconfig: remove 'prompt' symbol
        kconfig: drop T_WORD from the RHS of 'prompt' symbol
        kconfig: use parent->dep as the parentdep of 'menu'
        kconfig: remove the rootmenu check in menu_add_prop()
      14cd0bd0
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 368d060b
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - detect missing include guard in UAPI headers
      
       - do not create orphan built-in.a or obj-y objects
      
       - generate modules.builtin more simply, and drop tristate.conf
      
       - simplify built-in initramfs creation
      
       - make linux-headers deb package thinner
      
       - optimize the deb package build script
      
       - misc cleanups
      
      * tag 'kbuild-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
        builddeb: split libc headers deployment out into a function
        builddeb: split kernel headers deployment out into a function
        builddeb: remove redundant make for ARCH=um
        builddeb: avoid invoking sub-shells where possible
        builddeb: remove redundant $objtree/
        builddeb: match temporary directory name to the package name
        builddeb: remove unneeded files in hdrobjfiles for headers package
        kbuild: use -S instead of -E for precise cc-option test in Kconfig
        builddeb: allow selection of .deb compressor
        kbuild: remove 'Building modules, stage 2.' log
        kbuild: remove *.tmp file when filechk fails
        kbuild: remove PYTHON2 variable
        modpost: assume STT_SPARC_REGISTER is defined
        gen_initramfs.sh: remove intermediate cpio_list on errors
        initramfs: refactor the initramfs build rules
        gen_initramfs.sh: always output cpio even without -o option
        initramfs: add default_cpio_list, and delete -d option support
        initramfs: generate dependency list and cpio at the same time
        initramfs: specify $(src)/gen_initramfs.sh as a prerequisite in Makefile
        initramfs: make initramfs compression choice non-optional
        ...
      368d060b
    • Linus Torvalds's avatar
      Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · acd77500
      Linus Torvalds authored
      Pull random changes from Ted Ts'o:
       "Change /dev/random so that it uses the CRNG and only blocking if the
        CRNG hasn't initialized, instead of the old blocking pool. Also clean
        up archrandom.h, and some other miscellaneous cleanups"
      
      * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (24 commits)
        s390x: Mark archrandom.h functions __must_check
        powerpc: Mark archrandom.h functions __must_check
        powerpc: Use bool in archrandom.h
        x86: Mark archrandom.h functions __must_check
        linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check
        linux/random.h: Use false with bool
        linux/random.h: Remove arch_has_random, arch_has_random_seed
        s390: Remove arch_has_random, arch_has_random_seed
        powerpc: Remove arch_has_random, arch_has_random_seed
        x86: Remove arch_has_random, arch_has_random_seed
        random: remove some dead code of poolinfo
        random: fix typo in add_timer_randomness()
        random: Add and use pr_fmt()
        random: convert to ENTROPY_BITS for better code readability
        random: remove unnecessary unlikely()
        random: remove kernel.random.read_wakeup_threshold
        random: delete code to pull data into pools
        random: remove the blocking pool
        random: make /dev/random be almost like /dev/urandom
        random: ignore GRND_RANDOM in getentropy(2)
        ...
      acd77500
  2. 31 Jan, 2020 36 commits