Przeglądaj źródła

Merge pull request #12892 from mayx/HPCC-22659-Base64NewLine

HPCC-22659 Check other JBASE64_Encode's for line break issues

Merged-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday 5 lat temu
rodzic
commit
f59709f10e

+ 2 - 2
common/remote/rmtsmtp.cpp

@@ -694,7 +694,7 @@ class CDataMailPart : public CMailPart
 public:
     CDataMailPart(size32_t len, const void * data, char const * mimeType, char const * filename) : CMailPart(mimeType, filename)
     {
-        JBASE64_Encode(data, len, buff);
+        JBASE64_Encode(data, len, buff, true);
         encoding = "base64";
     }
 
@@ -715,7 +715,7 @@ public:
         unsigned char rndm[12];
         for(unsigned i=0; i<12; ++i)
             rndm[i] = getRandom() % 256;
-        JBASE64_Encode(rndm, 12, boundary);
+        JBASE64_Encode(rndm, 12, boundary, true);
         mime.append("; boundary=\"").append(boundary).append("\"");
     }
 

+ 1 - 1
common/wuwebview/wuwebview.cpp

@@ -234,7 +234,7 @@ public:
             if (length)
             {
                 if (binary)
-                    JBASE64_Encode(value, length, buffer);
+                    JBASE64_Encode(value, length, buffer, true);
                 else
                     encodeUtf8XML((const char *)value, buffer);
             }

+ 2 - 2
esp/bindings/SOAP/Platform/soapparam.cpp

@@ -275,7 +275,7 @@ bool BaseEspStruct::unmarshall(IEspContext* ctx, IProperties &params, MapStrToBu
 void SoapParamBinary::marshall(IRpcMessage &rpc_call, const char *tagname, const char *basepath, const char *xsdtype, const char *prefix)
 {
     StringBuffer sb64;
-    JBASE64_Encode(value.toByteArray(), value.length(), sb64);
+    JBASE64_Encode(value.toByteArray(), value.length(), sb64, true);
     rpc_call.add_value(basepath, prefix, tagname, xsdtype, sb64);
 }
 
@@ -293,7 +293,7 @@ void SoapParamBinary::toJSON(IEspContext* ctx, StringBuffer &s, const char *tagn
 void SoapParamBinary::toXML(IEspContext *ctx, StringBuffer &s, const char *tagname, const char *prefix, bool encode)
 {
     appendXMLOpenTag(s, tagname, prefix);
-    JBASE64_Encode(value.toByteArray(), value.length(), s);
+    JBASE64_Encode(value.toByteArray(), value.length(), s, true);
     appendXMLCloseTag(s, tagname, prefix);
 }
 

+ 1 - 1
esp/logging/logginglib/logthread.cpp

@@ -396,7 +396,7 @@ unsigned CLogThread::serializeLogRequestContent(IEspUpdateLogRequestWrap* pReque
     if (logRequest && *logRequest)
     {
         StringBuffer buffer;
-        JBASE64_Encode(logRequest, strlen(logRequest), buffer);
+        JBASE64_Encode(logRequest, strlen(logRequest), buffer, true);
         logData.append("<LogRequest>").append(buffer.str()).append("</LogRequest>");
     }
     return logData.length();

+ 1 - 1
esp/logging/loggingmanager/loggingmanager.cpp

@@ -322,7 +322,7 @@ unsigned CLoggingManager::serializeLogRequestContent(IEspUpdateLogRequestWrap* r
     const char* logRequest = request->getUpdateLogRequest();
     MemoryBuffer memBuf;
     LZWCompress(logRequest, strlen(logRequest), memBuf, 0x100);
-    JBASE64_Encode(memBuf.toByteArray(), memBuf.length(), logData);
+    JBASE64_Encode(memBuf.toByteArray(), memBuf.length(), logData, true);
 
     appendXMLCloseTag(logData, LOGREQUEST);
 

+ 1 - 1
esp/services/esdl_svc_engine/esdl_binding.cpp

@@ -3207,7 +3207,7 @@ int EsdlBindingImpl::onGetRoxieBuilder(CHttpRequest* request, CHttpResponse* res
 
     /*StringBuffer auth, abuf;
     abuf.appendf("%s:%s", strUsername.str(), strPassword.str());
-    JBASE64_Encode(abuf.str(), abuf.length(), auth);
+    JBASE64_Encode(abuf.str(), abuf.length(), auth, false);
     header.appendf("Authorization: Basic %s\r\n", auth.str());
     */
 

+ 2 - 2
esp/test/httptest/httptest.cpp

@@ -208,7 +208,7 @@ int HttpClient::getUrl(const char* url)
     {
         StringBuffer auth, abuf;
         abuf.appendf("%s:%s", user.str(), passwd.str());
-        JBASE64_Encode(abuf.str(), abuf.length(), auth);
+        JBASE64_Encode(abuf.str(), abuf.length(), auth, false);
         request.appendf("Authorization: Basic %s\r\n", auth.str());
     }
     request.append("\r\n");
@@ -351,7 +351,7 @@ int HttpClient::sendSoapRequest(const char* url, const char* soapaction, const c
     {
         StringBuffer auth, abuf;
         abuf.appendf("%s:%s", user.str(), passwd.str());
-        JBASE64_Encode(abuf.str(), abuf.length(), auth);
+        JBASE64_Encode(abuf.str(), abuf.length(), auth, false);
         headers.appendf("Authorization: Basic %s\r\n", auth.str());
     }
 

+ 1 - 1
esp/tools/soapplus/http.cpp

@@ -517,7 +517,7 @@ HttpClient::HttpClient(IProperties* globals, const char* url, const char* inname
         {
             StringBuffer auth, abuf;
             abuf.appendf("%s:%s", m_user.str(), m_password.str());
-            JBASE64_Encode(abuf.str(), abuf.length(), auth);
+            JBASE64_Encode(abuf.str(), abuf.length(), auth, false);
             m_authheader.appendf("Authorization: Basic %s\r\n", auth.str());
         }
     }

+ 1 - 1
fs/dafsserver/dafsserver.cpp

@@ -996,7 +996,7 @@ class CRemoteRequest : public CSimpleInterfaceOf<IInterface>
                 cursorMb.setEndian(__BIG_ENDIAN);
                 readActivity->serializeCursor(cursorMb);
                 StringBuffer cursorBinStr;
-                JBASE64_Encode(cursorMb.toByteArray(), cursorMb.length(), cursorBinStr);
+                JBASE64_Encode(cursorMb.toByteArray(), cursorMb.length(), cursorBinStr, true);
                 responseWriter->outputString(cursorBinStr.length(), cursorBinStr.str(), "cursorBin");
             }
         }

+ 1 - 1
rtl/eclrtl/eclrtl.cpp

@@ -6216,7 +6216,7 @@ void rtlBase64Encode(size32_t & tlen, char * & tgt, size32_t slen, const void *
     if (slen)
     {
         StringBuffer out;
-        JBASE64_Encode(src, slen, out);
+        JBASE64_Encode(src, slen, out, true);
         tlen = out.length();
         if (tlen)
         {

+ 1 - 1
rtl/eclrtl/eclrtl.hpp

@@ -767,7 +767,7 @@ ECLRTL_API IAtom * rtlCreateFieldNameAtom(const char * name);
  * @param tgt           Pointer to encoded string
  * @param slen          Input binary data length
  * @param src           Pointer to input binary data
- * @see                 void JBASE64_Encode(const void *data, long length, StringBuffer &out, bool addLineBreaks=true)
+ * @see                 void JBASE64_Encode(const void *data, long length, StringBuffer &out, bool addLineBreaks)
  *                      function in jutil library
  */
 ECLRTL_API void rtlBase64Encode(size32_t & tlen, char * & tgt, size32_t slen, const void * src);

+ 1 - 1
system/jlib/jencrypt.cpp

@@ -1831,7 +1831,7 @@ void encrypt(StringBuffer &ret, const char *in)
     {
         MemoryBuffer out;
         aesEncrypt(CRYPTKEY, CRYPTSIZE, in, (size32_t)strlen(in), out);
-        JBASE64_Encode(out.toByteArray(), out.length(), ret);
+        JBASE64_Encode(out.toByteArray(), out.length(), ret, true);
     }
 }
 

+ 1 - 1
system/jlib/jptree.cpp

@@ -5499,7 +5499,7 @@ static void _toXML(const IPropertyTree *tree, IIOStream &out, unsigned indent, u
                 }
             }
             else
-                JBASE64_Encode(thislevelbin.toByteArray(), thislevelbin.length(), out);
+                JBASE64_Encode(thislevelbin.toByteArray(), thislevelbin.length(), out, true);
         }
         else
         {

+ 2 - 2
system/jlib/jutil.cpp

@@ -1073,7 +1073,7 @@ static const char pad = '=';
 // long length       -> length in bytes of this data
 // IIOStream &out    -> Write the result into this stream
 //
-void JBASE64_Encode(const void *data, long length, IIOStream &out, bool addLineBreaks/*=true*/)
+void JBASE64_Encode(const void *data, long length, IIOStream &out, bool addLineBreaks)
 {
     const unsigned char *in = static_cast<const unsigned char *>(data);
 
@@ -1127,7 +1127,7 @@ void JBASE64_Encode(const void *data, long length, IIOStream &out, bool addLineB
 }
 
 // JCSMORE could have IIOStream StringBuffer adapter inplace of below.
-void JBASE64_Encode(const void *data, long length, StringBuffer &out, bool addLineBreaks/*=true*/)
+void JBASE64_Encode(const void *data, long length, StringBuffer &out, bool addLineBreaks)
 {
     const unsigned char *in = static_cast<const unsigned char *>(data);
 

+ 2 - 2
system/jlib/jutil.hpp

@@ -172,8 +172,8 @@ extern jlib_decl IShuffledIterator *createShuffledIterator(unsigned n); // retur
 extern jlib_decl bool isCIdentifier(const char* id);
 
 /* base64 encoder/decoder */
-extern jlib_decl void JBASE64_Encode(const void *data, long length, StringBuffer &out, bool addLineBreaks=true);
-extern jlib_decl void JBASE64_Encode(const void *data, long length, IIOStream &out, bool addLineBreaks=true);
+extern jlib_decl void JBASE64_Encode(const void *data, long length, StringBuffer &out, bool addLineBreaks);
+extern jlib_decl void JBASE64_Encode(const void *data, long length, IIOStream &out, bool addLineBreaks);
 extern jlib_decl StringBuffer &JBASE64_Decode(const char *in, StringBuffer &out);
 extern jlib_decl MemoryBuffer &JBASE64_Decode(const char *in, MemoryBuffer &out);
 extern jlib_decl StringBuffer &JBASE64_Decode(ISimpleReadStream &in, StringBuffer &out);

+ 1 - 1
testing/unittests/unittests.cpp

@@ -618,7 +618,7 @@ StringBuffer &base58ToBase64(StringBuffer &s, const char *b58)
 {
     MemoryBuffer mb;
     base58ToMb(mb, b58);
-    JBASE64_Encode(mb.toByteArray(), mb.length(), s.clear());
+    JBASE64_Encode(mb.toByteArray(), mb.length(), s.clear(),true);
     return s;
 }
 

+ 3 - 3
tools/hidl/hidlcomp.cpp

@@ -4654,7 +4654,7 @@ void EspMessageInfo::write_esp()
                     //TODO: should we encode binary data?
                     outf("\t{\n");
                     outf("\t\tStringBuffer tmp;\n");
-                    outf("\t\tJBASE64_Encode(src.get%s().toByteArray(), src.get%s().length(), tmp);\n", uname, uname);
+                    outf("\t\tJBASE64_Encode(src.get%s().toByteArray(), src.get%s().length(), tmp, true);\n", uname, uname);
                     outf("\t\tif (tmp.length()>0)\n");
                     const char* tag = pi->getXmlTag();
                     outf("\t\t\tbuffer.appendf(\"<%s>%%s</%s>\",tmp.str());\n", tag, tag);
@@ -4864,7 +4864,7 @@ void EspMessageInfo::write_esp()
                     if (nilRemove)
                     {
                         indentOutf(1,"StringBuffer tmp;\n");
-                        indentOutf("JBASE64_Encode(src.get%s().toByteArray(), src.get%s().length(), tmp);\n", uname, uname);
+                        indentOutf("JBASE64_Encode(src.get%s().toByteArray(), src.get%s().length(), tmp, true);\n", uname, uname);
                         indentOutf("if (tmp.length()>0)\n");
                         const char* tag = pi->getXmlTag();
                         indentOutf1(1,"buffer.appendf(\"<%s>%%s</%s>\",tmp.str());\n", tag,tag);
@@ -4872,7 +4872,7 @@ void EspMessageInfo::write_esp()
                     else
                     {
                         indentOutf(1,"buffer.append(\"<%s>\");\n", pi->getXmlTag());
-                        indentOutf("JBASE64_Encode(src.get%s().toByteArray(), src.get%s().length(), buffer);\n", uname, uname);
+                        indentOutf("JBASE64_Encode(src.get%s().toByteArray(), src.get%s().length(), buffer, ture);\n", uname, uname);
                         indentOutf("buffer.append(\"</%s>\");\n", pi->getXmlTag());
                     }
                     indentOuts(-1,"}\n");

+ 1 - 1
tools/testsocket/testsocket.cpp

@@ -398,7 +398,7 @@ int readResults(ISocket * socket, bool readBlocked, bool useHTTP, StringBuffer &
                     if (!cursorLen)
                         break;
                     const void *cursor = mb.readDirect(cursorLen);
-                    JBASE64_Encode(cursor, cursorLen, remoteReadCursor);
+                    JBASE64_Encode(cursor, cursorLen, remoteReadCursor, true);
                 }
 
                 if (remoteStreamForceResend)