Snap for 10453563 from 8e9a212552c9096cfeccaacd65dea1d1bca88107 to mainline-extservices-release

Change-Id: I7357078442d70fb470b1abe65c71354e8349a871
diff --git a/OWNERS b/OWNERS
index 5e4e8cd..1f31354 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,5 +1,2 @@
-butlermichael@google.com
-dgross@google.com
-jeanluc@google.com
-miaowang@google.com
+include platform/frameworks/rs:/RS_OWNERS  # Bug component: 43047
 srhines@google.com
diff --git a/slang_rs_export_type.cpp b/slang_rs_export_type.cpp
index afeb6c5..ffe8ffc 100644
--- a/slang_rs_export_type.cpp
+++ b/slang_rs_export_type.cpp
@@ -333,6 +333,8 @@
         //
         // TODO(zonr/srhines): allow bit fields of size 8, 16, 32
         if (FD->isBitField()) {
+          // Context can be null from NormalizeType?
+          slangAssert(Context);
           Context->ReportError(
               FD->getLocation(),
               "bit fields are not able to be exported: '%0.%1'")
@@ -415,6 +417,8 @@
     case clang::Type::Enum: {
       // FIXME: We currently convert enums to integers, rather than reflecting
       // a more complete (and nicer type-safe Java version).
+      // Context can be null from NormalizeType?
+      slangAssert(Context);
       return Context->getASTContext().IntTy.getTypePtr();
     }
     default: {
@@ -797,6 +801,8 @@
       const clang::PointerType *P = static_cast<const clang::PointerType*>(CTI);
       const clang::Type *PT = GetPointeeType(P);
       llvm::StringRef PointeeName;
+      // Passing nullptr as Context to NormalizeType can cause TypeExportableHelper
+      // to dereference a null Context?
       if (NormalizeType(PT, PointeeName, nullptr, nullptr,
                         NotLegacyKernelArgument)) {
         char *Name = new char[ 1 /* * */ + PointeeName.size() + 1 ];