Merge branch 'linus' into x86/asm, to pick up fixes and resolve conflicts
Conflicts: arch/x86/kernel/cpu/Makefile Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
PARAM="-npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1"
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
###
|
||||
# scripts contains sources for various helper programs used throughout
|
||||
# the kernel for the build process.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# include/asm-generic contains a lot of files that are used
|
||||
# verbatim by several architectures.
|
||||
#
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Building
|
||||
# ==========================================================================
|
||||
@@ -419,7 +420,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(always)
|
||||
# Linker scripts preprocessor (.lds.S -> .lds)
|
||||
# ---------------------------------------------------------------------------
|
||||
quiet_cmd_cpp_lds_S = LDS $@
|
||||
cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -C -U$(ARCH) \
|
||||
cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -U$(ARCH) \
|
||||
-D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $<
|
||||
|
||||
$(obj)/%.lds: $(src)/%.lds.S FORCE
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Cleaning up
|
||||
# ==========================================================================
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Installing dtb files
|
||||
#
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
#
|
||||
# make W=... settings
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
ifdef CONFIG_GCC_PLUGINS
|
||||
__PLUGINCC := $(call cc-ifversion, -ge, 0408, $(HOSTCXX), $(HOSTCC))
|
||||
PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(__PLUGINCC)" "$(HOSTCXX)" "$(CC)")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Installing headers
|
||||
#
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Building binaries on the host system
|
||||
# Binaries are used during the compilation of the kernel, for example
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
ifdef CONFIG_KASAN
|
||||
ifdef CONFIG_KASAN_INLINE
|
||||
call_threshold := 10000
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Backward compatibility
|
||||
asflags-y += $(EXTRA_AFLAGS)
|
||||
ccflags-y += $(EXTRA_CFLAGS)
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Generating modules.builtin
|
||||
# ==========================================================================
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Installing modules
|
||||
# ==========================================================================
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ===========================================================================
|
||||
# Module versions
|
||||
# ===========================================================================
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ==========================================================================
|
||||
# Signing modules
|
||||
# ==========================================================================
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
ifdef CONFIG_UBSAN
|
||||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=shift)
|
||||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero)
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
cd Documentation/
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#! /bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# (c) 2015, Quentin Casasnovas <quentin.casasnovas@oracle.com>
|
||||
|
||||
obj=$1
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# checkincludes: find/remove files included more than once
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# Check the stack usage of functions
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Check if current architecture are missing any function calls compared
|
||||
# to i386.
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#! /usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# checkversion find uses of LINUX_VERSION_CODE or KERNEL_VERSION
|
||||
# without including <linux/version.h>, or cases of
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Clean a text file -- or directory of text files -- of stealth whitespace.
|
||||
# WARNING: this can be a highly destructive operation. Use with caution.
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Clean a patch file -- or directory of patch files -- of stealth whitespace.
|
||||
# WARNING: this can be a highly destructive operation. Use with caution.
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Linux kernel coccicheck
|
||||
#
|
||||
# Read Documentation/dev-tools/coccinelle.rst
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/// Make sure calls to d_find_alias() have a corresponding call to dput().
|
||||
//
|
||||
// Keywords: d_find_alias, dput
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/// Use DEFINE_DEBUGFS_ATTRIBUTE rather than DEFINE_SIMPLE_ATTRIBUTE
|
||||
/// for debugfs files.
|
||||
///
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
///
|
||||
/// Use drm_*_get() and drm_*_put() helpers instead of drm_*_reference() and
|
||||
/// drm_*_unreference() helpers.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/// Remove an open coded simple_open() function
|
||||
/// and replace file operations references to the function
|
||||
/// with simple_open() instead.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
///
|
||||
/// Use vma_pages function on vma object instead of explicit computation.
|
||||
///
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/// Return statements in functions returning bool should use
|
||||
/// true/false instead of 1/0.
|
||||
//
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/// Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests")
|
||||
/// threaded IRQs without a primary handler need to be requested with
|
||||
/// IRQF_ONESHOT, otherwise the request will fail.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/// Make sure (of/i2c/platform)_device_id tables are NULL terminated
|
||||
//
|
||||
// Keywords: of_table i2c_table platform_table
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Manipulate options in a .config file from the command line
|
||||
|
||||
myname=${0##*/}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# (c) 2014, Sasha Levin <sasha.levin@oracle.com>
|
||||
#set -x
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Disassemble the Code: line in Linux oopses
|
||||
# usage: decodecode < oops.file
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# A depmod wrapper used by the toplevel Makefile
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/python
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# diffconfig - a tool to compare .config files.
|
||||
#
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# scripts/dtc makefile
|
||||
|
||||
hostprogs-y := dtc
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* fdtdump.c - Contributed by Pantelis Antoniou <pantelis.antoniou AT gmail.com>
|
||||
*/
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Simple script to update the version of DTC carried by the Linux kernel
|
||||
#
|
||||
# This script assumes that the dtc and the linux git trees are in the
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# extract-mod-sig <part> <module-file>
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
use warnings;
|
||||
use strict;
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Translate stack dump function offsets.
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Test for gcc 'asm goto' support
|
||||
# Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# run gcc with ld options
|
||||
# used as a wrapper to execute link time optimizations
|
||||
# yes virginia, this is not pretty
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
srctree=$(dirname "$0")
|
||||
|
||||
SHOW_ERROR=
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
GCC_PLUGINS_DIR := $(shell $(CC) -print-file-name=plugin)
|
||||
|
||||
ifeq ($(PLUGINCC),$(HOSTCC))
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef GCC_COMMON_H_INCLUDED
|
||||
#define GCC_COMMON_H_INCLUDED
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Generator for GIMPLE pass related boilerplate code/data
|
||||
*
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Generator for IPA pass related boilerplate code/data
|
||||
*
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Generator for RTL pass related boilerplate code/data
|
||||
*
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Generator for SIMPLE_IPA pass related boilerplate code/data
|
||||
*
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
if [ ! -f "$1" ]; then
|
||||
SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# gcc-version [-p] gcc-command
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs"
|
||||
if [ "$?" -eq "0" ] ; then
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -mcmodel=kernel -fno-PIE -fstack-protector - -o - 2> /dev/null | grep -q "%gs"
|
||||
if [ "$?" -eq "0" ] ; then
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
always := gdb-scripts
|
||||
|
||||
SRCTREE := $(abspath $(srctree))
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
hostprogs-y := genksyms
|
||||
always := $(hostprogs-y)
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#! /usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Detect cycles in the header file dependency graph
|
||||
# Vegard Nossum <vegardno@ifi.uio.no>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Run headers_$1 command for all suitable architectures
|
||||
|
||||
# Stop on error
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# headers_check.pl execute a number of trivial consistency checks
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
if [ $# -lt 2 ]
|
||||
then
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ===========================================================================
|
||||
# Kernel configuration targets
|
||||
# These targets are used from top-level makefile
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Needed for systems without gettext
|
||||
$* -x c -o /dev/null - > /dev/null 2>&1 << EOF
|
||||
#include <libintl.h>
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef LIST_H
|
||||
#define LIST_H
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#include <stdarg.h>
|
||||
|
||||
/* confdata.c */
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Check ncurses compatibility
|
||||
|
||||
# What library to link
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/awk -f
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# extract linker version number from stdin and turn into single number
|
||||
{
|
||||
gsub(".*\\)", "");
|
||||
|
305
scripts/leaking_addresses.pl
Executable file
305
scripts/leaking_addresses.pl
Executable file
@@ -0,0 +1,305 @@
|
||||
#!/usr/bin/env perl
|
||||
#
|
||||
# (c) 2017 Tobin C. Harding <me@tobin.cc>
|
||||
# Licensed under the terms of the GNU GPL License version 2
|
||||
#
|
||||
# leaking_addresses.pl: Scan 64 bit kernel for potential leaking addresses.
|
||||
# - Scans dmesg output.
|
||||
# - Walks directory tree and parses each file (for each directory in @DIRS).
|
||||
#
|
||||
# You can configure the behaviour of the script;
|
||||
#
|
||||
# - By adding paths, for directories you do not want to walk;
|
||||
# absolute paths: @skip_walk_dirs_abs
|
||||
# directory names: @skip_walk_dirs_any
|
||||
#
|
||||
# - By adding paths, for files you do not want to parse;
|
||||
# absolute paths: @skip_parse_files_abs
|
||||
# file names: @skip_parse_files_any
|
||||
#
|
||||
# The use of @skip_xxx_xxx_any causes files to be skipped where ever they occur.
|
||||
# For example adding 'fd' to @skip_walk_dirs_any causes the fd/ directory to be
|
||||
# skipped for all PID sub-directories of /proc
|
||||
#
|
||||
# The same thing can be achieved by passing command line options to --dont-walk
|
||||
# and --dont-parse. If absolute paths are supplied to these options they are
|
||||
# appended to the @skip_xxx_xxx_abs arrays. If file names are supplied to these
|
||||
# options, they are appended to the @skip_xxx_xxx_any arrays.
|
||||
#
|
||||
# Use --debug to output path before parsing, this is useful to find files that
|
||||
# cause the script to choke.
|
||||
#
|
||||
# You may like to set kptr_restrict=2 before running script
|
||||
# (see Documentation/sysctl/kernel.txt).
|
||||
|
||||
use warnings;
|
||||
use strict;
|
||||
use POSIX;
|
||||
use File::Basename;
|
||||
use File::Spec;
|
||||
use Cwd 'abs_path';
|
||||
use Term::ANSIColor qw(:constants);
|
||||
use Getopt::Long qw(:config no_auto_abbrev);
|
||||
|
||||
my $P = $0;
|
||||
my $V = '0.01';
|
||||
|
||||
# Directories to scan.
|
||||
my @DIRS = ('/proc', '/sys');
|
||||
|
||||
# Command line options.
|
||||
my $help = 0;
|
||||
my $debug = 0;
|
||||
my @dont_walk = ();
|
||||
my @dont_parse = ();
|
||||
|
||||
# Do not parse these files (absolute path).
|
||||
my @skip_parse_files_abs = ('/proc/kmsg',
|
||||
'/proc/kcore',
|
||||
'/proc/fs/ext4/sdb1/mb_groups',
|
||||
'/proc/1/fd/3',
|
||||
'/sys/kernel/debug/tracing/trace_pipe',
|
||||
'/sys/kernel/security/apparmor/revision');
|
||||
|
||||
# Do not parse thes files under any subdirectory.
|
||||
my @skip_parse_files_any = ('0',
|
||||
'1',
|
||||
'2',
|
||||
'pagemap',
|
||||
'events',
|
||||
'access',
|
||||
'registers',
|
||||
'snapshot_raw',
|
||||
'trace_pipe_raw',
|
||||
'ptmx',
|
||||
'trace_pipe');
|
||||
|
||||
# Do not walk these directories (absolute path).
|
||||
my @skip_walk_dirs_abs = ();
|
||||
|
||||
# Do not walk these directories under any subdirectory.
|
||||
my @skip_walk_dirs_any = ('self',
|
||||
'thread-self',
|
||||
'cwd',
|
||||
'fd',
|
||||
'stderr',
|
||||
'stdin',
|
||||
'stdout');
|
||||
|
||||
sub help
|
||||
{
|
||||
my ($exitcode) = @_;
|
||||
|
||||
print << "EOM";
|
||||
Usage: $P [OPTIONS]
|
||||
Version: $V
|
||||
|
||||
Options:
|
||||
|
||||
--dont-walk=<dir> Don't walk tree starting at <dir>.
|
||||
--dont-parse=<file> Don't parse <file>.
|
||||
-d, --debug Display debugging output.
|
||||
-h, --help, --version Display this help and exit.
|
||||
|
||||
If an absolute path is passed to --dont_XXX then this path is skipped. If a
|
||||
single filename is passed then this file/directory will be skipped when
|
||||
appearing under any subdirectory.
|
||||
|
||||
Example:
|
||||
|
||||
# Just scan dmesg output.
|
||||
scripts/leaking_addresses.pl --dont_walk_abs /proc --dont_walk_abs /sys
|
||||
|
||||
Scans the running (64 bit) kernel for potential leaking addresses.
|
||||
|
||||
EOM
|
||||
exit($exitcode);
|
||||
}
|
||||
|
||||
GetOptions(
|
||||
'dont-walk=s' => \@dont_walk,
|
||||
'dont-parse=s' => \@dont_parse,
|
||||
'd|debug' => \$debug,
|
||||
'h|help' => \$help,
|
||||
'version' => \$help
|
||||
) or help(1);
|
||||
|
||||
help(0) if ($help);
|
||||
|
||||
push_to_global();
|
||||
|
||||
parse_dmesg();
|
||||
walk(@DIRS);
|
||||
|
||||
exit 0;
|
||||
|
||||
sub debug_arrays
|
||||
{
|
||||
print 'dirs_any: ' . join(", ", @skip_walk_dirs_any) . "\n";
|
||||
print 'dirs_abs: ' . join(", ", @skip_walk_dirs_abs) . "\n";
|
||||
print 'parse_any: ' . join(", ", @skip_parse_files_any) . "\n";
|
||||
print 'parse_abs: ' . join(", ", @skip_parse_files_abs) . "\n";
|
||||
}
|
||||
|
||||
sub dprint
|
||||
{
|
||||
printf(STDERR @_) if $debug;
|
||||
}
|
||||
|
||||
sub push_in_abs_any
|
||||
{
|
||||
my ($in, $abs, $any) = @_;
|
||||
|
||||
foreach my $path (@$in) {
|
||||
if (File::Spec->file_name_is_absolute($path)) {
|
||||
push @$abs, $path;
|
||||
} elsif (index($path,'/') == -1) {
|
||||
push @$any, $path;
|
||||
} else {
|
||||
print 'path error: ' . $path;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Push command line options to global arrays.
|
||||
sub push_to_global
|
||||
{
|
||||
push_in_abs_any(\@dont_walk, \@skip_walk_dirs_abs, \@skip_walk_dirs_any);
|
||||
push_in_abs_any(\@dont_parse, \@skip_parse_files_abs, \@skip_parse_files_any);
|
||||
}
|
||||
|
||||
sub is_false_positive
|
||||
{
|
||||
my ($match) = @_;
|
||||
|
||||
if ($match =~ '\b(0x)?(f|F){16}\b' or
|
||||
$match =~ '\b(0x)?0{16}\b') {
|
||||
return 1;
|
||||
}
|
||||
|
||||
# vsyscall memory region, we should probably check against a range here.
|
||||
if ($match =~ '\bf{10}600000\b' or
|
||||
$match =~ '\bf{10}601000\b') {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
# True if argument potentially contains a kernel address.
|
||||
sub may_leak_address
|
||||
{
|
||||
my ($line) = @_;
|
||||
my $address = '\b(0x)?ffff[[:xdigit:]]{12}\b';
|
||||
|
||||
# Signal masks.
|
||||
if ($line =~ '^SigBlk:' or
|
||||
$line =~ '^SigCgt:') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ($line =~ '\bKEY=[[:xdigit:]]{14} [[:xdigit:]]{16} [[:xdigit:]]{16}\b' or
|
||||
$line =~ '\b[[:xdigit:]]{14} [[:xdigit:]]{16} [[:xdigit:]]{16}\b') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (/($address)/g) {
|
||||
if (!is_false_positive($1)) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub parse_dmesg
|
||||
{
|
||||
open my $cmd, '-|', 'dmesg';
|
||||
while (<$cmd>) {
|
||||
if (may_leak_address($_)) {
|
||||
print 'dmesg: ' . $_;
|
||||
}
|
||||
}
|
||||
close $cmd;
|
||||
}
|
||||
|
||||
# True if we should skip this path.
|
||||
sub skip
|
||||
{
|
||||
my ($path, $paths_abs, $paths_any) = @_;
|
||||
|
||||
foreach (@$paths_abs) {
|
||||
return 1 if (/^$path$/);
|
||||
}
|
||||
|
||||
my($filename, $dirs, $suffix) = fileparse($path);
|
||||
foreach (@$paths_any) {
|
||||
return 1 if (/^$filename$/);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub skip_parse
|
||||
{
|
||||
my ($path) = @_;
|
||||
return skip($path, \@skip_parse_files_abs, \@skip_parse_files_any);
|
||||
}
|
||||
|
||||
sub parse_file
|
||||
{
|
||||
my ($file) = @_;
|
||||
|
||||
if (! -R $file) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (skip_parse($file)) {
|
||||
dprint "skipping file: $file\n";
|
||||
return;
|
||||
}
|
||||
dprint "parsing: $file\n";
|
||||
|
||||
open my $fh, "<", $file or return;
|
||||
while ( <$fh> ) {
|
||||
if (may_leak_address($_)) {
|
||||
print $file . ': ' . $_;
|
||||
}
|
||||
}
|
||||
close $fh;
|
||||
}
|
||||
|
||||
|
||||
# True if we should skip walking this directory.
|
||||
sub skip_walk
|
||||
{
|
||||
my ($path) = @_;
|
||||
return skip($path, \@skip_walk_dirs_abs, \@skip_walk_dirs_any)
|
||||
}
|
||||
|
||||
# Recursively walk directory tree.
|
||||
sub walk
|
||||
{
|
||||
my @dirs = @_;
|
||||
my %seen;
|
||||
|
||||
while (my $pwd = shift @dirs) {
|
||||
next if (skip_walk($pwd));
|
||||
next if (!opendir(DIR, $pwd));
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
|
||||
foreach my $file (@files) {
|
||||
next if ($file eq '.' or $file eq '..');
|
||||
|
||||
my $path = "$pwd/$file";
|
||||
next if (-l $path);
|
||||
|
||||
if (-d $path) {
|
||||
push @dirs, $path;
|
||||
} else {
|
||||
parse_file($path);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# link vmlinux
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# A script to dump mixed source code & assembly
|
||||
# with correct relocations from System.map
|
||||
# Requires the following lines in makefile:
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
TARGET=$1
|
||||
ARCH=$2
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Generates a small Makefile used in the root of the output
|
||||
# directory, to allow make to be started from there.
|
||||
# The Makefile also allow for more convinient build of external modules
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#
|
||||
# Build U-Boot image when `mkimage' tool is available.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
OBJECT_FILES_NON_STANDARD := y
|
||||
|
||||
hostprogs-y := modpost mk_elfconfig
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/kbuild.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#
|
||||
# buildtar 0.0.4
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/perl -w
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
use strict;
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#! /bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Script to apply kernel patches.
|
||||
# usage: patch-kernel [ sourcedir [ patchdir [ stopversion ] [ -acxx ] ] ]
|
||||
# The source directory defaults to /usr/src/linux, and the patch
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#
|
||||
# Takes a (sorted) output of readprofile and turns it into a list suitable for
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# because I use CONFIG_LOCALVERSION_AUTO, not the same version again and
|
||||
# again, /boot and /lib/modules/ eventually fill up.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
hostprogs-y := genheaders
|
||||
HOST_EXTRACFLAGS += \
|
||||
-I$(srctree)/include/uapi -I$(srctree)/include \
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* NOTE: we really do want to use the kernel headers here */
|
||||
#define __EXPORTED_HEADERS__
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
if [ `id -u` -ne 0 ]; then
|
||||
echo "$0: must be root to install the selinux policy"
|
||||
exit 1
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
hostprogs-y := mdp
|
||||
HOST_EXTRACFLAGS += \
|
||||
-I$(srctree)/include/uapi -I$(srctree)/include \
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# This scripts adds local version information from the version
|
||||
# control systems git, mercurial (hg) and subversion (svn).
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# Read two files produced by the stackusage script, and show the
|
||||
# delta between them.
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
outfile=""
|
||||
now=`date +%s`
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Here's how to use this:
|
||||
#
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/awk -f
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Before running this script please ensure that your PATH is
|
||||
# typical as you use for compilation/installation. I use
|
||||
# /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
out="$1"
|
||||
shift
|
||||
in="$@"
|
||||
|
Reference in New Issue
Block a user