提交 895cba19 编写于 作者: R Rich Salz

free cleanup 12

Don't check for NULL before calling free function.  This gets:
        NAME_CONSTRAINTS_free GENERAL_SUBTREE_free ECDSA_METHOD_free
        JPAKE_CTX_free OCSP_REQ_CTX_free SCT_free SRP_VBASE_free
        SRP_gN_free SRP_user_pwd_free TXT_DB_free
Reviewed-by: NRichard Levitte <levitte@openssl.org>
上级 b0696f8b
...@@ -600,8 +600,7 @@ int load_cert_crl_http(const char *url, X509 **pcert, X509_CRL **pcrl) ...@@ -600,8 +600,7 @@ int load_cert_crl_http(const char *url, X509 **pcert, X509_CRL **pcrl)
OPENSSL_free(port); OPENSSL_free(port);
if (bio) if (bio)
BIO_free_all(bio); BIO_free_all(bio);
if (rctx) OCSP_REQ_CTX_free(rctx);
OCSP_REQ_CTX_free(rctx);
if (rv != 1) { if (rv != 1) {
BIO_printf(bio_err, "Error loading %s from %s\n", BIO_printf(bio_err, "Error loading %s from %s\n",
pcert ? "certificate" : "CRL", url); pcert ? "certificate" : "CRL", url);
...@@ -1614,8 +1613,7 @@ CA_DB *load_index(char *dbfile, DB_ATTR *db_attr) ...@@ -1614,8 +1613,7 @@ CA_DB *load_index(char *dbfile, DB_ATTR *db_attr)
err: err:
if (dbattr_conf) if (dbattr_conf)
NCONF_free(dbattr_conf); NCONF_free(dbattr_conf);
if (tmpdb) TXT_DB_free(tmpdb);
TXT_DB_free(tmpdb);
BIO_free_all(in); BIO_free_all(in);
return retdb; return retdb;
} }
...@@ -1793,8 +1791,7 @@ int rotate_index(const char *dbfile, const char *new_suffix, ...@@ -1793,8 +1791,7 @@ int rotate_index(const char *dbfile, const char *new_suffix,
void free_index(CA_DB *db) void free_index(CA_DB *db)
{ {
if (db) { if (db) {
if (db->db) TXT_DB_free(db->db);
TXT_DB_free(db->db);
OPENSSL_free(db); OPENSSL_free(db);
} }
} }
......
...@@ -1229,8 +1229,7 @@ static OCSP_RESPONSE *query_responder(BIO *cbio, const char *path, ...@@ -1229,8 +1229,7 @@ static OCSP_RESPONSE *query_responder(BIO *cbio, const char *path,
} }
err: err:
if (ctx) OCSP_REQ_CTX_free(ctx);
OCSP_REQ_CTX_free(ctx);
return rsp; return rsp;
} }
......
...@@ -312,6 +312,8 @@ void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name) ...@@ -312,6 +312,8 @@ void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name)
void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method) void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method)
{ {
if (!ecdsa_method)
return;
if (ecdsa_method->flags & ECDSA_METHOD_FLAG_ALLOCATED) if (ecdsa_method->flags & ECDSA_METHOD_FLAG_ALLOCATED)
OPENSSL_free(ecdsa_method); OPENSSL_free(ecdsa_method);
} }
......
...@@ -125,6 +125,8 @@ JPAKE_CTX *JPAKE_CTX_new(const char *name, const char *peer_name, ...@@ -125,6 +125,8 @@ JPAKE_CTX *JPAKE_CTX_new(const char *name, const char *peer_name,
void JPAKE_CTX_free(JPAKE_CTX *ctx) void JPAKE_CTX_free(JPAKE_CTX *ctx)
{ {
if (!ctx)
return;
JPAKE_CTX_release(ctx); JPAKE_CTX_release(ctx);
OPENSSL_free(ctx); OPENSSL_free(ctx);
} }
......
...@@ -136,6 +136,8 @@ OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline) ...@@ -136,6 +136,8 @@ OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline)
void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx) void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx)
{ {
if (!rctx)
return;
BIO_free(rctx->mem); BIO_free(rctx->mem);
if (rctx->iobuf) if (rctx->iobuf)
OPENSSL_free(rctx->iobuf); OPENSSL_free(rctx->iobuf);
......
...@@ -270,13 +270,14 @@ SRP_VBASE *SRP_VBASE_new(char *seed_key) ...@@ -270,13 +270,14 @@ SRP_VBASE *SRP_VBASE_new(char *seed_key)
return vb; return vb;
} }
int SRP_VBASE_free(SRP_VBASE *vb) void SRP_VBASE_free(SRP_VBASE *vb)
{ {
if (!vb)
return;
sk_SRP_user_pwd_pop_free(vb->users_pwd, SRP_user_pwd_free); sk_SRP_user_pwd_pop_free(vb->users_pwd, SRP_user_pwd_free);
sk_SRP_gN_cache_free(vb->gN_cache); sk_SRP_gN_cache_free(vb->gN_cache);
OPENSSL_free(vb->seed_key); OPENSSL_free(vb->seed_key);
OPENSSL_free(vb); OPENSSL_free(vb);
return 0;
} }
static SRP_gN_cache *SRP_gN_new_init(const char *ch) static SRP_gN_cache *SRP_gN_new_init(const char *ch)
...@@ -457,8 +458,7 @@ int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file) ...@@ -457,8 +458,7 @@ int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file)
SRP_user_pwd_free(user_pwd); SRP_user_pwd_free(user_pwd);
if (tmpdb) TXT_DB_free(tmpdb);
TXT_DB_free(tmpdb);
BIO_free_all(in); BIO_free_all(in);
sk_SRP_gN_free(SRP_gN_tab); sk_SRP_gN_free(SRP_gN_tab);
...@@ -509,7 +509,8 @@ SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username) ...@@ -509,7 +509,8 @@ SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)
BN_bin2bn(digv, SHA_DIGEST_LENGTH, NULL))) BN_bin2bn(digv, SHA_DIGEST_LENGTH, NULL)))
return user; return user;
err:SRP_user_pwd_free(user); err:
SRP_user_pwd_free(user);
return NULL; return NULL;
} }
......
...@@ -149,10 +149,8 @@ static void *v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method, ...@@ -149,10 +149,8 @@ static void *v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method,
memerr: memerr:
X509V3err(X509V3_F_V2I_NAME_CONSTRAINTS, ERR_R_MALLOC_FAILURE); X509V3err(X509V3_F_V2I_NAME_CONSTRAINTS, ERR_R_MALLOC_FAILURE);
err: err:
if (ncons) NAME_CONSTRAINTS_free(ncons);
NAME_CONSTRAINTS_free(ncons); GENERAL_SUBTREE_free(sub);
if (sub)
GENERAL_SUBTREE_free(sub);
return NULL; return NULL;
} }
......
...@@ -161,11 +161,11 @@ static void timestamp_print(BIO *out, SCT_TIMESTAMP timestamp) ...@@ -161,11 +161,11 @@ static void timestamp_print(BIO *out, SCT_TIMESTAMP timestamp)
static void SCT_free(SCT *sct) static void SCT_free(SCT *sct)
{ {
if (sct) { if (!sct)
if (sct->sct) return;
OPENSSL_free(sct->sct); if (sct->sct)
OPENSSL_free(sct); OPENSSL_free(sct->sct);
} OPENSSL_free(sct);
} }
static void SCT_LIST_free(STACK_OF(SCT) *a) static void SCT_LIST_free(STACK_OF(SCT) *a)
......
...@@ -113,7 +113,7 @@ typedef struct SRP_gN_st { ...@@ -113,7 +113,7 @@ typedef struct SRP_gN_st {
DECLARE_STACK_OF(SRP_gN) DECLARE_STACK_OF(SRP_gN)
SRP_VBASE *SRP_VBASE_new(char *seed_key); SRP_VBASE *SRP_VBASE_new(char *seed_key);
int SRP_VBASE_free(SRP_VBASE *vb); void SRP_VBASE_free(SRP_VBASE *vb);
int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file);
SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username);
char *SRP_create_verifier(const char *user, const char *pass, char **salt, char *SRP_create_verifier(const char *user, const char *pass, char **salt,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册