From 753d98b3e70f34a52caabbe8db30bf06fc917f38 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Oct 04 2018 12:40:52 +0000 Subject: clang: Null pointer passed as an argument to a 'nonnull' parameter --- diff --git a/src/certsave-n.c b/src/certsave-n.c index 49b2832..972a1df 100644 --- a/src/certsave-n.c +++ b/src/certsave-n.c @@ -72,7 +72,8 @@ add_privkey_to_list(SECKEYPrivateKey **list, SECKEYPrivateKey *key) if ((list == NULL) || (list[i] == NULL)) { newlist = malloc(sizeof(newlist[0]) * (i + 2)); if (newlist != NULL) { - memcpy(newlist, list, sizeof(newlist[0]) * i); + if (list != NULL) + memcpy(newlist, list, sizeof(newlist[0]) * i); newlist[i] = key; newlist[i + 1] = NULL; list = newlist; diff --git a/src/getcert.c b/src/getcert.c index 6417cd4..ddb28de 100644 --- a/src/getcert.c +++ b/src/getcert.c @@ -291,7 +291,8 @@ add_string(void *parent, char ***dest, const char *value) printf(_("Out of memory.\n")); exit(1); } - memcpy(tmp, *dest, sizeof(tmp[0]) * i); + if (*dest) + memcpy(tmp, *dest, sizeof(tmp[0]) * i); tmp[i] = talloc_strdup(tmp, value); i++; tmp[i] = NULL; @@ -1582,8 +1583,8 @@ add_basic_request(enum cm_tdbus_type bus, char *id, { DBusMessage *req, *rep; int i; - struct cm_tdbusm_dict param[28]; - const struct cm_tdbusm_dict *params[29]; + struct cm_tdbusm_dict param[30]; + const struct cm_tdbusm_dict *params[30]; dbus_bool_t b; const char *capath; char *p; diff --git a/src/scep.c b/src/scep.c index 68eae78..b0bd214 100644 --- a/src/scep.c +++ b/src/scep.c @@ -793,8 +793,8 @@ main(int argc, const char **argv) fprintf(stderr, "code_text = \"%s\"\n", cm_submit_h_result_code_text(hctx)); syslog(LOG_DEBUG, "%s %s?%s\n", "GET", url, params2); } - if (strcasecmp(content_type2, - "application/x-x509-ca-cert") != 0) { + if ((content_type2 != NULL) && (strcasecmp(content_type2, + "application/x-x509-ca-cert") != 0)) { if (verbose > 0) { fprintf(stderr, "Content is not " "\"application/x-x509-ca-cert\"" @@ -882,8 +882,8 @@ main(int argc, const char **argv) break; case op_get_cert_initial: case op_pkcsreq: - if (strcasecmp(content_type2, - "application/x-pki-message") == 0) { + if ((content_type2 != NULL) && (strcasecmp(content_type2, + "application/x-pki-message") == 0)) { memset(&cacerts, 0, sizeof(cacerts)); cacerts[0] = cacert ? cacert : racert; cacerts[1] = cacert ? racert : NULL; diff --git a/src/submit-sn.c b/src/submit-sn.c index e9c62b2..ecd78dc 100644 --- a/src/submit-sn.c +++ b/src/submit-sn.c @@ -258,8 +258,11 @@ cm_submit_sn_main(int fd, struct cm_store_ca *ca, struct cm_store_entry *entry, /* Allocate space for one more extension. */ extensions = PORT_ArenaZAlloc(arena, (i + 2) * sizeof(extensions[0])); if (extensions != NULL) { - memcpy(extensions, ucert->extensions, - i * sizeof(extensions[0])); + if (i != 0) { + /* Note that C99 says copy of 0 items is ok, quieting clang */ + memcpy(extensions, ucert->extensions, + i * sizeof(extensions[0])); + } if (found_basic) { extensions[i] = NULL; } else {