On Tue, Jul 25, 2017 at 8:50 PM, Kees Cook <keesc...@chromium.org> wrote: > + > +void fortify_read_overflow(const char *func) > { > - pr_emerg("detected buffer overflow in %s\n", name); > - BUG(); > + WARN(1, "detected read beyond size of object passed as 1st parameter > in %s\n", func); > }
Side note: have you actually checked the code generation of this all? In particular, do you have any reason to use the out-of-line functions? Our WARN() code isn't horrible, and isn't likely to be noticeably worse than your own explicit out-of-lining. And you'd get the "unlikely()" for free, so you'll possibly get smaller code that runs better too. And it would even *look* better. This: if (p_size < size) fortify_read_overflow(__func__); would become WARN(p_size < size, "kmemdup size overflow"); or something. Linus