# git rev-parse -q --verify c8c87ee1489f4b3ed0fda074a7421e02cc8152a7^{commit} c8c87ee1489f4b3ed0fda074a7421e02cc8152a7 already have revision, skipping fetch # git checkout -q -f -B kisskb c8c87ee1489f4b3ed0fda074a7421e02cc8152a7 # git clean -qxdf # git log -1 commit c8c87ee1489f4b3ed0fda074a7421e02cc8152a7 Author: Michael Ellerman Date: Tue Apr 25 20:49:24 2017 +1000 powerpc/mm: Fix possible out-of-bounds shift in arch_mmap_rnd() The recent patch to add runtime configuration of the ASLR limits added a bug in arch_mmap_rnd() where we may shift an integer (32-bits) by up to 33 bits, leading to undefined behaviour. In practice it exhibits as every process seg faulting instantly, presumably because the rnd value hasn't been restricited by the modulus at all. We didn't notice because it only happens under certain kernel configurations and if the number of bits is actually set to a large value. Fix it by switching to unsigned long. Fixes: 9fea59bd7ca5 ("powerpc/mm: Add support for runtime configuration of ASLR limits") Reported-by: Balbir Singh Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-gcc --version # < git log --format=%s --max-count=1 c8c87ee1489f4b3ed0fda074a7421e02cc8152a7 # < make -j 10 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- allnoconfig # make -j 10 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- make[1]: Entering directory '/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release GEN ./Makefile UPD include/config/kernel.release WRAP arch/powerpc/include/generated/asm/clkdev.h WRAP arch/powerpc/include/generated/asm/div64.h WRAP arch/powerpc/include/generated/asm/export.h WRAP arch/powerpc/include/generated/asm/irq_regs.h WRAP arch/powerpc/include/generated/asm/irq_work.h WRAP arch/powerpc/include/generated/asm/local64.h WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h WRAP arch/powerpc/include/generated/asm/rwsem.h WRAP arch/powerpc/include/generated/asm/preempt.h WRAP arch/powerpc/include/generated/asm/vtime.h CHK include/generated/uapi/linux/version.h UPD include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h Using /home/kisskb/slave/src as source for kernel HOSTCC scripts/sortextable HOSTCC scripts/dtc/dtc.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o CC scripts/mod/empty.o HOSTCC scripts/dtc/livetree.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/checks.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/util.o SHIPPED scripts/dtc/dtc-lexer.lex.c SHIPPED scripts/dtc/dtc-parser.tab.h MKELF scripts/mod/elfconfig.h GEN scripts/mod/devicetable-offsets.h SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/mod/modpost.o HOSTCC scripts/mod/sumversion.o HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/dtc/dtc-parser.tab.o HOSTCC scripts/mod/file2alias.o HOSTLD scripts/dtc/dtc HOSTLD scripts/mod/modpost CHK include/generated/timeconst.h CC kernel/bounds.s UPD include/generated/timeconst.h CHK include/generated/bounds.h UPD include/generated/bounds.h CC arch/powerpc/kernel/asm-offsets.s CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh LD usr/built-in.o CHK include/generated/compile.h CC init/main.o CC init/do_mounts.o CC init/noinitramfs.o CC init/init_task.o UPD include/generated/compile.h CC init/version.o CC arch/powerpc/mm/fault.o LD arch/powerpc/sysdev/built-in.o AS arch/powerpc/lib/string.o CC arch/powerpc/lib/alloc.o LD arch/powerpc/platforms/built-in.o AS arch/powerpc/lib/crtsavres.o CC arch/powerpc/kernel/cputable.o CC arch/powerpc/lib/code-patching.o CC arch/powerpc/lib/feature-fixups.o CC arch/powerpc/mm/mem.o AS arch/powerpc/lib/div64.o AS arch/powerpc/lib/copy_32.o CC arch/powerpc/kernel/ptrace.o AS arch/powerpc/lib/checksum_32.o CC arch/powerpc/lib/checksum_wrappers.o CC arch/powerpc/mm/pgtable.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/mm/init_32.o CC arch/powerpc/mm/pgtable_32.o CC arch/powerpc/mm/init-common.o LD arch/powerpc/lib/built-in.o LD arch/powerpc/math-emu/built-in.o LD arch/powerpc/crypto/built-in.o LD arch/powerpc/net/built-in.o CC arch/powerpc/kernel/syscalls.o CC kernel/fork.o LD certs/built-in.o CC arch/powerpc/kernel/irq.o CC kernel/exec_domain.o CC arch/powerpc/mm/ppc_mmu_32.o LD init/mounts.o LD init/built-in.o AS arch/powerpc/mm/hash_low_32.o CC mm/filemap.o CC kernel/panic.o CC arch/powerpc/mm/mmu_context_hash32.o CC arch/powerpc/kernel/align.o CC fs/open.o CC mm/mempool.o LD ipc/built-in.o CC arch/powerpc/kernel/signal_32.o CC security/commoncap.o CC arch/powerpc/mm/tlb_hash32.o LD crypto/built-in.o CC kernel/cpu.o CC kernel/exit.o CC kernel/softirq.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/mm/hugetlbpage.o CC fs/read_write.o CC arch/powerpc/kernel/vdso.o CC kernel/resource.o CC security/min_addr.o CC kernel/sysctl.o CC kernel/sysctl_binary.o LD arch/powerpc/mm/built-in.o CC kernel/capability.o CC mm/oom_kill.o LD security/built-in.o CC fs/file_table.o CC arch/powerpc/kernel/process.o LD block/built-in.o CC kernel/ptrace.o CC kernel/user.o LD sound/built-in.o LD firmware/built-in.o CC kernel/signal.o LD drivers/amba/built-in.o LD drivers/auxdisplay/built-in.o CC fs/super.o CC fs/char_dev.o CC drivers/base/component.o CC drivers/base/core.o CPP arch/powerpc/kernel/systbl_chk.i CC mm/maccess.o CC fs/stat.o CC fs/exec.o CC arch/powerpc/kernel/idle.o LD drivers/block/built-in.o CC fs/pipe.o LD drivers/bus/built-in.o CC mm/page_alloc.o CC mm/page-writeback.o CC mm/readahead.o CC arch/powerpc/kernel/signal.o CC mm/swap.o CC mm/truncate.o CC arch/powerpc/kernel/sysfs.o LD drivers/cdrom/built-in.o CC drivers/base/bus.o LD net/built-in.o CC drivers/base/dd.o CC drivers/base/syscore.o CC fs/namei.o CC drivers/base/driver.o CC kernel/sys.o CC arch/powerpc/kernel/cacheinfo.o CC fs/fcntl.o CC drivers/char/mem.o CC fs/ioctl.o CC mm/vmscan.o CC drivers/base/class.o CC drivers/base/platform.o CC arch/powerpc/kernel/time.o CC drivers/char/random.o CC fs/readdir.o CC arch/powerpc/kernel/prom.o CC lib/lockref.o CC lib/bcd.o CC lib/div64.o CC kernel/kmod.o CC lib/sort.o CC drivers/base/cpu.o CC drivers/base/firmware.o CC mm/shmem.o CC lib/parser.o CC drivers/char/misc.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/udbg.o CC drivers/base/init.o CC lib/debug_locks.o CC kernel/workqueue.o LD drivers/char/agp/built-in.o LD drivers/char/built-in.o CC lib/random32.o CC kernel/pid.o AS arch/powerpc/kernel/misc.o LD virt/lib/built-in.o LD virt/built-in.o CC mm/util.o CC mm/mmzone.o CC drivers/base/map.o CC mm/vmstat.o CC lib/bust_spinlocks.o CC fs/select.o CC fs/dcache.o CC fs/inode.o CC drivers/base/devres.o CC arch/powerpc/kernel/io.o CC arch/powerpc/kernel/dma.o CC lib/kasprintf.o CC mm/backing-dev.o CC mm/mm_init.o LD drivers/char/ipmi/built-in.o CC lib/bitmap.o CC lib/scatterlist.o CC drivers/base/attribute_container.o AS arch/powerpc/kernel/misc_32.o CC arch/powerpc/kernel/of_platform.o CC lib/gcd.o CC drivers/base/transport_class.o CC kernel/task_work.o CC mm/mmu_context.o CC lib/lcm.o LD drivers/clk/bcm/built-in.o LD drivers/clk/mvebu/built-in.o LD drivers/clk/ti/built-in.o CC drivers/base/topology.o CC lib/list_sort.o LD drivers/clk/built-in.o CC mm/percpu.o LD drivers/clocksource/built-in.o LD drivers/firewire/built-in.o CC mm/slab_common.o CC arch/powerpc/kernel/prom_parse.o LD drivers/firmware/broadcom/built-in.o LD drivers/firmware/meson/built-in.o LD drivers/firmware/tegra/built-in.o LD drivers/firmware/built-in.o CC lib/uuid.o CC fs/attr.o CC fs/bad_inode.o CC lib/flex_array.o LDS arch/powerpc/kernel/vdso32/vdso32.lds VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o CC kernel/extable.o VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o CC drivers/base/container.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o VDSO32A arch/powerpc/kernel/vdso32/note.o VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o LD arch/powerpc/kernel/vdso32/built-in.o CC drivers/base/property.o AS arch/powerpc/kernel/idle_6xx.o CC fs/file.o CC fs/filesystems.o CC lib/iov_iter.o AS arch/powerpc/kernel/l2cr_6xx.o LD drivers/gpu/drm/bridge/built-in.o LD drivers/gpu/drm/hisilicon/built-in.o CC mm/compaction.o AS arch/powerpc/kernel/cpu_setup_6xx.o LD drivers/gpu/drm/i2c/built-in.o AS arch/powerpc/kernel/entry_32.o LD drivers/gpu/drm/omapdrm/displays/built-in.o LD drivers/gpu/drm/omapdrm/dss/built-in.o LD drivers/gpu/drm/omapdrm/built-in.o CC arch/powerpc/kernel/setup_32.o LD drivers/gpu/drm/panel/built-in.o LD drivers/gpu/drm/tilcdc/built-in.o LD drivers/gpu/drm/built-in.o LD drivers/gpu/vga/built-in.o LD drivers/gpu/built-in.o CC lib/clz_ctz.o CC lib/bsearch.o CC arch/powerpc/kernel/pci_32.o CC kernel/params.o CC arch/powerpc/kernel/pci-common.o CC fs/namespace.o CC mm/vmacache.o CC kernel/kthread.o CC kernel/sys_ni.o CC kernel/nsproxy.o CC kernel/notifier.o CC mm/swap_slots.o CC kernel/ksysfs.o CC fs/seq_file.o CC drivers/base/cacheinfo.o CC lib/find_bit.o CC mm/interval_tree.o CC lib/llist.o LD drivers/hwtracing/intel_th/built-in.o CC lib/memweight.o CC arch/powerpc/kernel/pci_of_scan.o CC kernel/cred.o LD drivers/i2c/algos/built-in.o LD drivers/idle/built-in.o CC lib/kfifo.o LD drivers/i2c/busses/built-in.o LD drivers/i2c/muxes/built-in.o LD drivers/i2c/built-in.o CC lib/percpu-refcount.o CC arch/powerpc/kernel/iomap.o LD drivers/base/power/built-in.o LD drivers/base/test/built-in.o CC drivers/base/dma-mapping.o CC kernel/reboot.o CC kernel/async.o CC lib/percpu_ida.o CC mm/list_lru.o CC kernel/range.o CC fs/xattr.o CC drivers/irqchip/irqchip.o AS arch/powerpc/kernel/head_32.o CC fs/libfs.o LDS arch/powerpc/kernel/vmlinux.lds CC lib/rhashtable.o AS arch/powerpc/kernel/fpu.o CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh AS arch/powerpc/kernel/systbl.o LD drivers/base/built-in.o LD drivers/lguest/built-in.o LD arch/powerpc/kernel/built-in.o LD drivers/macintosh/built-in.o CC lib/reciprocal_div.o CC lib/once.o LD drivers/irqchip/built-in.o CC kernel/smpboot.o LD drivers/media/common/b2c2/built-in.o LD drivers/media/common/saa7146/built-in.o LD drivers/mfd/built-in.o LD drivers/media/common/siano/built-in.o CC mm/workingset.o CC lib/refcount.o CC mm/debug.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/media/common/built-in.o LD drivers/media/firewire/built-in.o LD drivers/media/i2c/soc_camera/built-in.o LD drivers/media/i2c/built-in.o LD drivers/media/mmc/siano/built-in.o LD drivers/media/mmc/built-in.o CC lib/string_helpers.o CC fs/fs-writeback.o CC fs/pnode.o LD drivers/media/pci/b2c2/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD drivers/media/pci/dm1105/built-in.o LD drivers/media/pci/mantis/built-in.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/pci/ngene/built-in.o LD drivers/media/pci/pluto2/built-in.o LD drivers/media/pci/pt1/built-in.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/pci/saa7146/built-in.o LD drivers/media/pci/smipcie/built-in.o LD drivers/media/pci/ttpci/built-in.o CC kernel/ucount.o LD drivers/media/pci/built-in.o LD drivers/media/platform/omap/built-in.o LD drivers/media/platform/built-in.o LD drivers/media/rc/keymaps/built-in.o LD drivers/media/rc/built-in.o LD drivers/media/spi/built-in.o LD drivers/media/tuners/built-in.o CC mm/gup.o CC lib/hexdump.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o CC lib/kstrtox.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/siano/built-in.o LD drivers/media/usb/stkwebcam/built-in.o LD drivers/media/usb/ttusb-budget/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o CC kernel/irq/irqdesc.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/media/usb/built-in.o LD kernel/livepatch/built-in.o LD drivers/media/built-in.o LD drivers/misc/cb710/built-in.o CC kernel/locking/mutex.o CC kernel/power/qos.o LD drivers/misc/eeprom/built-in.o CC kernel/locking/semaphore.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/misc/mic/bus/built-in.o LD drivers/misc/mic/built-in.o LD drivers/misc/ti-st/built-in.o LD drivers/misc/built-in.o LD drivers/mmc/built-in.o LD drivers/net/built-in.o CC lib/pci_iomap.o LD drivers/nfc/built-in.o CC kernel/irq/handle.o LD drivers/nvme/host/built-in.o LD drivers/nvme/target/built-in.o LD drivers/nvme/built-in.o CC drivers/of/base.o CC mm/highmem.o CC drivers/pci/access.o CC kernel/irq/manage.o LD drivers/pci/dwc/built-in.o CC fs/splice.o LD drivers/platform/built-in.o CC lib/iomap_copy.o CC kernel/locking/rwsem.o CC drivers/of/device.o CC fs/sync.o LD kernel/power/built-in.o CC fs/utimes.o CC lib/devres.o CC mm/memory.o CC kernel/locking/percpu-rwsem.o CC kernel/locking/rwsem-xadd.o CC mm/mincore.o LD drivers/power/built-in.o CC kernel/printk/printk.o CC kernel/rcu/update.o CC drivers/of/platform.o CC kernel/irq/spurious.o CC lib/hweight.o CC drivers/pci/bus.o CC lib/bitrev.o LD kernel/locking/built-in.o CC drivers/pci/probe.o CC kernel/rcu/sync.o HOSTCC lib/gen_crc32table CC fs/stack.o CC kernel/irq/resend.o CC kernel/rcu/tiny.o CC lib/syscall.o /home/kisskb/slave/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /home/kisskb/slave/src/kernel/printk/printk.c:186:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] CC drivers/of/fdt.o CC kernel/irq/chip.o CC fs/fs_struct.o CC drivers/of/fdt_address.o LD kernel/printk/built-in.o LD drivers/ptp/built-in.o CC kernel/irq/dummychip.o CC kernel/sched/core.o CC lib/atomic64.o CC drivers/pci/host-bridge.o LD kernel/rcu/built-in.o CC drivers/pci/remove.o CC fs/statfs.o CC drivers/pci/pci.o CC lib/strncpy_from_user.o CC kernel/irq/devres.o CC lib/strnlen_user.o CC mm/mlock.o CC drivers/of/address.o CC kernel/irq/irqdomain.o CC drivers/pci/pci-driver.o CC lib/argv_split.o CC drivers/pci/search.o CC mm/mmap.o CC fs/fs_pin.o CC lib/chacha20.o CC fs/nsfs.o CC lib/cmdline.o LD kernel/irq/built-in.o CC lib/ctype.o CC lib/dec_and_lock.o CC mm/mprotect.o CC mm/mremap.o CC mm/msync.o CC lib/decompress.o CC fs/no-block.o CC lib/dump_stack.o CC drivers/of/irq.o CC drivers/of/of_pci.o CC lib/earlycpio.o LD fs/devpts/built-in.o LD fs/exofs/built-in.o LD fs/notify/dnotify/built-in.o LD fs/notify/fanotify/built-in.o LD fs/notify/inotify/built-in.o CC lib/extable.o LD fs/notify/built-in.o CC kernel/sched/loadavg.o LD fs/quota/built-in.o CC fs/ramfs/inode.o CC drivers/of/of_pci_irq.o CC drivers/of/of_reserved_mem.o CC lib/fdt.o CC lib/fdt_empty_tree.o CC drivers/pci/pci-sysfs.o CC drivers/pci/rom.o CC kernel/sched/clock.o CC lib/fdt_ro.o CC drivers/pci/setup-res.o CC kernel/sched/cputime.o CC fs/ramfs/file-mmu.o LD drivers/pwm/built-in.o LD drivers/of/built-in.o CC mm/page_vma_mapped.o CC mm/pagewalk.o CC mm/pgtable-generic.o CC lib/fdt_rw.o CC drivers/pci/irq.o CC drivers/pci/vpd.o LD fs/ramfs/ramfs.o LD fs/ramfs/built-in.o CC fs/binfmt_elf.o CC lib/fdt_strerror.o CC drivers/pci/setup-bus.o CC lib/fdt_sw.o CC kernel/sched/idle_task.o CC kernel/sched/fair.o CC drivers/pci/vc.o CC lib/fdt_wip.o CC mm/rmap.o CC drivers/pci/syscall.o CC drivers/pci/of.o CC lib/flex_proportions.o CC kernel/time/time.o CC kernel/time/timer.o CC lib/idr.o CC kernel/time/hrtimer.o CC kernel/sched/rt.o LD fs/built-in.o CC kernel/sched/deadline.o LD drivers/pci/host/built-in.o CC kernel/sched/stop_task.o CC lib/int_sqrt.o CC lib/ioremap.o CC lib/irq_regs.o CC lib/is_single_threaded.o CC mm/vmalloc.o CC kernel/dma.o LD drivers/pci/built-in.o CC kernel/time/timekeeping.o LD drivers/soc/bcm/built-in.o LD drivers/soc/fsl/built-in.o LD drivers/soc/built-in.o CC lib/klist.o LD drivers/tty/ipwireless/built-in.o LD drivers/tty/serial/built-in.o CC kernel/sched/wait.o LD drivers/tty/vt/built-in.o LD drivers/tty/built-in.o CC kernel/sched/swait.o CC lib/kobject.o LD drivers/usb/host/built-in.o LD drivers/usb/built-in.o LD drivers/video/backlight/built-in.o CC lib/kobject_uevent.o LD drivers/video/fbdev/core/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD drivers/video/fbdev/omap2/omapfb/built-in.o LD drivers/video/fbdev/omap2/built-in.o LD drivers/video/fbdev/built-in.o LD drivers/video/built-in.o CC mm/init-mm.o LD drivers/built-in.o CC kernel/up.o CC kernel/elfcore.o CC kernel/time/ntp.o CC kernel/time/clocksource.o CC kernel/time/jiffies.o CC kernel/time/timer_list.o CC kernel/time/timeconv.o CC kernel/sched/completion.o CC kernel/time/timecounter.o CC kernel/time/alarmtimer.o CC lib/md5.o CC kernel/time/posix-stubs.o CC kernel/time/clockevents.o CC kernel/sched/idle.o CC lib/nmi_backtrace.o CC kernel/memremap.o CC kernel/time/tick-common.o CC lib/nodemask.o CC mm/nobootmem.o CC mm/memblock.o CC lib/plist.o CC lib/radix-tree.o CC mm/dmapool.o CC mm/slub.o CC lib/ratelimit.o CC lib/rbtree.o LD kernel/sched/built-in.o CC lib/seq_buf.o CC lib/sha1.o CC lib/show_mem.o LD kernel/time/built-in.o LD kernel/built-in.o CC lib/siphash.o CC lib/string.o CC lib/timerqueue.o CC lib/vsprintf.o CC lib/win_minmax.o GEN lib/crc32table.h CC lib/crc32.o LD mm/built-in.o AR lib/lib.a EXPORTS lib/lib-ksyms.o LD lib/built-in.o GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o LD vmlinux.o MODPOST vmlinux.o LD vmlinux SORTEX vmlinux SYSMAP System.map /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-strip -s -R .comment vmlinux -o arch/powerpc/boot/vmlinux.strip make[1]: Leaving directory '/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc' Completed OK # rm -rf /home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc # Build took: 0:00:23.591308