diff --git a/crypto/ct/ct_log.c b/crypto/ct/ct_log.c index 1a98c7a0bd92f08f656e52b14abc791cc12cc2e5..03cb51ffec1e2040df1b08d26bbfeefea9c99a68 100644 --- a/crypto/ct/ct_log.c +++ b/crypto/ct/ct_log.c @@ -213,8 +213,13 @@ static int ctlog_store_load_log(const char *log_name, int log_name_len, CTLOG_STORE_LOAD_CTX *load_ctx = arg; CTLOG *ct_log; /* log_name may not be null-terminated, so fix that before using it */ - char *tmp = OPENSSL_strndup(log_name, log_name_len); + char *tmp; + /* log_name will be NULL for empty list entries */ + if (log_name == NULL) + return 1; + + tmp = OPENSSL_strndup(log_name, log_name_len); ct_log = ctlog_new_from_conf(load_ctx->conf, tmp); OPENSSL_free(tmp); if (ct_log == NULL) {