SKALE-2002 fix memory leak

parent 05ac01d1
...@@ -34,11 +34,10 @@ ...@@ -34,11 +34,10 @@
#include "EnclaveConstants.h" #include "EnclaveConstants.h"
#include "EnclaveCommon.h" #include "EnclaveCommon.h"
using namespace std; using namespace std;
string *stringFromKey(libff::alt_bn128_Fr *_key) { string *stringFromKey(libff::alt_bn128_Fr *_key) {
mpz_t t; mpz_t t;
mpz_init(t); mpz_init(t);
...@@ -53,7 +52,6 @@ string *stringFromKey(libff::alt_bn128_Fr *_key) { ...@@ -53,7 +52,6 @@ string *stringFromKey(libff::alt_bn128_Fr *_key) {
} }
string *stringFromFq(libff::alt_bn128_Fq *_fq) { string *stringFromFq(libff::alt_bn128_Fq *_fq) {
mpz_t t; mpz_t t;
mpz_init(t); mpz_init(t);
...@@ -68,8 +66,6 @@ string *stringFromFq(libff::alt_bn128_Fq *_fq) { ...@@ -68,8 +66,6 @@ string *stringFromFq(libff::alt_bn128_Fq *_fq) {
} }
string *stringFromG1(libff::alt_bn128_G1 *_g1) { string *stringFromG1(libff::alt_bn128_G1 *_g1) {
_g1->to_affine_coordinates(); _g1->to_affine_coordinates();
auto sX = stringFromFq(&_g1->X); auto sX = stringFromFq(&_g1->X);
...@@ -81,7 +77,6 @@ string *stringFromG1(libff::alt_bn128_G1 *_g1) { ...@@ -81,7 +77,6 @@ string *stringFromG1(libff::alt_bn128_G1 *_g1) {
delete (sY); delete (sY);
return sG1; return sG1;
} }
...@@ -91,7 +86,8 @@ libff::alt_bn128_Fr *keyFromString(const char *_keyStringHex) { ...@@ -91,7 +86,8 @@ libff::alt_bn128_Fr *keyFromString(const char *_keyStringHex) {
mpz_set_str(skey, _keyStringHex, 16); mpz_set_str(skey, _keyStringHex, 16);
char skey_dec[mpz_sizeinbase (skey, 10) + 2]; char skey_dec[mpz_sizeinbase (skey, 10) + 2];
char * skey_str = mpz_get_str(skey_dec, 10, skey); mpz_get_str(skey_dec, 10, skey);
mpz_clear(skey);
return new libff::alt_bn128_Fr(skey_dec); return new libff::alt_bn128_Fr(skey_dec);
} }
...@@ -108,11 +104,8 @@ void enclave_init() { ...@@ -108,11 +104,8 @@ void enclave_init() {
bool enclave_sign(const char *_keyString, const char *_hashXString, const char *_hashYString, bool enclave_sign(const char *_keyString, const char *_hashXString, const char *_hashYString,
char* sig) { char* sig) {
libff::init_alt_bn128_params(); libff::init_alt_bn128_params();
auto key = keyFromString(_keyString); auto key = keyFromString(_keyString);
if (key == nullptr) { if (key == nullptr) {
...@@ -130,23 +123,15 @@ bool enclave_sign(const char *_keyString, const char *_hashXString, const char * ...@@ -130,23 +123,15 @@ bool enclave_sign(const char *_keyString, const char *_hashXString, const char *
sign.to_affine_coordinates(); sign.to_affine_coordinates();
auto r = stringFromG1(&sign); auto r = stringFromG1(&sign);
memset(sig, 0, BUF_LEN); memset(sig, 0, BUF_LEN);
strncpy(sig, r->c_str(), BUF_LEN); strncpy(sig, r->c_str(), BUF_LEN);
delete r; delete r;
return true; return true;
} }
void carray2Hex(const unsigned char *d, int _len, char* _hexArray) { void carray2Hex(const unsigned char *d, int _len, char* _hexArray) {
...@@ -175,10 +160,8 @@ int char2int(char _input) { ...@@ -175,10 +160,8 @@ int char2int(char _input) {
bool hex2carray2(const char * _hex, uint64_t *_bin_len, bool hex2carray2(const char * _hex, uint64_t *_bin_len,
uint8_t* _bin, const int _max_length ) { uint8_t* _bin, const int _max_length ) {
int len = strnlen(_hex, _max_length);//2 * BUF_LEN); int len = strnlen(_hex, _max_length);//2 * BUF_LEN);
if (len == 0 && len % 2 == 1) if (len == 0 && len % 2 == 1)
return false; return false;
...@@ -196,15 +179,12 @@ bool hex2carray2(const char * _hex, uint64_t *_bin_len, ...@@ -196,15 +179,12 @@ bool hex2carray2(const char * _hex, uint64_t *_bin_len,
} }
return true; return true;
} }
bool hex2carray(const char * _hex, uint64_t *_bin_len, bool hex2carray(const char * _hex, uint64_t *_bin_len,
uint8_t* _bin ) { uint8_t* _bin ) {
int len = strnlen(_hex, 2 * BUF_LEN); int len = strnlen(_hex, 2 * BUF_LEN);
if (len == 0 && len % 2 == 1) if (len == 0 && len % 2 == 1)
return false; return false;
...@@ -222,7 +202,6 @@ bool hex2carray(const char * _hex, uint64_t *_bin_len, ...@@ -222,7 +202,6 @@ bool hex2carray(const char * _hex, uint64_t *_bin_len,
} }
return true; return true;
} }
enum log_level {L_TRACE = 0, L_DEBUG = 1, L_INFO = 2,L_WARNING = 3, L_ERROR = 4 }; enum log_level {L_TRACE = 0, L_DEBUG = 1, L_INFO = 2,L_WARNING = 3, L_ERROR = 4 };
...@@ -230,7 +209,7 @@ enum log_level {L_TRACE = 0, L_DEBUG = 1, L_INFO = 2,L_WARNING = 3, L_ERROR = 4 ...@@ -230,7 +209,7 @@ enum log_level {L_TRACE = 0, L_DEBUG = 1, L_INFO = 2,L_WARNING = 3, L_ERROR = 4
uint32_t globalLogLevel_ = 2; uint32_t globalLogLevel_ = 2;
void logMsg(log_level _level, char* _msg) { void logMsg(log_level _level, const char* _msg) {
if (_level < globalLogLevel_) if (_level < globalLogLevel_)
return; return;
......
...@@ -1302,7 +1302,6 @@ trustedGenDkgSecretAES(int *errStatus, char *errString, uint8_t *encrypted_dkg_s ...@@ -1302,7 +1302,6 @@ trustedGenDkgSecretAES(int *errStatus, char *errString, uint8_t *encrypted_dkg_s
*enc_len = strlen(dkg_secret) + SGX_AESGCM_MAC_SIZE + SGX_AESGCM_IV_SIZE; *enc_len = strlen(dkg_secret) + SGX_AESGCM_MAC_SIZE + SGX_AESGCM_IV_SIZE;
char decr_dkg_secret[DKG_BUFER_LENGTH]; char decr_dkg_secret[DKG_BUFER_LENGTH];
memset(decr_dkg_secret, 0, DKG_BUFER_LENGTH); memset(decr_dkg_secret, 0, DKG_BUFER_LENGTH);
......
...@@ -22,14 +22,10 @@ ...@@ -22,14 +22,10 @@
# @date 2020 # @date 2020
# #
import sys, getpass,os, subprocess, socket, time import getpass, os, subprocess
username = getpass.getuser() username = getpass.getuser()
topDir = os.getcwd() + "/sgxwallet" topDir = os.getcwd() + "/sgxwallet"
print("Starting build push") print("Starting build push")
print("Top directory is:" + topDir) print("Top directory is:" + topDir)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment