PR: 2703
Submitted by: Alexey Melnikov <alexey.melnikov@isode.com> Fix some memory and resource leaks in CAPI ENGINE.
This commit is contained in:
parent
bffb696f65
commit
29c33e16ac
@ -1163,6 +1163,7 @@ static int capi_list_containers(CAPI_CTX *ctx, BIO *out)
|
|||||||
{
|
{
|
||||||
CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, CAPI_R_ENUMCONTAINERS_ERROR);
|
CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, CAPI_R_ENUMCONTAINERS_ERROR);
|
||||||
capi_addlasterror();
|
capi_addlasterror();
|
||||||
|
CryptReleaseContext(hprov, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
CAPI_trace(ctx, "Got max container len %d\n", buflen);
|
CAPI_trace(ctx, "Got max container len %d\n", buflen);
|
||||||
@ -1580,6 +1581,8 @@ static int capi_ctx_set_provname(CAPI_CTX *ctx, LPSTR pname, DWORD type, int che
|
|||||||
}
|
}
|
||||||
CryptReleaseContext(hprov, 0);
|
CryptReleaseContext(hprov, 0);
|
||||||
}
|
}
|
||||||
|
if (ctx->cspname)
|
||||||
|
OPENSSL_free(ctx->cspname);
|
||||||
ctx->cspname = BUF_strdup(pname);
|
ctx->cspname = BUF_strdup(pname);
|
||||||
ctx->csptype = type;
|
ctx->csptype = type;
|
||||||
return 1;
|
return 1;
|
||||||
@ -1589,9 +1592,12 @@ static int capi_ctx_set_provname_idx(CAPI_CTX *ctx, int idx)
|
|||||||
{
|
{
|
||||||
LPSTR pname;
|
LPSTR pname;
|
||||||
DWORD type;
|
DWORD type;
|
||||||
|
int res;
|
||||||
if (capi_get_provname(ctx, &pname, &type, idx) != 1)
|
if (capi_get_provname(ctx, &pname, &type, idx) != 1)
|
||||||
return 0;
|
return 0;
|
||||||
return capi_ctx_set_provname(ctx, pname, type, 0);
|
res = capi_ctx_set_provname(ctx, pname, type, 0);
|
||||||
|
OPENSSL_free(pname);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cert_issuer_match(STACK_OF(X509_NAME) *ca_dn, X509 *x)
|
static int cert_issuer_match(STACK_OF(X509_NAME) *ca_dn, X509 *x)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user