* [PATCH] mm/mempolicy: Avoid use uninitialized preferred_node [not found] <CAG_fn=VW5tfzT6cHJd+jF=t3WO6XS3HqSF_TYnKdycX_M_48vw@mail.gmail.com> @ 2018-03-09 5:21 ` Yisheng Xie 2018-03-09 10:49 ` Alexander Potapenko 0 siblings, 1 reply; 3+ messages in thread From: Yisheng Xie @ 2018-03-09 5:21 UTC (permalink / raw) To: Alexander Potapenko, akpm Cc: Linux Memory Management List, Dmitriy Vyukov, vbabka, mhocko, Linux Kernel Mailing List Alexander reported an use of uninitialized memory in __mpol_equal(), which is caused by incorrect use of preferred_node. When mempolicy in mode MPOL_PREFERRED with flags MPOL_F_LOCAL, it use numa_node_id() instead of preferred_node, however, __mpol_equeue() use preferred_node without check whether it is MPOL_F_LOCAL or not. Reported-by: Alexander Potapenko <glider@google.com> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com> --- mm/mempolicy.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index d879f1d..641545e 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2124,6 +2124,9 @@ bool __mpol_equal(struct mempolicy *a, struct mempolicy *b) case MPOL_INTERLEAVE: return !!nodes_equal(a->v.nodes, b->v.nodes); case MPOL_PREFERRED: + /* a's flags is the same as b's */ + if (a->flags & MPOL_F_LOCAL) + return true; return a->v.preferred_node == b->v.preferred_node; default: BUG(); -- 1.8.3.1 ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mm/mempolicy: Avoid use uninitialized preferred_node 2018-03-09 5:21 ` [PATCH] mm/mempolicy: Avoid use uninitialized preferred_node Yisheng Xie @ 2018-03-09 10:49 ` Alexander Potapenko 2018-03-09 11:10 ` Yisheng Xie 0 siblings, 1 reply; 3+ messages in thread From: Alexander Potapenko @ 2018-03-09 10:49 UTC (permalink / raw) To: Yisheng Xie Cc: Andrew Morton, Linux Memory Management List, Dmitriy Vyukov, Vlastimil Babka, mhocko, Linux Kernel Mailing List On Fri, Mar 9, 2018 at 6:21 AM, Yisheng Xie <xieyisheng1@huawei.com> wrote: > Alexander reported an use of uninitialized memory in __mpol_equal(), > which is caused by incorrect use of preferred_node. > > When mempolicy in mode MPOL_PREFERRED with flags MPOL_F_LOCAL, it use > numa_node_id() instead of preferred_node, however, __mpol_equeue() use > preferred_node without check whether it is MPOL_F_LOCAL or not. > > Reported-by: Alexander Potapenko <glider@google.com> > Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com> Tested-by: Alexander Potapenko <glider@google.com> I confirm that the patch fixes the problem. Thanks for the quick turnaround! Any idea which commit had introduced the bug in the first place? > --- > mm/mempolicy.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > index d879f1d..641545e 100644 > --- a/mm/mempolicy.c > +++ b/mm/mempolicy.c > @@ -2124,6 +2124,9 @@ bool __mpol_equal(struct mempolicy *a, struct mempolicy *b) > case MPOL_INTERLEAVE: > return !!nodes_equal(a->v.nodes, b->v.nodes); > case MPOL_PREFERRED: > + /* a's flags is the same as b's */ > + if (a->flags & MPOL_F_LOCAL) > + return true; > return a->v.preferred_node == b->v.preferred_node; > default: > BUG(); > -- > 1.8.3.1 > -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mm/mempolicy: Avoid use uninitialized preferred_node 2018-03-09 10:49 ` Alexander Potapenko @ 2018-03-09 11:10 ` Yisheng Xie 0 siblings, 0 replies; 3+ messages in thread From: Yisheng Xie @ 2018-03-09 11:10 UTC (permalink / raw) To: Alexander Potapenko Cc: Andrew Morton, Linux Memory Management List, Dmitriy Vyukov, Vlastimil Babka, mhocko, Linux Kernel Mailing List Hi Alexander , On 2018/3/9 18:49, Alexander Potapenko wrote: > On Fri, Mar 9, 2018 at 6:21 AM, Yisheng Xie <xieyisheng1@huawei.com> wrote: >> Alexander reported an use of uninitialized memory in __mpol_equal(), >> which is caused by incorrect use of preferred_node. >> >> When mempolicy in mode MPOL_PREFERRED with flags MPOL_F_LOCAL, it use >> numa_node_id() instead of preferred_node, however, __mpol_equeue() use >> preferred_node without check whether it is MPOL_F_LOCAL or not. >> >> Reported-by: Alexander Potapenko <glider@google.com> >> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com> > Tested-by: Alexander Potapenko <glider@google.com> Thanks, > > I confirm that the patch fixes the problem. Thanks for the quick turnaround! > Any idea which commit had introduced the bug in the first place? IIUC, It is introduce by: Fixes: fc36b8d3d819 (mempolicy: use MPOL_F_LOCAL to Indicate Preferred Local Policy) Thanks Yisheng >> --- >> mm/mempolicy.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/mm/mempolicy.c b/mm/mempolicy.c >> index d879f1d..641545e 100644 >> --- a/mm/mempolicy.c >> +++ b/mm/mempolicy.c >> @@ -2124,6 +2124,9 @@ bool __mpol_equal(struct mempolicy *a, struct mempolicy *b) >> case MPOL_INTERLEAVE: >> return !!nodes_equal(a->v.nodes, b->v.nodes); >> case MPOL_PREFERRED: >> + /* a's flags is the same as b's */ >> + if (a->flags & MPOL_F_LOCAL) >> + return true; >> return a->v.preferred_node == b->v.preferred_node; >> default: >> BUG(); >> -- >> 1.8.3.1 >> > > > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-03-09 11:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CAG_fn=VW5tfzT6cHJd+jF=t3WO6XS3HqSF_TYnKdycX_M_48vw@mail.gmail.com>
2018-03-09 5:21 ` [PATCH] mm/mempolicy: Avoid use uninitialized preferred_node Yisheng Xie
2018-03-09 10:49 ` Alexander Potapenko
2018-03-09 11:10 ` Yisheng Xie
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®