From e21fc7ea751362c3a2f9b4ec50ec5cb36914ea56 Mon Sep 17 00:00:00 2001
From: Tinny Ng <tng@apache.org>
Date: Fri, 10 Jan 2003 16:48:47 +0000
Subject: [PATCH] [Bug 14912] crashes inside
 UnionDatatypeValidator::isSubstitutableBy.   Patch from Alberto Massari.

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@174614 13f79535-47bb-0310-9956-ffa450edef68
---
 .../validators/datatype/UnionDatatypeValidator.hpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
index 98ec94260..14d6c2fce 100644
--- a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.5  2003/01/10 16:48:47  tng
+ * [Bug 14912] crashes inside UnionDatatypeValidator::isSubstitutableBy.   Patch from Alberto Massari.
+ *
  * Revision 1.4  2002/12/18 14:17:55  gareth
  * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
  *
@@ -325,14 +328,15 @@ inline bool UnionDatatypeValidator::isSubstitutableBy(const DatatypeValidator* c
         return true;
     }
 
-    unsigned int memberSize = fMemberTypeValidators->size();
+    if (fMemberTypeValidators) {
+        unsigned int memberSize = fMemberTypeValidators->size();
 
-    for (unsigned int i=0; i < memberSize; i++) {
-        if (fMemberTypeValidators->elementAt(i)->isSubstitutableBy(toCheck)) {
-            return true;
+        for (unsigned int i=0; i < memberSize; i++) {
+            if (fMemberTypeValidators->elementAt(i)->isSubstitutableBy(toCheck)) {
+                return true;
+            }
         }
     }
-
     return false;
 }
 
-- 
GitLab