[GIT PULL] gcc-plugins updates for v4.11-rc1

From: Kees Cook
Date: Tue Feb 21 2017 - 15:17:15 EST


Hi,

Please pull these gcc-plugins changes for v4.11-rc1. This includes two new
plugins for the upstream kernel: structleak and initify. The structleak
plugin performs forced initialization of certain structures to avoid
possible information exposures to userspace. The initify plugin performs
analysis to find functions and strings that can be marked as __init or
__exit to reduce the runtime size of the kernel.

Thanks!

-Kees

The following changes since commit a121103c922847ba5010819a3f250f1f7fc84ab8:

Linux 4.10-rc3 (2017-01-08 14:18:17 -0800)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git tags/gcc-plugins-v4.11-rc1

for you to fetch changes up to 5988b5db7be58878cbbf1f8251968c8b89327d21:

Merge commit 'v4.10-rc3^{}' into for-next/gcc-plugins (2017-02-16 16:32:34 -0800)

----------------------------------------------------------------
Updates to the gcc-plugins:
- infrastructure updates (gcc-common.h)
- introduce structleak plugin for forced initialization of some structures
- introduce initify plugin for optimized __init and __exit markings

----------------------------------------------------------------
Emese Revfy (4):
gcc-plugins: Add the initify gcc plugin
util: Move type casts into is_kernel_rodata
initify: Mark functions with the __nocapture attribute
initify: Mark functions with the __unverified_nocapture attribute

Kees Cook (5):
gcc-plugins: add PASS_INFO and build_const_char_string()
gcc-plugins: consolidate on PASS_INFO macro
gcc-plugins: Add structleak for more stack initialization
Merge branch 'for-next/gcc-plugin/structleak' into for-next/gcc-plugins
Merge commit 'v4.10-rc3^{}' into for-next/gcc-plugins

arch/Kconfig | 62 +
arch/arm/include/asm/string.h | 10 +-
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/string.h | 25 +-
arch/powerpc/include/asm/string.h | 19 +-
arch/x86/Kconfig | 1 +
arch/x86/include/asm/string_32.h | 25 +-
arch/x86/include/asm/string_64.h | 23 +-
arch/x86/kernel/hpet.c | 2 +-
arch/x86/lib/Makefile | 4 +
drivers/acpi/acpica/acutils.h | 2 +-
fs/char_dev.c | 2 +-
fs/ntfs/debug.h | 6 +-
fs/ocfs2/cluster/masklog.h | 2 +-
include/acpi/acpixf.h | 2 +-
include/asm-generic/asm-prototypes.h | 8 +-
include/asm-generic/bug.h | 7 +-
include/asm-generic/vmlinux.lds.h | 2 +
include/drm/drm_drv.h | 2 +-
include/linux/audit.h | 5 +-
include/linux/compiler-gcc.h | 22 +
include/linux/compiler.h | 14 +-
include/linux/fs.h | 8 +-
include/linux/printk.h | 2 +-
include/linux/ratelimit.h | 3 +-
include/linux/string.h | 75 +-
lib/string.c | 3 +-
lib/vsprintf.c | 6 +-
mm/kasan/kasan.c | 2 +
mm/util.c | 10 +-
scripts/Makefile.gcc-plugins | 18 +
scripts/gcc-plugins/cyc_complexity_plugin.c | 6 +-
scripts/gcc-plugins/gcc-common.h | 55 +-
scripts/gcc-plugins/initify_plugin.c | 1865 +++++++++++++++++++++++++++
scripts/gcc-plugins/latent_entropy_plugin.c | 8 +-
scripts/gcc-plugins/sancov_plugin.c | 8 +-
scripts/gcc-plugins/structleak_plugin.c | 246 ++++
security/integrity/integrity.h | 2 +-
38 files changed, 2416 insertions(+), 147 deletions(-)
create mode 100644 scripts/gcc-plugins/initify_plugin.c
create mode 100644 scripts/gcc-plugins/structleak_plugin.c

--
Kees Cook
Pixel Security