Addresses review comments from richsalz
[openssl.git] / crypto / ct / ct_log.c
index aa3afc4ce36e113490c887597d3f684b237d785e..14f3bcc1fd8c1e6c93700dce194fad946353cd21 100644 (file)
@@ -53,6 +53,9 @@
  *
  */
 
+#include <stdlib.h>
+#include <string.h>
+
 #include <openssl/conf.h>
 #include <openssl/ct.h>
 #include <openssl/err.h>
@@ -88,48 +91,47 @@ typedef struct ctlog_store_load_ctx_st {
  * Creates an empty context for loading a CT log store.
  * It should be populated before use.
  */
-static CTLOG_STORE_LOAD_CTX *CTLOG_STORE_LOAD_CTX_new();
+static CTLOG_STORE_LOAD_CTX *ctlog_store_load_ctx_new();
 
 /*
  * Deletes a CT log store load context.
  * Does not delete any of the fields.
  */
-static void CTLOG_STORE_LOAD_CTX_free(CTLOG_STORE_LOAD_CTX* ctx);
+static void ctlog_store_load_ctx_free(CTLOG_STORE_LOAD_CTX* ctx);
 
-static CTLOG_STORE_LOAD_CTX *CTLOG_STORE_LOAD_CTX_new()
+static CTLOG_STORE_LOAD_CTX *ctlog_store_load_ctx_new()
 {
-    CTLOG_STORE_LOAD_CTX *ctx = OPENSSL_zalloc(sizeof(CTLOG_STORE_LOAD_CTX));
+    CTLOG_STORE_LOAD_CTX *ctx = OPENSSL_zalloc(sizeof(*ctx));
+
     if (ctx == NULL) {
         CTerr(CT_F_CTLOG_STORE_LOAD_CTX_NEW, ERR_R_MALLOC_FAILURE);
         goto err;
     }
 
     return ctx;
-
 err:
-    CTLOG_STORE_LOAD_CTX_free(ctx);
+    ctlog_store_load_ctx_free(ctx);
     return NULL;
 }
 
-static void CTLOG_STORE_LOAD_CTX_free(CTLOG_STORE_LOAD_CTX* ctx)
+static void ctlog_store_load_ctx_free(CTLOG_STORE_LOAD_CTX* ctx)
 {
-    if (ctx == NULL)
-        return;
-
     OPENSSL_free(ctx);
 }
 
 /* Converts a log's public key into a SHA256 log ID */
-static int CT_v1_log_id_from_pkey(EVP_PKEY *pkey,
+static int ct_v1_log_id_from_pkey(EVP_PKEY *pkey,
                                   unsigned char log_id[CT_V1_HASHLEN])
 {
     int ret = 0;
     unsigned char *pkey_der = NULL;
     int pkey_der_len = i2d_PUBKEY(pkey, &pkey_der);
+
     if (pkey_der_len <= 0) {
         CTerr(CT_F_CT_V1_LOG_ID_FROM_PKEY, CT_R_LOG_KEY_INVALID);
         goto err;
     }
+
     SHA256(pkey_der, pkey_der_len, log_id);
     ret = 1;
 err:
@@ -139,12 +141,15 @@ err:
 
 CTLOG_STORE *CTLOG_STORE_new(void)
 {
-    CTLOG_STORE *ret = OPENSSL_malloc(sizeof(CTLOG_STORE));
+    CTLOG_STORE *ret = OPENSSL_zalloc(sizeof(*ret));
+
     if (ret == NULL)
         goto err;
+
     ret->logs = sk_CTLOG_new_null();
     if (ret->logs == NULL)
         goto err;
+
     return ret;
 err:
     CTLOG_STORE_free(ret);
@@ -159,17 +164,11 @@ void CTLOG_STORE_free(CTLOG_STORE *store)
     }
 }
 
-static CTLOG *CTLOG_new_from_conf(const CONF *conf, const char *section)
+static CTLOG *ctlog_new_from_conf(const CONF *conf, const char *section)
 {
     CTLOG *ret = NULL;
-    char *description;
+    char *description = NCONF_get_string(conf, section, "description");
     char *pkey_base64;
-    if (conf == NULL || section == NULL) {
-        CTerr(CT_F_CTLOG_NEW_FROM_CONF, ERR_R_PASSED_NULL_PARAMETER);
-        goto end;
-    }
-
-    description = NCONF_get_string(conf, section, "description");
 
     if (description == NULL) {
         CTerr(CT_F_CTLOG_NEW_FROM_CONF, CT_R_LOG_CONF_MISSING_DESCRIPTION);
@@ -177,7 +176,6 @@ static CTLOG *CTLOG_new_from_conf(const CONF *conf, const char *section)
     }
 
     pkey_base64 = NCONF_get_string(conf, section, "key");
-
     if (pkey_base64 == NULL) {
         CTerr(CT_F_CTLOG_NEW_FROM_CONF, CT_R_LOG_CONF_MISSING_KEY);
         goto end;
@@ -195,20 +193,22 @@ end:
 
 int CTLOG_STORE_load_default_file(CTLOG_STORE *store)
 {
-    char *fpath = (char *)getenv(CTLOG_FILE_EVP);
+    const char *fpath = getenv(CTLOG_FILE_EVP);
+
     if (fpath == NULL)
       fpath = CTLOG_FILE;
+
     return CTLOG_STORE_load_file(store, fpath);
 }
 
-static int CTLOG_STORE_load_log(const char *log_name, int log_name_len, void *arg)
+static int ctlog_store_load_log(const char *log_name, int log_name_len, void *arg)
 {
     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);
-    ct_log = CTLOG_new_from_conf(load_ctx->conf, tmp);
+
+    ct_log = ctlog_new_from_conf(load_ctx->conf, tmp);
     OPENSSL_free(tmp);
     if (ct_log == NULL)
         return 0;
@@ -221,7 +221,8 @@ int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file)
 {
     int ret = -1;
     char *enabled_logs;
-    CTLOG_STORE_LOAD_CTX* load_ctx = CTLOG_STORE_LOAD_CTX_new();
+    CTLOG_STORE_LOAD_CTX* load_ctx = ctlog_store_load_ctx_new();
+
     load_ctx->log_store = store;
     load_ctx->conf = NCONF_new(NULL);
     if (load_ctx->conf == NULL)
@@ -234,11 +235,11 @@ int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file)
     }
 
     enabled_logs = NCONF_get_string(load_ctx->conf, NULL, "enabled_logs");
-    CONF_parse_list(enabled_logs, ',', 1, CTLOG_STORE_load_log, load_ctx);
+    CONF_parse_list(enabled_logs, ',', 1, ctlog_store_load_log, load_ctx);
 
 end:
     NCONF_free(load_ctx->conf);
-    CTLOG_STORE_LOAD_CTX_free(load_ctx);
+    ctlog_store_load_ctx_free(load_ctx);
     return ret;
 }
 
@@ -249,20 +250,19 @@ end:
  */
 CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name)
 {
-    CTLOG *ret = NULL;
-    if (public_key == NULL || name == NULL) {
-        CTerr(CT_F_CTLOG_NEW, ERR_R_PASSED_NULL_PARAMETER);
-        goto err;
-    }
-    ret = CTLOG_new_null();
+    CTLOG *ret = CTLOG_new_null();
+
     if (ret == NULL)
         goto err;
+
     ret->name = OPENSSL_strdup(name);
     if (ret->name == NULL)
         goto err;
+
     ret->public_key = public_key;
-    if (CT_v1_log_id_from_pkey(public_key, ret->log_id) != 1)
+    if (ct_v1_log_id_from_pkey(public_key, ret->log_id) != 1)
         goto err;
+
     return ret;
 err:
     CTLOG_free(ret);
@@ -271,9 +271,11 @@ err:
 
 CTLOG *CTLOG_new_null(void)
 {
-    CTLOG *ret = OPENSSL_zalloc(sizeof(CTLOG));
+    CTLOG *ret = OPENSSL_zalloc(sizeof(*ret));
+
     if (ret == NULL)
         CTerr(CT_F_CTLOG_NEW_NULL, ERR_R_MALLOC_FAILURE);
+
     return ret;
 }
 
@@ -282,11 +284,7 @@ void CTLOG_free(CTLOG *log)
 {
     if (log != NULL) {
         OPENSSL_free(log->name);
-        log->name = NULL;
-
         EVP_PKEY_free(log->public_key);
-        log->public_key = NULL;
-
         OPENSSL_free(log);
     }
 }
@@ -316,15 +314,12 @@ CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store,
                                   size_t log_id_len)
 {
     int i;
-    if (store == NULL) {
-        CTerr(CT_F_CTLOG_STORE_GET0_LOG_BY_ID, ERR_R_PASSED_NULL_PARAMETER);
-        goto end;
-    }
+
     for (i = 0; i < sk_CTLOG_num(store->logs); ++i) {
         CTLOG *log = sk_CTLOG_value(store->logs, i);
         if (memcmp(log->log_id, log_id, log_id_len) == 0)
             return log;
     }
-end:
+
     return NULL;
 }