Avoid adding stream objects directly to arrays in CPDF_SyntaxParser

In https://pdfium-review.googlesource.com/115611, CPDF_SyntaxParser
received the same check when adding to dictionaries. Make the behavior
consistent for arrays.

Bug: 324483125,pdfium:2119
Change-Id: I14d54020573ad02470648e14ffb59eac041ebe4b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/116531
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
index 7b35697..e72d393 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
@@ -541,7 +541,10 @@
     auto pArray = pdfium::MakeRetain<CPDF_Array>();
     while (RetainPtr<CPDF_Object> pObj =
                GetObjectBodyInternal(pObjList, ParseType::kLoose)) {
-      pArray->Append(std::move(pObj));
+      // `pObj` cannot be a stream, per ISO 32000-1:2008 section 7.3.8.1.
+      if (!pObj->IsStream()) {
+        pArray->Append(std::move(pObj));
+      }
     }
     return (parse_type == ParseType::kLoose || m_WordBuffer[0] == ']')
                ? std::move(pArray)