[Beignet] [PATCH] Avoid possible invalid pointer by vector interator.

Yang, Rong R rong.r.yang at intel.com
Wed Dec 28 10:26:46 UTC 2016


Pushed.

> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Song, Ruiling
> Sent: Wednesday, December 28, 2016 16:33
> To: yan.wang at linux.intel.com; beignet at lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH] Avoid possible invalid pointer by vector
> interator.
> 
> Looks good. Thanks for the fix.
> 
> - Ruiling
> 
> > -----Original Message-----
> > From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf
> > Of yan.wang at linux.intel.com
> > Sent: Wednesday, December 28, 2016 4:28 PM
> > To: beignet at lists.freedesktop.org
> > Cc: Yan Wang <yan.wang at linux.intel.com>
> > Subject: [Beignet] [PATCH] Avoid possible invalid pointer by vector
> interator.
> >
> > From: Yan Wang <yan.wang at linux.intel.com>
> >
> > "revisit" as vector containber will be pushed more elements in
> > findPointerEsacape() and cause previous interator to introduce
> > possible invalid pointer.
> > When compiling huge kernel like blender, it will cause random segment
> > fault crash.
> > [] operator will be more safe.
> >
> > Signed-off-by: Yan Wang <yan.wang at linux.intel.com>
> > ---
> >  backend/src/llvm/llvm_gen_backend.cpp | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/backend/src/llvm/llvm_gen_backend.cpp
> > b/backend/src/llvm/llvm_gen_backend.cpp
> > index 8c7a230..e3543ae 100644
> > --- a/backend/src/llvm/llvm_gen_backend.cpp
> > +++ b/backend/src/llvm/llvm_gen_backend.cpp
> > @@ -1437,8 +1437,8 @@ namespace gbe
> >        }
> >      }
> >      // storing/loading pointer would introduce revisit
> > -    for (std::vector<Value *>::iterator iter = revisit.begin(); iter !=
> revisit.end();
> > ++iter) {
> > -      findPointerEscape(*iter, mixedPtr, true, revisit);
> > +    for (size_t i = 0; i < revisit.size(); ++i) {
> > +      findPointerEscape(revisit[i], mixedPtr, true, revisit);
> >      }
> >
> >      // the second pass starts from mixed pointer
> > --
> > 2.7.4
> >
> > _______________________________________________
> > Beignet mailing list
> > Beignet at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/beignet
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list