DOMElement* rootElement = xmlObject->marshall();
string xmlbuf;
XMLHelper::serialize(rootElement, xmlbuf);
- log.debug("marshalled message: %s", xmlbuf.c_str());
+ log.debug("marshalled message:\n%s", xmlbuf.c_str());
unsigned int len;
char* deflated = deflate(const_cast<char*>(xmlbuf.c_str()), xmlbuf.length(), &len);
if (!deflated)
throw BindingException("Failed to deflate message.");
- XMLByte* encoded=Base64::encode(reinterpret_cast<XMLByte*>(deflated),len,&len);
+ xsecsize_t xlen;
+ XMLByte* encoded=Base64::encode(reinterpret_cast<XMLByte*>(deflated), len, &xlen);
delete[] deflated;
if (!encoded)
throw BindingException("Base64 encoding of XML failed.");
// Create beginnings of redirect query string.
const URLEncoder* escaper = XMLToolingConfig::getConfig().getURLEncoder();
xmlbuf.erase();
- xmlbuf.append(reinterpret_cast<char*>(encoded),len);
+ xmlbuf.append(reinterpret_cast<char*>(encoded), xlen);
+#ifdef OPENSAML_XERCESC_HAS_XMLBYTE_RELEASE
+ XMLString::release(&encoded);
+#else
+ XMLString::release((char**)&encoded);
+#endif
+
xmlbuf = (request ? "SAMLRequest=" : "SAMLResponse=") + escaper->encode(xmlbuf.c_str());
if (relayState && *relayState)
xmlbuf = xmlbuf + "&RelayState=" + escaper->encode(relayState);