100 lines
3.3 KiB
Diff
100 lines
3.3 KiB
Diff
From 753d98b3e70f34a52caabbe8db30bf06fc917f38 Mon Sep 17 00:00:00 2001
|
|
From: Rob Crittenden <rcritten@redhat.com>
|
|
Date: Thu, 13 Sep 2018 11:46:51 -0400
|
|
Subject: [PATCH 13/16] clang: Null pointer passed as an argument to a
|
|
'nonnull' parameter
|
|
|
|
---
|
|
src/certsave-n.c | 3 ++-
|
|
src/getcert.c | 7 ++++---
|
|
src/scep.c | 8 ++++----
|
|
src/submit-sn.c | 7 +++++--
|
|
4 files changed, 15 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/src/certsave-n.c b/src/certsave-n.c
|
|
index 49b28324..972a1dfa 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 6417cd44..ddb28de2 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 68eae788..b0bd214b 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 e9c62b22..ecd78dc0 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 {
|
|
--
|
|
2.14.4
|
|
|