mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
randstruct: Move seed generation into scripts/basic/
To enable Clang randstruct support, move the structure layout randomization seed generation out of scripts/gcc-plugins/ into scripts/basic/ so it happens early enough that it can be used by either compiler implementation. The gcc-plugin still builds its own header file, but now does so from the common "randstruct.seed" file. Cc: linux-hardening@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20220503205503.3054173-6-keescook@chromium.org
This commit is contained in:
@@ -1,12 +1,17 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
$(obj)/randomize_layout_plugin.so: $(objtree)/$(obj)/randomize_layout_seed.h
|
||||
quiet_cmd_create_randomize_layout_seed = GENSEED $@
|
||||
$(obj)/randomize_layout_plugin.so: $(obj)/randomize_layout_seed.h
|
||||
quiet_cmd_create_randomize_layout_seed = SEEDHDR $@
|
||||
cmd_create_randomize_layout_seed = \
|
||||
$(CONFIG_SHELL) $(srctree)/$(src)/gen-random-seed.sh $@ $(objtree)/include/generated/randomize_layout_hash.h
|
||||
$(objtree)/$(obj)/randomize_layout_seed.h: FORCE
|
||||
SEED=$$(cat $(filter-out FORCE,$^) </dev/null); \
|
||||
echo '/*' > $@; \
|
||||
echo ' * This file is automatically generated. Keep it private.' >> $@; \
|
||||
echo ' * Exposing this value will expose the layout of randomized structures.' >> $@; \
|
||||
echo ' */' >> $@; \
|
||||
echo "const char *randstruct_seed = \"$$SEED\";" >> $@
|
||||
$(obj)/randomize_layout_seed.h: $(objtree)/scripts/basic/randstruct.seed FORCE
|
||||
$(call if_changed,create_randomize_layout_seed)
|
||||
targets += randomize_layout_seed.h randomize_layout_hash.h
|
||||
targets += randomize_layout_seed.h
|
||||
|
||||
# Build rules for plugins
|
||||
#
|
||||
|
@@ -1,9 +0,0 @@
|
||||
#!/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'`
|
||||
echo "const char *randstruct_seed = \"$SEED\";" > "$1"
|
||||
HASH=`echo -n "$SEED" | sha256sum | cut -d" " -f1 | tr -d ' \n'`
|
||||
echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"
|
||||
fi
|
Reference in New Issue
Block a user