You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by sc...@apache.org on 2010/06/23 15:31:57 UTC
svn commit: r957190 - in /xml/security/trunk/c/src: dsig/ enc/ framework/
samples/ tools/c14n/ tools/checksig/ tools/cipher/ tools/xklient/ utils/
utils/unixutils/ utils/winutils/ xenc/impl/ xkms/ xkms/impl/
Author: scantor
Date: Wed Jun 23 13:31:56 2010
New Revision: 957190
URL: http://svn.apache.org/viewvc?rev=957190&view=rev
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=49264
Modified:
xml/security/trunk/c/src/dsig/DSIGKeyInfoName.cpp
xml/security/trunk/c/src/dsig/DSIGKeyInfoX509.cpp
xml/security/trunk/c/src/enc/XSECCryptoUtils.cpp
xml/security/trunk/c/src/framework/XSECDefs.hpp
xml/security/trunk/c/src/samples/IOStreamOutputter.cpp
xml/security/trunk/c/src/tools/c14n/c14n.cpp
xml/security/trunk/c/src/tools/checksig/InteropResolver.cpp
xml/security/trunk/c/src/tools/checksig/checksig.cpp
xml/security/trunk/c/src/tools/cipher/cipher.cpp
xml/security/trunk/c/src/tools/xklient/xklient.cpp
xml/security/trunk/c/src/utils/XSECAutoPtr.hpp
xml/security/trunk/c/src/utils/XSECDOMUtils.cpp
xml/security/trunk/c/src/utils/XSECSOAPRequestorSimple.cpp
xml/security/trunk/c/src/utils/XSECSafeBuffer.cpp
xml/security/trunk/c/src/utils/unixutils/XSECBinHTTPURIInputStream.cpp
xml/security/trunk/c/src/utils/unixutils/XSECSOAPRequestorSimpleUnix.cpp
xml/security/trunk/c/src/utils/unixutils/XSECURIResolverGenericUnix.cpp
xml/security/trunk/c/src/utils/winutils/XSECBinHTTPURIInputStream.cpp
xml/security/trunk/c/src/utils/winutils/XSECSOAPRequestorSimpleWin32.cpp
xml/security/trunk/c/src/utils/winutils/XSECURIResolverGenericWin32.cpp
xml/security/trunk/c/src/xenc/impl/XENCAlgorithmHandlerDefault.cpp
xml/security/trunk/c/src/xenc/impl/XENCCipherImpl.cpp
xml/security/trunk/c/src/xenc/impl/XENCEncryptedTypeImpl.cpp
xml/security/trunk/c/src/xkms/XKMSConstants.cpp
xml/security/trunk/c/src/xkms/impl/XKMSKeyBindingAbstractTypeImpl.cpp
xml/security/trunk/c/src/xkms/impl/XKMSMessageAbstractTypeImpl.cpp
Modified: xml/security/trunk/c/src/dsig/DSIGKeyInfoName.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/dsig/DSIGKeyInfoName.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/dsig/DSIGKeyInfoName.cpp (original)
+++ xml/security/trunk/c/src/dsig/DSIGKeyInfoName.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,8 +32,6 @@
#include <xsec/dsig/DSIGSignature.hpp>
#include <xsec/framework/XSECEnv.hpp>
-#include <xercesc/util/Janitor.hpp>
-
XERCES_CPP_NAMESPACE_USE
// --------------------------------------------------------------------------------
@@ -152,10 +150,8 @@ DOMElement * DSIGKeyInfoName::createBlan
mp_decodedDName = XMLString::replicate(name);
XMLCh * encodedName = encodeDName(name);
- ArrayJanitor<XMLCh> j_encodedName(encodedName);
-
mp_keyNameTextNode = doc->createTextNode(encodedName);
-
+ XSEC_RELEASE_XMLCH(encodedName);
}
else
@@ -193,10 +189,8 @@ void DSIGKeyInfoName::setKeyName(const X
mp_decodedDName = XMLString::replicate(name);
XMLCh * encodedName = encodeDName(name);
- ArrayJanitor<XMLCh> j_encodedName(encodedName);
-
mp_keyNameTextNode->setNodeValue(encodedName);
-
+ XSEC_RELEASE_XMLCH(encodedName);
}
else {
Modified: xml/security/trunk/c/src/dsig/DSIGKeyInfoX509.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/dsig/DSIGKeyInfoX509.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/dsig/DSIGKeyInfoX509.cpp (original)
+++ xml/security/trunk/c/src/dsig/DSIGKeyInfoX509.cpp Wed Jun 23 13:31:56 2010
@@ -479,7 +479,7 @@ void DSIGKeyInfoX509::setX509SubjectName
mp_X509SubjectNameTextNode->setNodeValue(encodedName);
}
- XMLString::release(&encodedName);
+ XSEC_RELEASE_XMLCH(encodedName);
}
void DSIGKeyInfoX509::setX509IssuerSerial(const XMLCh * name, const XMLCh * serial) {
@@ -539,7 +539,7 @@ void DSIGKeyInfoX509::setX509IssuerSeria
}
- XMLString::release(&encodedName);
+ XSEC_RELEASE_XMLCH(encodedName);
}
void DSIGKeyInfoX509::setRawRetrievalURI(const XMLCh * uri) {
Modified: xml/security/trunk/c/src/enc/XSECCryptoUtils.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/enc/XSECCryptoUtils.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/enc/XSECCryptoUtils.cpp (original)
+++ xml/security/trunk/c/src/enc/XSECCryptoUtils.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,6 +36,8 @@
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
+#include "../utils/XSECAutoPtr.hpp"
+
XERCES_CPP_NAMESPACE_USE
// --------------------------------------------------------------------------------
@@ -73,16 +75,14 @@ int SASLCleanXKMSPassPhrase(unsigned cha
// Currently we only check for prohibited unput for chars < 0xFFFF and drop any
// chars over 0xFFFF
- XMLCh * uinput, *uoutput;
unsigned char * inp = new unsigned char[inputLen + 1];
ArrayJanitor<unsigned char> j_inp(inp);
memcpy(inp, input, inputLen);
inp[inputLen] = '\0';
- uinput = XMLString::transcode((char *) inp);
- xsecsize_t l = XMLString::stringLen(uinput);
- uoutput = new XMLCh[l + 1];
- ArrayJanitor<XMLCh> j_uinput(uinput);
+ XSECAutoPtrXMLCh uinput((char *) inp);
+ xsecsize_t l = XMLString::stringLen(uinput.get());
+ XMLCh* uoutput = new XMLCh[l + 1];
ArrayJanitor<XMLCh> j_uoutput(uoutput);
xsecsize_t i, j;
@@ -92,7 +92,7 @@ int SASLCleanXKMSPassPhrase(unsigned cha
for (i = 0; i < l; ++i) {
- ch1 = uinput[i];
+ ch1 = uinput.get()[i];
// Case one - char is < 0x10000
if (ch1 < 0xD800 || ch1 > 0xDFFF) {
@@ -237,11 +237,11 @@ int SASLCleanXKMSPassPhrase(unsigned cha
// Now transcode
char * utf8output= transcodeToUTF8(uoutput);
- ArrayJanitor<char> j_utf8output(utf8output);
output.sbStrcpyIn(utf8output);
- return (int) strlen(utf8output);
-
+ int ret = (int)strlen(utf8output);
+ XSEC_RELEASE_XMLCH(utf8output);
+ return ret;
}
int DSIG_EXPORT CalculateXKMSAuthenticationKey(unsigned char * input, int inputLen, unsigned char * output, int maxOutputLen) {
@@ -392,11 +392,10 @@ unsigned int DSIG_EXPORT DecodeFromBase6
XSECCryptoBase64 * b64 = XSECPlatformUtils::g_cryptoProvider->base64();
Janitor<XSECCryptoBase64> j_b64(b64);
- char * tinput = XMLString::transcode(input);
- ArrayJanitor<char> j_tinput(tinput);
+ XSECAutoPtrChar tinput(input);
b64->decodeInit();
- unsigned int j = b64->decode((unsigned char *) tinput, (unsigned int) strlen(tinput), output, maxOutputLen - 1);
+ unsigned int j = b64->decode((unsigned char *) tinput.get(), (unsigned int) strlen(tinput.get()), output, maxOutputLen - 1);
j += b64->decodeFinish(&output[j], maxOutputLen - j - 1);
return j;
Modified: xml/security/trunk/c/src/framework/XSECDefs.hpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/framework/XSECDefs.hpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/framework/XSECDefs.hpp (original)
+++ xml/security/trunk/c/src/framework/XSECDefs.hpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -86,9 +86,9 @@
#endif
#if defined (XSEC_XERCES_XMLSTRING_HAS_RELEASE)
-# define XSEC_RELEASE_XMLCH(x) XMLString::release(&x)
+# define XSEC_RELEASE_XMLCH(x) XMLString::release(&(x))
#else
-# define XSEC_RELEASE_XMLCH(x) delete[] x;
+# define XSEC_RELEASE_XMLCH(x) delete[] (x);
#endif
// --------------------------------------------------------------------------------
Modified: xml/security/trunk/c/src/samples/IOStreamOutputter.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/samples/IOStreamOutputter.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/samples/IOStreamOutputter.cpp (original)
+++ xml/security/trunk/c/src/samples/IOStreamOutputter.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 The Apache Software Foundation.
+ * Copyright 2003-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -876,7 +876,7 @@ ostream& operator<< (ostream& target, co
{
char *p = s.transcode();
target << p;
- XMLString::release(&p);
+ XSEC_RELEASE_XMLCH(p);
return target;
}
Modified: xml/security/trunk/c/src/tools/c14n/c14n.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/tools/c14n/c14n.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/tools/c14n/c14n.cpp (original)
+++ xml/security/trunk/c/src/tools/c14n/c14n.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2009 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -168,7 +168,7 @@ int main(int argc, char **argv) {
if (id) {
XMLCh* temp = XMLString::transcode(id);
subtree = theDOM->getElementById(temp);
- XMLString::release(&temp);
+ XSEC_RELEASE_XMLCH(temp);
if (!subtree) {
cerr << "ID reference did not resolve" << endl;
exit(1);
Modified: xml/security/trunk/c/src/tools/checksig/InteropResolver.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/tools/checksig/InteropResolver.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/tools/checksig/InteropResolver.cpp (original)
+++ xml/security/trunk/c/src/tools/checksig/InteropResolver.cpp Wed Jun 23 13:31:56 2010
@@ -344,7 +344,6 @@ bool InteropResolver::checkMatch(DSIGKey
char * cski = XMLString::transcode(ski);
int clen = (int) strlen(cski);
unsigned char * xski = new unsigned char[clen];
- ArrayJanitor<char> j_cski(cski);
ArrayJanitor <unsigned char> j_xski(xski);
// Decode
@@ -353,6 +352,7 @@ bool InteropResolver::checkMatch(DSIGKey
b64.decodeInit();
int xlen = b64.decode((unsigned char *) cski, clen, xski, clen);
xlen += b64.decodeFinish(&xski[xlen], clen - xlen);
+ XSEC_RELEASE_XMLCH(cski);
if (xlen != 0) {
@@ -433,10 +433,10 @@ XSECCryptoKey * InteropResolver::openCer
safeBuffer fname;
char * u = XMLString::transcode(uri);
- ArrayJanitor<char> j_u(u);
fname.sbTranscodeIn(mp_baseURI);
fname.sbStrcatIn("/");
fname.sbStrcatIn(u);
+ XSEC_RELEASE_XMLCH(u);
#if defined(_WIN32)
reverseSlash(fname);
@@ -544,7 +544,6 @@ XSECCryptoKey * InteropResolver::resolve
OpenSSLCryptoBase64 b64;
char * transb64cert = XMLString::transcode(b64cert);
unsigned char * x509buf = new unsigned char[strlen(transb64cert)];
- ArrayJanitor<char> j_transb64cert(transb64cert);
ArrayJanitor<unsigned char> j_x509buf(x509buf);
int x509bufLen;
@@ -554,6 +553,7 @@ XSECCryptoKey * InteropResolver::resolve
b64.decodeInit();
x509bufLen = b64.decode((unsigned char *) transb64cert, (unsigned int) strlen(transb64cert), x509buf, (unsigned int) strlen(transb64cert));
x509bufLen += b64.decodeFinish(&x509buf[x509bufLen], (unsigned int) strlen(transb64cert) - x509bufLen);
+ XSEC_RELEASE_XMLCH(transb64cert);
if (x509bufLen > 0) {
#if defined(XSEC_OPENSSL_D2IX509_CONST_BUFFER)
@@ -572,7 +572,6 @@ XSECCryptoKey * InteropResolver::resolve
// Now the CRL
char * transb64crl = XMLString::transcode(b64crl);
unsigned char * crlbuf = new unsigned char[strlen(transb64crl)];
- ArrayJanitor<char> j_transb64crl(transb64crl);
ArrayJanitor<unsigned char> j_crlbuf(crlbuf);
int crlbufLen;
@@ -582,6 +581,7 @@ XSECCryptoKey * InteropResolver::resolve
b64.decodeInit();
crlbufLen = b64.decode((unsigned char*) transb64crl, (unsigned int) strlen(transb64crl), crlbuf, (unsigned int) strlen(transb64crl));
crlbufLen += b64.decodeFinish(&crlbuf[crlbufLen], (unsigned int) strlen(transb64crl) - crlbufLen);
+ XSEC_RELEASE_XMLCH(transb64crl);
if (crlbufLen > 0) {
#if defined(XSEC_OPENSSL_D2IX509_CONST_BUFFER)
Modified: xml/security/trunk/c/src/tools/checksig/checksig.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/tools/checksig/checksig.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/tools/checksig/checksig.cpp (original)
+++ xml/security/trunk/c/src/tools/checksig/checksig.cpp Wed Jun 23 13:31:56 2010
@@ -451,7 +451,6 @@ int evaluate(int argc, char ** argv) {
// The last "\\" must prefix the filename
baseURI[lastSlash + 1] = '\0';
XMLCh * baseURIXMLCh = XMLString::transcode(baseURI);
- ArrayJanitor<XMLCh> j_baseURIXMLCh(baseURIXMLCh);
XMLUri uri(MAKE_UNICODE_STRING(baseURI));
@@ -473,6 +472,7 @@ int evaluate(int argc, char ** argv) {
}
#endif
+ XSEC_RELEASE_XMLCH(baseURIXMLCh);
}
Modified: xml/security/trunk/c/src/tools/cipher/cipher.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/tools/cipher/cipher.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/tools/cipher/cipher.cpp (original)
+++ xml/security/trunk/c/src/tools/cipher/cipher.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 The Apache Software Foundation.
+ * Copyright 2003-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -656,9 +656,9 @@ int evaluate(int argc, char ** argv) {
baseURI[lastSlash + 1] = '\0';
XMLCh * uriT = XMLString::transcode(baseURI);
- ArrayJanitor<XMLCh> j_uriT(uriT);
XencInteropResolver ires(doc, &(uriT[8]));
+ XSEC_RELEASE_XMLCH(uriT);
cipher->setKeyInfoResolver(&ires);
}
Modified: xml/security/trunk/c/src/tools/xklient/xklient.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/tools/xklient/xklient.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/tools/xklient/xklient.cpp (original)
+++ xml/security/trunk/c/src/tools/xklient/xklient.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -4255,9 +4255,9 @@ int doRequest(int argc, char ** argv, in
request->setNonce(r->getNonce());
request->setOriginalRequestId(request->getId());
XMLCh * myId = generateId();
- ArrayJanitor<XMLCh> j_myId(myId);
request->setId(myId);
+ XSEC_RELEASE_XMLCH(myId);
responseDoc->release();
responseDoc = req.doRequest(doc);
Modified: xml/security/trunk/c/src/utils/XSECAutoPtr.hpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/XSECAutoPtr.hpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/XSECAutoPtr.hpp (original)
+++ xml/security/trunk/c/src/utils/XSECAutoPtr.hpp Wed Jun 23 13:31:56 2010
@@ -61,7 +61,7 @@ public:
}
~XSECAutoPtrChar() {
- xercesc::XMLString::release(&m_buf);
+ XSEC_RELEASE_XMLCH(m_buf);
}
const char* get() const {
@@ -98,7 +98,7 @@ public:
}
~XSECAutoPtrXMLCh() {
- xercesc::XMLString::release(&m_buf);
+ XSEC_RELEASE_XMLCH(m_buf);
}
const XMLCh* get() const {
Modified: xml/security/trunk/c/src/utils/XSECDOMUtils.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/XSECDOMUtils.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/XSECDOMUtils.cpp (original)
+++ xml/security/trunk/c/src/utils/XSECDOMUtils.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -711,7 +711,6 @@ XMLCh * cleanURIEscapes(const XMLCh * st
// Taken from Xerces XMLURI.cpp
XMLCh * retPath = XMLString::replicate(str);
- ArrayJanitor<XMLCh> j_retPath(retPath);
xsecsize_t len = XMLString::stringLen(retPath);
int percentIndex = XMLString::indexOf(retPath, chPercent, 0);
@@ -721,7 +720,7 @@ XMLCh * cleanURIEscapes(const XMLCh * st
if (percentIndex+2 >= len ||
!isHexDigit(retPath[percentIndex+1]) ||
!isHexDigit(retPath[percentIndex+2]))
-
+ XSEC_RELEASE_XMLCH(retPath);
throw XSECException(XSECException::ErrorOpeningURI,
"Bad escape sequence in URI");
@@ -739,7 +738,6 @@ XMLCh * cleanURIEscapes(const XMLCh * st
}
- j_retPath.release();
return retPath;
}
Modified: xml/security/trunk/c/src/utils/XSECSOAPRequestorSimple.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/XSECSOAPRequestorSimple.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/XSECSOAPRequestorSimple.cpp (original)
+++ xml/security/trunk/c/src/utils/XSECSOAPRequestorSimple.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2005 The Apache Software Foundation.
+ * Copyright 2004-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,6 +31,8 @@
#include <xsec/utils/XSECSOAPRequestorSimple.hpp>
#include <xsec/xkms/XKMSConstants.hpp>
+#include "../utils/XSECAutoPtr.hpp"
+
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -308,11 +310,10 @@ DOMDocument * XSECSOAPRequestorSimple::p
retDoc->release();
- char * msg = XMLString::transcode(sb.rawXMLChBuffer());
- ArrayJanitor<char> j_msg(msg);
+ XSECAutoPtrChar msg(sb.rawXMLChBuffer());
throw XSECException(XSECException::HTTPURIInputStreamError,
- msg);
+ msg.get());
}
Modified: xml/security/trunk/c/src/utils/XSECSafeBuffer.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/XSECSafeBuffer.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/XSECSafeBuffer.cpp (original)
+++ xml/security/trunk/c/src/utils/XSECSafeBuffer.cpp Wed Jun 23 13:31:56 2010
@@ -33,10 +33,8 @@
#include <xsec/transformers/TXFMBase.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
-#include <xercesc/util/Janitor.hpp>
XSEC_USING_XERCES(XMLString);
-XSEC_USING_XERCES(ArrayJanitor);
// Standard includes
@@ -653,8 +651,8 @@ void safeBuffer::sbXMLChCat8(const char
checkBufferType(BUFFER_UNICODE);
XMLCh * toAdd = transcodeFromUTF8((const unsigned char *) str);
- ArrayJanitor<XMLCh> j_toAdd(toAdd);
sbXMLChCat(toAdd);
+ XSEC_RELEASE_XMLCH(toAdd);
}
Modified: xml/security/trunk/c/src/utils/unixutils/XSECBinHTTPURIInputStream.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/unixutils/XSECBinHTTPURIInputStream.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/unixutils/XSECBinHTTPURIInputStream.cpp (original)
+++ xml/security/trunk/c/src/utils/unixutils/XSECBinHTTPURIInputStream.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -71,6 +71,8 @@
#include <xsec/framework/XSECError.hpp>
#include <xsec/utils/unixutils/XSECBinHTTPURIInputStream.hpp>
+#include "../../utils/XSECAutoPtr.hpp"
+
#include <xercesc/util/XMLNetAccessor.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
@@ -86,24 +88,16 @@ int XSECBinHTTPURIInputStream::getSocket
// and transcode them back to ASCII.
//
const XMLCh* hostName = urlSource.getHost();
- char* hostNameAsCharStar = XMLString::transcode(hostName);
- ArrayJanitor<char> janBuf1(hostNameAsCharStar);
+ XSECAutoPtrChar hostNameAsCharStar(hostName);
const XMLCh* path = urlSource.getPath();
- char* pathAsCharStar = XMLString::transcode(path);
- ArrayJanitor<char> janBuf2(pathAsCharStar);
+ XSECAutoPtrChar pathAsCharStar(path);
const XMLCh* fragment = urlSource.getFragment();
- char* fragmentAsCharStar = 0;
- if (fragment)
- fragmentAsCharStar = XMLString::transcode(fragment);
- ArrayJanitor<char> janBuf3(fragmentAsCharStar);
+ XSECAutoPtrChar fragmentAsCharStar(fragment);
const XMLCh* query = urlSource.getQueryString();
- char* queryAsCharStar = 0;
- if (query)
- queryAsCharStar = XMLString::transcode(query);
- ArrayJanitor<char> janBuf4(queryAsCharStar);
+ XSECAutoPtrChar queryAsCharStar(query);
unsigned short portNumber = (unsigned short) urlSource.getPort();
if (portNumber == USHRT_MAX)
@@ -116,9 +110,9 @@ int XSECBinHTTPURIInputStream::getSocket
struct sockaddr_in sa;
- if ((hostEntPtr = gethostbyname(hostNameAsCharStar)) == NULL)
+ if ((hostEntPtr = gethostbyname(hostNameAsCharStar.get())) == NULL)
{
- unsigned long numAddress = inet_addr(hostNameAsCharStar);
+ unsigned long numAddress = inet_addr(hostNameAsCharStar.get());
if (numAddress == 0)
{
ThrowXML(NetAccessorException,
@@ -157,25 +151,25 @@ int XSECBinHTTPURIInputStream::getSocket
// To do: We should really support http 1.1. This implementation
// is weak.
strcpy(fBuffer, "GET ");
- strcat(fBuffer, pathAsCharStar);
+ strcat(fBuffer, pathAsCharStar.get());
- if (queryAsCharStar != 0)
+ if (queryAsCharStar.get() != 0)
{
size_t n = strlen(fBuffer);
fBuffer[n] = XERCES_CPP_NAMESPACE_QUALIFIER chQuestion;
fBuffer[n+1] = XERCES_CPP_NAMESPACE_QUALIFIER chNull;
- strcat(fBuffer, queryAsCharStar);
+ strcat(fBuffer, queryAsCharStar.get());
}
- if (fragmentAsCharStar != 0)
+ if (fragmentAsCharStar.get() != 0)
{
- strcat(fBuffer, fragmentAsCharStar);
+ strcat(fBuffer, fragmentAsCharStar.get());
}
strcat(fBuffer, " HTTP/1.0\r\n");
strcat(fBuffer, "Host: ");
- strcat(fBuffer, hostNameAsCharStar);
+ strcat(fBuffer, hostNameAsCharStar.get());
if (portNumber != 80)
{
int i = strlen(fBuffer);
@@ -273,10 +267,9 @@ int XSECBinHTTPURIInputStream::getSocket
redirectBuf[q] = '\0';
// Try to find this location
- XMLCh * redirectBufTrans = XMLString::transcode(redirectBuf);
- ArrayJanitor<XMLCh> j_redirectBufTrans(redirectBufTrans);
+ XSECAutoPtrXMLCh redirectBufTrans(redirectBuf);
- return getSocketHandle(XMLUri(redirectBufTrans));
+ return getSocketHandle(XMLUri(redirectBufTrans.get()));
}
else if (httpResponse != 200)
Modified: xml/security/trunk/c/src/utils/unixutils/XSECSOAPRequestorSimpleUnix.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/unixutils/XSECSOAPRequestorSimpleUnix.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/unixutils/XSECSOAPRequestorSimpleUnix.cpp (original)
+++ xml/security/trunk/c/src/utils/unixutils/XSECSOAPRequestorSimpleUnix.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2005 The Apache Software Foundation.
+ * Copyright 2004-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,6 +41,8 @@
#include <xsec/utils/XSECSafeBuffer.hpp>
#include <xsec/framework/XSECError.hpp>
+#include "../../utils/XSECAutoPtr.hpp"
+
#include <xercesc/dom/DOM.hpp>
#include <xercesc/util/XMLNetAccessor.hpp>
#include <xercesc/util/XMLString.hpp>
@@ -81,24 +83,16 @@ DOMDocument * XSECSOAPRequestorSimple::d
// and transcode them back to ASCII.
//
const XMLCh* hostName = m_uri.getHost();
- char* hostNameAsCharStar = XMLString::transcode(hostName);
- ArrayJanitor<char> janBuf1(hostNameAsCharStar);
+ XSECAutoPtrChar hostNameAsCharStar(hostName);
const XMLCh* path = m_uri.getPath();
- char* pathAsCharStar = XMLString::transcode(path);
- ArrayJanitor<char> janBuf2(pathAsCharStar);
+ XSECAutoPtrChar pathAsCharStar(path);
const XMLCh* fragment = m_uri.getFragment();
- char* fragmentAsCharStar = 0;
- if (fragment)
- fragmentAsCharStar = XMLString::transcode(fragment);
- ArrayJanitor<char> janBuf3(fragmentAsCharStar);
+ XSECAutoPtrChar fragmentAsCharStar(fragment);
const XMLCh* query = m_uri.getQueryString();
- char* queryAsCharStar = 0;
- if (query)
- queryAsCharStar = XMLString::transcode(query);
- ArrayJanitor<char> janBuf4(queryAsCharStar);
+ XSECAutoPtrChar queryAsCharStar(query);
unsigned short portNumber = (unsigned short) m_uri.getPort();
@@ -113,9 +107,9 @@ DOMDocument * XSECSOAPRequestorSimple::d
struct sockaddr_in sa;
- if ((hostEntPtr = gethostbyname(hostNameAsCharStar)) == NULL)
+ if ((hostEntPtr = gethostbyname(hostNameAsCharStar.get())) == NULL)
{
- unsigned long numAddress = inet_addr(hostNameAsCharStar);
+ unsigned long numAddress = inet_addr(hostNameAsCharStar.get());
if (numAddress == 0)
{
ThrowXML(NetAccessorException,
@@ -157,18 +151,18 @@ DOMDocument * XSECSOAPRequestorSimple::d
memset(fBuffer, 0, sizeof(fBuffer));
strcpy(fBuffer, "POST ");
- strcat(fBuffer, pathAsCharStar);
+ strcat(fBuffer, pathAsCharStar.get());
- if (queryAsCharStar != 0)
+ if (queryAsCharStar.get() != 0)
{
// Tack on a ? before the fragment
strcat(fBuffer,"?");
- strcat(fBuffer, queryAsCharStar);
+ strcat(fBuffer, queryAsCharStar.get());
}
- if (fragmentAsCharStar != 0)
+ if (fragmentAsCharStar.get() != 0)
{
- strcat(fBuffer, fragmentAsCharStar);
+ strcat(fBuffer, fragmentAsCharStar.get());
}
strcat(fBuffer, " HTTP/1.0\r\n");
@@ -176,7 +170,7 @@ DOMDocument * XSECSOAPRequestorSimple::d
strcat(fBuffer, "Host: ");
- strcat(fBuffer, hostNameAsCharStar);
+ strcat(fBuffer, hostNameAsCharStar.get());
if (portNumber != 80)
{
int i = strlen(fBuffer);
@@ -310,9 +304,9 @@ DOMDocument * XSECSOAPRequestorSimple::d
return doRequest(request);
#endif
XMLCh * recString = XMLString::transcode(redirectBuf);
- ArrayJanitor<XMLCh> j_recString(recString);
XSECSOAPRequestorSimple recurse(recString);
+ XSEC_RELEASE_XMLCH(recString);
return recurse.doRequest(request);
}
Modified: xml/security/trunk/c/src/utils/unixutils/XSECURIResolverGenericUnix.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/unixutils/XSECURIResolverGenericUnix.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/unixutils/XSECURIResolverGenericUnix.cpp (original)
+++ xml/security/trunk/c/src/utils/unixutils/XSECURIResolverGenericUnix.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -79,6 +79,8 @@ XERCES_CPP_NAMESPACE_USE
#include <xsec/utils/XSECDOMUtils.hpp>
#include <xsec/utils/unixutils/XSECBinHTTPURIInputStream.hpp>
+#include "../../utils/XSECAutoPtr.hpp"
+
static const XMLCh gFileScheme[] = {
XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f,
@@ -155,27 +157,25 @@ BinInputStream * XSECURIResolverGenericU
#if XERCES_VERSION_MAJOR == 2 && XERCES_VERSION_MINOR < 3
// XMLUri relative paths are broken, so we need to strip out ".."
- XMLCh * b = XMLString::replicate(mp_baseURI);
- ArrayJanitor<XMLCh> j_b(b);
- XMLCh * r = XMLString::replicate(uri);
- ArrayJanitor<XMLCh> j_r(r);
+ XSECAutoPtrXMLCh b(mp_baseURI);
+ XSECAutoPtrXMLCh r(uri);
int index = 0;
- while (XMLString::startsWith(&(r[index]), DOTDOT_SLASH)) {
+ while (XMLString::startsWith(&(r.get()[index]), DOTDOT_SLASH)) {
// Strip the last segment of the base
- int lastIndex = XMLString::lastIndexOf(b, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash);
+ int lastIndex = XMLString::lastIndexOf(b.get(), XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash);
if (lastIndex > 0)
- b[lastIndex] = 0;
+ const_cast<XMLCh*>(b.get())[lastIndex] = 0;
index += 3;
}
- XSECnew(turi, XMLUri(b));
+ XSECnew(turi, XMLUri(b.get()));
Janitor<XMLUri> j_turi(turi);
- XSECnew(xmluri, XMLUri(turi, &(r[index])));
+ XSECnew(xmluri, XMLUri(turi, &(r.get()[index])));
#else
XSECnew(turi, XMLUri(mp_baseURI));
@@ -203,11 +203,12 @@ BinInputStream * XSECURIResolverGenericU
// Clean hex escapes
XMLCh * realPath = cleanURIEscapes(xmluri->getPath());
- ArrayJanitor<XMLCh> j_realPath(realPath);
// Localhost
BinFileInputStream* retStrm = new BinFileInputStream(realPath);
+ XSEC_RELEASE_XMLCH(realPath);
+
if (!retStrm->getIsOpen())
{
delete retStrm;
Modified: xml/security/trunk/c/src/utils/winutils/XSECBinHTTPURIInputStream.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/winutils/XSECBinHTTPURIInputStream.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/winutils/XSECBinHTTPURIInputStream.cpp (original)
+++ xml/security/trunk/c/src/utils/winutils/XSECBinHTTPURIInputStream.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,7 +47,6 @@
#include <xercesc/util/XMLNetAccessor.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
-#include <xercesc/util/Janitor.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
XERCES_CPP_NAMESPACE_USE
@@ -55,6 +54,8 @@ XERCES_CPP_NAMESPACE_USE
#include <xsec/utils/winutils/XSECBinHTTPURIInputStream.hpp>
#include <xsec/framework/XSECError.hpp>
+#include "../../utils/XSECAutoPtr.hpp"
+
static HMODULE gWinsockLib = NULL;
static LPFN_GETHOSTBYNAME gWSgethostbyname = NULL;
static LPFN_INET_ADDR gWSinet_addr = NULL;
@@ -227,24 +228,16 @@ unsigned int XSECBinHTTPURIInputStream::
// and transcode them back to ASCII.
//
const XMLCh* hostName = urlSource.getHost();
- char* hostNameAsCharStar = XMLString::transcode(hostName);
- ArrayJanitor<char> janBuf1(hostNameAsCharStar);
+ XSECAutoPtrChar hostNameAsCharStar(hostName);
const XMLCh* path = urlSource.getPath();
- char* pathAsCharStar = XMLString::transcode(path);
- ArrayJanitor<char> janBuf2(pathAsCharStar);
+ XSECAutoPtrChar pathAsCharStar(path);
const XMLCh* fragment = urlSource.getFragment();
- char* fragmentAsCharStar = 0;
- if (fragment)
- fragmentAsCharStar = XMLString::transcode(fragment);
- ArrayJanitor<char> janBuf3(fragmentAsCharStar);
+ XSECAutoPtrChar fragmentAsCharStar(fragment);
const XMLCh* query = urlSource.getQueryString();
- char* queryAsCharStar = 0;
- if (query)
- queryAsCharStar = XMLString::transcode(query);
- ArrayJanitor<char> janBuf4(queryAsCharStar);
+ XSECAutoPtrChar queryAsCharStar(query);
unsigned short portNumber = (unsigned short) urlSource.getPort();
@@ -259,9 +252,9 @@ unsigned int XSECBinHTTPURIInputStream::
struct sockaddr_in sa;
- if ((hostEntPtr = gethostbyname(hostNameAsCharStar)) == NULL)
+ if ((hostEntPtr = gethostbyname(hostNameAsCharStar.get())) == NULL)
{
- unsigned long numAddress = inet_addr(hostNameAsCharStar);
+ unsigned long numAddress = inet_addr(hostNameAsCharStar.get());
if (numAddress == INADDR_NONE)
{
// Call WSAGetLastError() to get the error number.
@@ -310,24 +303,24 @@ unsigned int XSECBinHTTPURIInputStream::
memset(fBuffer, 0, sizeof(fBuffer));
strcpy(fBuffer, "GET ");
- strcat(fBuffer, pathAsCharStar);
+ strcat(fBuffer, pathAsCharStar.get());
- if (queryAsCharStar != 0)
+ if (queryAsCharStar.get() != 0)
{
// Tack on a ? before the fragment
strcat(fBuffer,"?");
- strcat(fBuffer, queryAsCharStar);
+ strcat(fBuffer, queryAsCharStar.get());
}
- if (fragmentAsCharStar != 0)
+ if (fragmentAsCharStar.get() != 0)
{
- strcat(fBuffer, fragmentAsCharStar);
+ strcat(fBuffer, fragmentAsCharStar.get());
}
strcat(fBuffer, " HTTP/1.0\r\n");
strcat(fBuffer, "Host: ");
- strcat(fBuffer, hostNameAsCharStar);
+ strcat(fBuffer, hostNameAsCharStar.get());
if (portNumber != 80)
{
strcat(fBuffer, ":");
@@ -447,10 +440,9 @@ unsigned int XSECBinHTTPURIInputStream::
redirectBuf[q] = '\0';
// Try to find this location
- XMLCh * redirectBufTrans = XMLString::transcode(redirectBuf);
- ArrayJanitor<XMLCh> j_redirectBuf(redirectBufTrans);
+ XSECAutoPtrXMLCh redirectBufTrans(redirectBuf);
- return getSocketHandle(XMLUri(redirectBufTrans));
+ return getSocketHandle(XMLUri(redirectBufTrans.get()));
}
else if (httpResponse != 200)
{
Modified: xml/security/trunk/c/src/utils/winutils/XSECSOAPRequestorSimpleWin32.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/winutils/XSECSOAPRequestorSimpleWin32.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/winutils/XSECSOAPRequestorSimpleWin32.cpp (original)
+++ xml/security/trunk/c/src/utils/winutils/XSECSOAPRequestorSimpleWin32.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2005 The Apache Software Foundation.
+ * Copyright 2004-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,6 +33,8 @@
#include <xsec/utils/XSECDOMUtils.hpp>
#include <xsec/xkms/XKMSConstants.hpp>
+#include "../../utils/XSECAutoPtr.hpp"
+
#define _WINSOCKAPI_
#define INCL_WINSOCK_API_TYPEDEFS 1
@@ -52,7 +54,6 @@
#include <xercesc/util/XMLNetAccessor.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
-#include <xercesc/util/Janitor.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
XERCES_CPP_NAMESPACE_USE
@@ -79,7 +80,6 @@ DOMDocument * XSECSOAPRequestorSimple::d
char * content = wrapAndSerialise(request);
- ArrayJanitor<char> janContent(content);
// First we need to serialise
@@ -92,24 +92,16 @@ DOMDocument * XSECSOAPRequestorSimple::d
// and transcode them back to ASCII.
//
const XMLCh* hostName = m_uri.getHost();
- char* hostNameAsCharStar = XMLString::transcode(hostName);
- ArrayJanitor<char> janBuf1(hostNameAsCharStar);
+ XSECAutoPtrChar hostNameAsCharStar(hostName);
const XMLCh* path = m_uri.getPath();
- char* pathAsCharStar = XMLString::transcode(path);
- ArrayJanitor<char> janBuf2(pathAsCharStar);
+ XSECAutoPtrChar pathAsCharStar(path);
const XMLCh* fragment = m_uri.getFragment();
- char* fragmentAsCharStar = 0;
- if (fragment)
- fragmentAsCharStar = XMLString::transcode(fragment);
- ArrayJanitor<char> janBuf3(fragmentAsCharStar);
+ XSECAutoPtrChar fragmentAsCharStar(fragment);
const XMLCh* query = m_uri.getQueryString();
- char* queryAsCharStar = 0;
- if (query)
- queryAsCharStar = XMLString::transcode(query);
- ArrayJanitor<char> janBuf4(queryAsCharStar);
+ XSECAutoPtrChar queryAsCharStar(query);
unsigned short portNumber = (unsigned short) m_uri.getPort();
@@ -124,11 +116,12 @@ DOMDocument * XSECSOAPRequestorSimple::d
struct sockaddr_in sa;
- if ((hostEntPtr = XSECBinHTTPURIInputStream::gethostbyname(hostNameAsCharStar)) == NULL)
+ if ((hostEntPtr = XSECBinHTTPURIInputStream::gethostbyname(hostNameAsCharStar.get())) == NULL)
{
- unsigned long numAddress = XSECBinHTTPURIInputStream::inet_addr(hostNameAsCharStar);
+ unsigned long numAddress = XSECBinHTTPURIInputStream::inet_addr(hostNameAsCharStar.get());
if (numAddress == INADDR_NONE)
{
+ XSEC_RELEASE_XMLCH(content);
// Call WSAGetLastError() to get the error number.
throw XSECException(XSECException::HTTPURIInputStreamError,
"Error reported resolving IP address");
@@ -137,6 +130,7 @@ DOMDocument * XSECSOAPRequestorSimple::d
XSECBinHTTPURIInputStream::gethostbyaddr((const char *) &numAddress,
sizeof(unsigned long), AF_INET)) == NULL)
{
+ XSEC_RELEASE_XMLCH(content);
// Call WSAGetLastError() to get the error number.
throw XSECException(XSECException::HTTPURIInputStreamError,
"Error reported resolving IP address");
@@ -151,6 +145,7 @@ DOMDocument * XSECSOAPRequestorSimple::d
SOCKET s = XSECBinHTTPURIInputStream::socket(hostEntPtr->h_addrtype, SOCK_STREAM, 0);
if (s == INVALID_SOCKET)
{
+ XSEC_RELEASE_XMLCH(content);
// Call WSAGetLastError() to get the error number.
throw XSECException(XSECException::HTTPURIInputStreamError,
"Error reported creating socket");
@@ -159,6 +154,7 @@ DOMDocument * XSECSOAPRequestorSimple::d
if (XSECBinHTTPURIInputStream::connect((unsigned short) s,
(struct sockaddr *) &sa, sizeof(sa)) == SOCKET_ERROR)
{
+ XSEC_RELEASE_XMLCH(content);
// Call WSAGetLastError() to get the error number.
throw XSECException(XSECException::HTTPURIInputStreamError,
"Error reported connecting to socket");
@@ -176,18 +172,18 @@ DOMDocument * XSECSOAPRequestorSimple::d
memset(fBuffer, 0, sizeof(fBuffer));
strcpy(fBuffer, "POST ");
- strcat(fBuffer, pathAsCharStar);
+ strcat(fBuffer, pathAsCharStar.get());
- if (queryAsCharStar != 0)
+ if (queryAsCharStar.get() != 0)
{
// Tack on a ? before the fragment
strcat(fBuffer,"?");
- strcat(fBuffer, queryAsCharStar);
+ strcat(fBuffer, queryAsCharStar.get());
}
- if (fragmentAsCharStar != 0)
+ if (fragmentAsCharStar.get() != 0)
{
- strcat(fBuffer, fragmentAsCharStar);
+ strcat(fBuffer, fragmentAsCharStar.get());
}
strcat(fBuffer, " HTTP/1.0\r\n");
@@ -195,7 +191,7 @@ DOMDocument * XSECSOAPRequestorSimple::d
strcat(fBuffer, "Host: ");
- strcat(fBuffer, hostNameAsCharStar);
+ strcat(fBuffer, hostNameAsCharStar.get());
if (portNumber != 80)
{
strcat(fBuffer, ":");
@@ -223,6 +219,7 @@ DOMDocument * XSECSOAPRequestorSimple::d
if ((aLent = XSECBinHTTPURIInputStream::send((unsigned short) s,
fBuffer, lent, 0)) != lent)
{
+ XSEC_RELEASE_XMLCH(content);
// Call WSAGetLastError() to get the error number.
throw XSECException(XSECException::HTTPURIInputStreamError,
"Error reported writing to socket");
@@ -234,10 +231,12 @@ DOMDocument * XSECSOAPRequestorSimple::d
if ((aLent = XSECBinHTTPURIInputStream::send((unsigned short) s,
content, lent, 0)) != lent)
{
+ XSEC_RELEASE_XMLCH(content);
// Call WSAGetLastError() to get the error number.
throw XSECException(XSECException::HTTPURIInputStreamError,
"Error reported writing to socket");
}
+ XSEC_RELEASE_XMLCH(content);
//
// get the response, check the http header for errors from the server.
@@ -339,7 +338,6 @@ DOMDocument * XSECSOAPRequestorSimple::d
redirectBuf[q] = '\0';
// Try to find this location
- m_uri;
m_uri = XMLUri(XMLString::transcode(redirectBuf));
return doRequest(request);
Modified: xml/security/trunk/c/src/utils/winutils/XSECURIResolverGenericWin32.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/utils/winutils/XSECURIResolverGenericWin32.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/utils/winutils/XSECURIResolverGenericWin32.cpp (original)
+++ xml/security/trunk/c/src/utils/winutils/XSECURIResolverGenericWin32.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -82,6 +82,8 @@ XERCES_CPP_NAMESPACE_USE
#include <xsec/utils/winutils/XSECBinHTTPURIInputStream.hpp>
#include <xsec/utils/XSECDOMUtils.hpp>
+#include "../../utils/XSECAutoPtr.hpp"
+
static const XMLCh gFileScheme[] = {
chLatin_f,
@@ -125,7 +127,7 @@ mp_baseURI(NULL) {
XSECURIResolverGenericWin32::~XSECURIResolverGenericWin32() {
if (mp_baseURI != NULL)
- XMLString::release(&mp_baseURI);
+ XSEC_RELEASE_XMLCH(mp_baseURI);
}
@@ -157,27 +159,25 @@ BinInputStream * XSECURIResolverGenericW
// XMLUri relative paths are broken, so we need to strip out ".."
// Doesn't fix the whole problem, but gets us somewhere
- XMLCh * b = XMLString::replicate(mp_baseURI);
- ArrayJanitor<XMLCh> j_b(b);
- XMLCh * r = XMLString::replicate(uri);
- ArrayJanitor<XMLCh> j_r(r);
+ XSECAutoPtrXMLCh b(mp_baseURI);
+ XSECAutoPtrXMLCh r(uri);
int index = 0;
- while (XMLString::startsWith(&(r[index]), DOTDOT_SLASH)) {
+ while (XMLString::startsWith(&(r.get()[index]), DOTDOT_SLASH)) {
// Strip the last segment of the base
- int lastIndex = XMLString::lastIndexOf(b, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash);
+ int lastIndex = XMLString::lastIndexOf(b.get(), XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash);
if (lastIndex > 0)
- b[lastIndex] = 0;
+ const_cast<XMLCh*>(b.get())[lastIndex] = 0;
index += 3;
}
- XSECnew(turi, XMLUri(b));
+ XSECnew(turi, XMLUri(b.get()));
Janitor<XMLUri> j_turi(turi);
- XSECnew(xmluri, XMLUri(turi, &(r[index])));
+ XSECnew(xmluri, XMLUri(turi, &(r.get()[index])));
#else
turi = new XMLUri(mp_baseURI);
@@ -205,11 +205,12 @@ BinInputStream * XSECURIResolverGenericW
// Clean hex escapes
XMLCh * realPath = cleanURIEscapes(xmluri->getPath());
- ArrayJanitor<XMLCh> j_realPath(realPath);
// Localhost
BinFileInputStream* retStrm = new BinFileInputStream(realPath);
+ XSEC_RELEASE_XMLCH(realPath);
+
if (!retStrm->getIsOpen())
{
delete retStrm;
@@ -272,7 +273,7 @@ XSECURIResolver * XSECURIResolverGeneric
void XSECURIResolverGenericWin32::setBaseURI(const XMLCh * uri) {
if (mp_baseURI != NULL)
- XMLString::release(&mp_baseURI);
+ XSEC_RELEASE_XMLCH(mp_baseURI);
mp_baseURI = XMLString::replicate(uri);
Modified: xml/security/trunk/c/src/xenc/impl/XENCAlgorithmHandlerDefault.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/xenc/impl/XENCAlgorithmHandlerDefault.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/xenc/impl/XENCAlgorithmHandlerDefault.cpp (original)
+++ xml/security/trunk/c/src/xenc/impl/XENCAlgorithmHandlerDefault.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 The Apache Software Foundation.
+ * Copyright 2003-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,6 +36,8 @@
#include <xsec/framework/XSECError.hpp>
#include <xsec/utils/XSECDOMUtils.hpp>
+#include "../../utils/XSECAutoPtr.hpp"
+
#include "XENCAlgorithmHandlerDefault.hpp"
#include <xercesc/dom/DOM.hpp>
@@ -595,10 +597,9 @@ unsigned int XENCAlgorithmHandlerDefault
unsigned int sz = 0;
if (oaepParams != NULL) {
- char * oaepParamsStr = XMLString::transcode(oaepParams);
- ArrayJanitor<char> j_oaepParamsStr(oaepParamsStr);
+ XSECAutoPtrChar oaepParamsStr(oaepParams);
- unsigned int bufLen = (unsigned int) strlen(oaepParamsStr);
+ unsigned int bufLen = (unsigned int) strlen(oaepParamsStr.get());
oaepParamsBuf = new unsigned char[bufLen];
ArrayJanitor<unsigned char> j_oaepParamsBuf(oaepParamsBuf);
@@ -607,7 +608,7 @@ unsigned int XENCAlgorithmHandlerDefault
Janitor<XSECCryptoBase64> j_b64(b64);
b64->decodeInit();
- sz = b64->decode((unsigned char *) oaepParamsStr, bufLen, oaepParamsBuf, bufLen);
+ sz = b64->decode((unsigned char *) oaepParamsStr.get(), bufLen, oaepParamsBuf, bufLen);
sz += b64->decodeFinish(&oaepParamsBuf[sz], bufLen - sz);
rsa->setOAEPparams(oaepParamsBuf, sz);
@@ -800,10 +801,9 @@ bool XENCAlgorithmHandlerDefault::doRSAE
sz += b64->encodeFinish(&oaepParamsB64[sz], (oaepParamsLen * 2) - sz);
oaepParamsB64[sz] = '\0';
- XMLCh * xBuf = XMLString::transcode((char *) oaepParamsB64);
- ArrayJanitor<XMLCh> j_xBuf(xBuf);
+ XSECAutoPtrXMLCh xBuf((char *) oaepParamsB64);
- encryptionMethod->setOAEPparams(xBuf);
+ encryptionMethod->setOAEPparams(xBuf.get());
}
Modified: xml/security/trunk/c/src/xenc/impl/XENCCipherImpl.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/xenc/impl/XENCCipherImpl.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/xenc/impl/XENCCipherImpl.cpp (original)
+++ xml/security/trunk/c/src/xenc/impl/XENCCipherImpl.cpp Wed Jun 23 13:31:56 2010
@@ -287,7 +287,7 @@ DOMDocumentFragment * XENCCipherImpl::de
char* trailer = transcodeToUTF8(sb.rawXMLChBuffer());
sbt.sbStrcatIn(trailer);
- XMLString::release(&trailer);
+ XSEC_RELEASE_XMLCH(trailer);
// Now we need to parse the document
XercesDOMParser* parser = NULL;
@@ -306,11 +306,11 @@ DOMDocumentFragment * XENCCipherImpl::de
catch (...) {
delete memIS;
delete parser;
- XMLString::release(&prefix);
+ XSEC_RELEASE_XMLCH(prefix);
throw;
}
- XMLString::release(&prefix);
+ XSEC_RELEASE_XMLCH(prefix);
Janitor<XercesDOMParser> j_parser(parser);
Janitor<MemBufInputSource> j_memIS(memIS);
Modified: xml/security/trunk/c/src/xenc/impl/XENCEncryptedTypeImpl.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/xenc/impl/XENCEncryptedTypeImpl.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/xenc/impl/XENCEncryptedTypeImpl.cpp (original)
+++ xml/security/trunk/c/src/xenc/impl/XENCEncryptedTypeImpl.cpp Wed Jun 23 13:31:56 2010
@@ -30,6 +30,7 @@
#include "XENCCipherDataImpl.hpp"
#include "XENCEncryptedTypeImpl.hpp"
#include "XENCEncryptionMethodImpl.hpp"
+#include "../../utils/XSECAutoPtr.hpp"
#include <xsec/xenc/XENCEncryptedKey.hpp>
@@ -323,13 +324,13 @@ TXFMChain * XENCEncryptedTypeImpl::creat
// Given we already have this in memory, we transcode to
// local code page and then transform
- char* b64 = XMLString::transcode(mp_cipherData->getCipherValue()->getCipherString());
+ XSECAutoPtrChar b64(mp_cipherData->getCipherValue()->getCipherString());
try {
TXFMSB *sb;
XSECnew(sb, TXFMSB(mp_env->getParentDocument()));
- sb->setInput(safeBuffer(b64));
+ sb->setInput(safeBuffer(b64.get()));
// Create a chain
XSECnew(chain, TXFMChain(sb));
@@ -340,12 +341,9 @@ TXFMChain * XENCEncryptedTypeImpl::creat
chain->appendTxfm(tb64);
- XMLString::release(&b64);
-
return chain;
}
catch (...) {
- XMLString::release(&b64);
throw;
}
}
Modified: xml/security/trunk/c/src/xkms/XKMSConstants.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/xkms/XKMSConstants.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/xkms/XKMSConstants.cpp (original)
+++ xml/security/trunk/c/src/xkms/XKMSConstants.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,14 +30,6 @@
XERCES_CPP_NAMESPACE_USE
-#undef XSEC_RELEASE_XMLCH
-
-#if defined (XSEC_XERCES_XMLSTRING_HAS_RELEASE)
-# define XSEC_RELEASE_XMLCH(x) XMLString::release((XMLCh **) &x)
-#else
-# define XSEC_RELEASE_XMLCH(x) delete[] x;
-#endif
-
// --------------------------------------------------------------------------------
// Constant Strings Storage
@@ -1821,8 +1813,13 @@ void XKMSConstants::create() {
void XKMSConstants::destroy() {
- XSEC_RELEASE_XMLCH(s_unicodeStrURIXKMS);
- XSEC_RELEASE_XMLCH(s_unicodeStrURISOAP11);
- XSEC_RELEASE_XMLCH(s_unicodeStrURISOAP12);
-
+ XMLCh* temp1 = const_cast<XMLCh*>(s_unicodeStrURIXKMS);
+ XMLCh* temp2 = const_cast<XMLCh*>(s_unicodeStrURISOAP11);
+ XMLCh* temp3 = const_cast<XMLCh*>(s_unicodeStrURISOAP12);
+ XSEC_RELEASE_XMLCH(temp1);
+ XSEC_RELEASE_XMLCH(temp2);
+ XSEC_RELEASE_XMLCH(temp3);
+ s_unicodeStrURIXKMS = NULL;
+ s_unicodeStrURISOAP11 = NULL;
+ s_unicodeStrURISOAP12 = NULL;
}
Modified: xml/security/trunk/c/src/xkms/impl/XKMSKeyBindingAbstractTypeImpl.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/xkms/impl/XKMSKeyBindingAbstractTypeImpl.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/xkms/impl/XKMSKeyBindingAbstractTypeImpl.cpp (original)
+++ xml/security/trunk/c/src/xkms/impl/XKMSKeyBindingAbstractTypeImpl.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2005 The Apache Software Foundation.
+ * Copyright 2004-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -366,14 +366,12 @@ void XKMSKeyBindingAbstractTypeImpl::set
// Setup the id
XMLCh * myId;
- if (id != NULL)
- myId = XMLString::replicate(id);
- else
+ if (id == NULL)
myId = generateId();
- ArrayJanitor<XMLCh> j_myId(myId);
-
- mp_keyBindingAbstractTypeElement->setAttributeNS(NULL, XKMSConstants::s_tagId, myId);
+ mp_keyBindingAbstractTypeElement->setAttributeNS(NULL, XKMSConstants::s_tagId, id ? id : myId);
+ if (id == NULL)
+ XSEC_RELEASE_XMLCH(myId);
#if defined (XSEC_XERCES_HAS_SETIDATTRIBUTE)
mp_keyBindingAbstractTypeElement->setIdAttributeNS(NULL, XKMSConstants::s_tagId);
#endif
Modified: xml/security/trunk/c/src/xkms/impl/XKMSMessageAbstractTypeImpl.cpp
URL: http://svn.apache.org/viewvc/xml/security/trunk/c/src/xkms/impl/XKMSMessageAbstractTypeImpl.cpp?rev=957190&r1=957189&r2=957190&view=diff
==============================================================================
--- xml/security/trunk/c/src/xkms/impl/XKMSMessageAbstractTypeImpl.cpp (original)
+++ xml/security/trunk/c/src/xkms/impl/XKMSMessageAbstractTypeImpl.cpp Wed Jun 23 13:31:56 2010
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2005 The Apache Software Foundation.
+ * Copyright 2004-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -216,14 +216,12 @@ DOMElement * XKMSMessageAbstractTypeImpl
// Setup the id
XMLCh * myId;
- if (id != NULL)
- myId = XMLString::replicate(id);
- else
+ if (id == NULL)
myId = generateId();
- ArrayJanitor<XMLCh> j_myId(myId);
-
- mp_messageAbstractTypeElement->setAttributeNS(NULL, XKMSConstants::s_tagId, myId);
+ mp_messageAbstractTypeElement->setAttributeNS(NULL, XKMSConstants::s_tagId, id ? id : myId);
+ if (id == NULL)
+ XSEC_RELEASE_XMLCH(myId);
#if defined (XSEC_XERCES_HAS_SETIDATTRIBUTE)
mp_messageAbstractTypeElement->setIdAttributeNS(NULL, XKMSConstants::s_tagId);
#endif