|
Message-ID: <20190626154237.GZ17798@dhcp22.suse.cz> Date: Wed, 26 Jun 2019 17:42:37 +0200 From: Michal Hocko <mhocko@...nel.org> To: Alexander Potapenko <glider@...gle.com> Cc: Andrew Morton <akpm@...ux-foundation.org>, Christoph Lameter <cl@...ux.com>, Kees Cook <keescook@...omium.org>, Masahiro Yamada <yamada.masahiro@...ionext.com>, James Morris <jmorris@...ei.org>, "Serge E. Hallyn" <serge@...lyn.com>, Nick Desaulniers <ndesaulniers@...gle.com>, Kostya Serebryany <kcc@...gle.com>, Dmitry Vyukov <dvyukov@...gle.com>, Sandeep Patil <sspatil@...roid.com>, Laura Abbott <labbott@...hat.com>, Randy Dunlap <rdunlap@...radead.org>, Jann Horn <jannh@...gle.com>, Mark Rutland <mark.rutland@....com>, Marco Elver <elver@...gle.com>, Qian Cai <cai@....pw>, Linux Memory Management List <linux-mm@...ck.org>, linux-security-module <linux-security-module@...r.kernel.org>, Kernel Hardening <kernel-hardening@...ts.openwall.com> Subject: Re: [PATCH v8 1/2] mm: security: introduce init_on_alloc=1 and init_on_free=1 boot options On Wed 26-06-19 17:00:43, Alexander Potapenko wrote: > On Wed, Jun 26, 2019 at 4:49 PM Michal Hocko <mhocko@...nel.org> wrote: [...] > > > @@ -1142,6 +1200,8 @@ static __always_inline bool free_pages_prepare(struct page *page, > > > } > > > arch_free_page(page, order); > > > kernel_poison_pages(page, 1 << order, 0); > > > + if (want_init_on_free()) > > > + kernel_init_free_pages(page, 1 << order); > > > > same here. If you don't want to make this exclusive then you have to > > zero before poisoning otherwise you are going to blow up on the poison > > check, right? > Note that we disable initialization if page poisoning is on. Ohh, right. Missed that in the init code. > As I mentioned on another thread we can eventually merge this code > with page poisoning, but right now it's better to make the user decide > which of the features they want instead of letting them guess how the > combination of the two is going to work. Strictly speaking zeroying is a subset of poisoning. If somebody asks for both the poisoning surely satisfies any data leak guarantees zeroying would give. So I am not sure we have to really make them exclusive wrt. to the configuraion. I will leave that to you but it would be better if the code didn't break subtly once the early init restriction is removed for one way or another. So either always make sure that zeroying is done _before_ poisoning or that you do not zero when poisoning. The later sounds the best wrt. the code quality from my POV. -- Michal Hocko SUSE Labs
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.