From c26a0e51011d712f5f20ff93e30366a66dce26b9 Mon Sep 17 00:00:00 2001
From: PeiYong Zhang <peiyongz@apache.org>
Date: Mon, 27 Jan 2003 21:15:56 +0000
Subject: [PATCH] only zero or one space allowed in between B64 character.

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@174673 13f79535-47bb-0310-9956-ffa450edef68
---
 src/xercesc/util/Base64.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/xercesc/util/Base64.cpp b/src/xercesc/util/Base64.cpp
index c21c72e25..7c75f7dad 100644
--- a/src/xercesc/util/Base64.cpp
+++ b/src/xercesc/util/Base64.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.8  2003/01/27 21:15:56  peiyongz
+ * only zero or one space allowed in between B64 character.
+ *
  * Revision 1.7  2002/12/20 22:10:20  tng
  * XML 1.1
  *
@@ -333,10 +336,22 @@ XMLByte* Base64::decode(const XMLByte* const inputData,
 
     int inputIndex = 0;
     int rawInputLength = 0;
+    bool inWhiteSpace = false;
+
     while ( inputIndex < inputLength )
     {
         if (!XMLChar1_0::isWhitespace(inputData[inputIndex]))
+        {
             rawInputData[ rawInputLength++ ] = inputData[ inputIndex ];
+            inWhiteSpace = false;
+        }
+        else
+        {
+            if (inWhiteSpace)
+                return 0; // more than 1 whitespaces encountered
+            else
+                inWhiteSpace = true;
+        }
 
         inputIndex++;
     }
-- 
GitLab