javacommons/security/src/utils/securityutils.cpp
changeset 26 dc7c549001d5
parent 21 2a9601315dfc
child 72 1f0034e370aa
--- a/javacommons/security/src/utils/securityutils.cpp	Fri May 14 15:47:24 2010 +0300
+++ b/javacommons/security/src/utils/securityutils.cpp	Thu May 27 12:49:31 2010 +0300
@@ -494,18 +494,15 @@
     authInfo->signature = new char[sig_len];
     BIO * b64 = BIO_new(BIO_f_base64());
     BIO * mem = BIO_new_mem_buf((char *)sig, sig_len);
-    if ((NULL == b64) || (NULL == mem))
-    {
-        env->ReleaseStringUTFChars(signature,sig);
-        delete[] jcert;
-        jcert = NULL;
+    if (b64 && mem)
+    {    
+        BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
+        BIO_set_close(b64, BIO_CLOSE);
+        BIO_set_close(mem, BIO_CLOSE);
+        mem = BIO_push(b64, mem);
+        authInfo->signature_len = BIO_read(mem, authInfo->signature, sig_len);
+        BIO_free_all(mem);
     }
-    BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
-    BIO_set_close(b64, BIO_CLOSE);
-    BIO_set_close(mem, BIO_CLOSE);
-    mem = BIO_push(b64, mem);
-    authInfo->signature_len = BIO_read(mem, authInfo->signature, sig_len);
-    BIO_free_all(mem);
     env->ReleaseStringUTFChars(signature,sig);
     delete[] jcert;
     jcert = NULL;