Removing memory leaks in rsa setter test
[folly.git] / folly / portability / test / OpenSSLPortabilityTest.cpp
index bb95a75..7c1bbf8 100644 (file)
  */
 
 #include <folly/portability/GTest.h>
-#include <folly/portability/OpenSSL.h>
+#include <folly/ssl/OpenSSLPtrTypes.h>
 
 using namespace folly;
+using namespace folly::ssl;
 using namespace testing;
 
 TEST(OpenSSLPortabilityTest, TestRSASetter) {
-  RSA* r = RSA_new();
-  RSA* public_key = RSA_new();
+  RsaUniquePtr r(RSA_new());
   BIGNUM* n = BN_new();
   BIGNUM* e = BN_new();
   BIGNUM* d = BN_new();
-  const BIGNUM* n_actual = BN_new();
-  const BIGNUM* e_actual = BN_new();
-  const BIGNUM* d_actual = BN_new();
+  BIGNUM* n_actual;
+  BIGNUM* e_actual;
+  BIGNUM* d_actual;
   EXPECT_TRUE(BN_set_bit(n, 1));
   EXPECT_TRUE(BN_set_bit(e, 3));
   EXPECT_TRUE(BN_set_bit(d, 2));
-  RSA_set0_key(r, n, e, d);
-  RSA_get0_key(r, &n_actual, &e_actual, &d_actual);
+  RSA_set0_key(r.get(), n, e, d);
+  RSA_get0_key(
+      r.get(),
+      (const BIGNUM**)&n_actual,
+      (const BIGNUM**)&e_actual,
+      (const BIGNUM**)&d_actual);
   // BN_cmp returns 0 if the two BIGNUMs are equal
   EXPECT_FALSE(BN_cmp(n, n_actual));
   EXPECT_FALSE(BN_cmp(e, e_actual));
   EXPECT_FALSE(BN_cmp(d, d_actual));
 
-  RSA_set0_key(public_key, n, e, nullptr);
-  const BIGNUM* n_public = BN_new();
-  const BIGNUM* e_public = BN_new();
-  RSA_get0_key(public_key, &n_public, &e_public, nullptr);
-  EXPECT_FALSE(BN_cmp(n, n_public));
-  EXPECT_FALSE(BN_cmp(e, e_public));
+  RsaUniquePtr public_key(RSA_new());
+  BIGNUM* n_public = BN_new();
+  BIGNUM* e_public = BN_new();
+  EXPECT_TRUE(BN_set_bit(n_public, 1));
+  EXPECT_TRUE(BN_set_bit(e_public, 3));
+  RSA_set0_key(public_key.get(), n_public, e_public, nullptr);
+  BIGNUM* n_public_actual;
+  BIGNUM* e_public_actual;
+  RSA_get0_key(
+      public_key.get(),
+      (const BIGNUM**)&n_public_actual,
+      (const BIGNUM**)&e_public_actual,
+      nullptr);
+  EXPECT_FALSE(BN_cmp(n_public, n_public_actual));
+  EXPECT_FALSE(BN_cmp(e_public, e_public_actual));
 }