From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752509AbdBUURH (ORCPT ); Tue, 21 Feb 2017 15:17:07 -0500 Received: from mail-pg0-f50.google.com ([74.125.83.50]:34109 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750992AbdBUUQ6 (ORCPT ); Tue, 21 Feb 2017 15:16:58 -0500 Date: Tue, 21 Feb 2017 12:16:56 -0800 From: Kees Cook To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, Emese Revfy Subject: [GIT PULL] gcc-plugins updates for v4.11-rc1 Message-ID: <20170221201656.GA52020@beast> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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