stackleak: Register the 'stackleak_cleanup' pass before the '*free_cfg' pass
authorAlexander Popov <alex.popov@linux.com>
Thu, 6 Dec 2018 15:13:07 +0000 (18:13 +0300)
committerKees Cook <keescook@chromium.org>
Thu, 6 Dec 2018 17:10:23 +0000 (09:10 -0800)
commit8fb2dfb228df785bbeb4d055a74402ef4b07fc25
treef059127218ca9008224b9fd884c3e01438328885
parente9c7d656610e3fff7c96b199d418add2528aea6e
stackleak: Register the 'stackleak_cleanup' pass before the '*free_cfg' pass

Currently the 'stackleak_cleanup' pass deleting a CALL insn is executed
after the 'reload' pass. That allows gcc to do some weird optimization in
function prologues and epilogues, which are generated later [1].

Let's avoid that by registering the 'stackleak_cleanup' pass before
the '*free_cfg' pass. It's the moment when the stack frame size is
already final, function prologues and epilogues are generated, and the
machine-dependent code transformations are not done.

[1] https://www.openwall.com/lists/kernel-hardening/2018/11/23/2

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Alexander Popov <alex.popov@linux.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
scripts/gcc-plugins/stackleak_plugin.c