Skip to content

Commit cad2bbd

Browse files
committed
Add NULL checks on key copy
1 parent 634e547 commit cad2bbd

2 files changed

Lines changed: 24 additions & 8 deletions

File tree

src/internal.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6830,10 +6830,18 @@ int SetSSL_CTX(WOLFSSL* ssl, WOLFSSL_CTX* ctx, int writeDup)
68306830
#endif
68316831
#ifndef WOLFSSL_BLIND_PRIVATE_KEY
68326832
#ifdef WOLFSSL_COPY_KEY
6833-
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,
6834-
ctx->privateKey->length, ctx->privateKey->type,
6835-
ctx->privateKey->heap);
6836-
ssl->buffers.weOwnKey = 1;
6833+
if (ctx->privateKey != NULL) {
6834+
if (ssl->buffers.key != NULL) {
6835+
FreeDer(&ssl->buffers.key);
6836+
}
6837+
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,
6838+
ctx->privateKey->length, ctx->privateKey->type,
6839+
ctx->privateKey->heap);
6840+
ssl->buffers.weOwnKey = 1;
6841+
}
6842+
else {
6843+
ssl->buffers.key = ctx->privateKey;
6844+
}
68376845
#else
68386846
ssl->buffers.key = ctx->privateKey;
68396847
#endif

src/ssl.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20411,10 +20411,18 @@ WOLFSSL_CTX* wolfSSL_set_SSL_CTX(WOLFSSL* ssl, WOLFSSL_CTX* ctx)
2041120411
#endif
2041220412
#ifndef WOLFSSL_BLIND_PRIVATE_KEY
2041320413
#ifdef WOLFSSL_COPY_KEY
20414-
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,
20415-
ctx->privateKey->length, ctx->privateKey->type,
20416-
ctx->privateKey->heap);
20417-
ssl->buffers.weOwnKey = 1;
20414+
if (ctx->privateKey != NULL) {
20415+
if (ssl->buffers.key != NULL) {
20416+
FreeDer(&ssl->buffers.key);
20417+
}
20418+
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,
20419+
ctx->privateKey->length, ctx->privateKey->type,
20420+
ctx->privateKey->heap);
20421+
ssl->buffers.weOwnKey = 1;
20422+
}
20423+
else {
20424+
ssl->buffers.key = ctx->privateKey;
20425+
}
2041820426
#else
2041920427
ssl->buffers.key = ctx->privateKey;
2042020428
#endif

0 commit comments

Comments
 (0)