|
 |
fada68 |
From 02e303ea3ac4a1bef70ad1e79ae402e6ad02ebd3 Mon Sep 17 00:00:00 2001
|
|
 |
fada68 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
 |
fada68 |
Date: Fri, 5 Aug 2016 10:33:35 -0500
|
|
 |
fada68 |
Subject: [PATCH] Low: libcib,libfencing,libtransition: handle memory
|
|
 |
fada68 |
allocation errors without CRM_CHECK()
|
|
 |
fada68 |
|
|
 |
fada68 |
makes coverity happy
|
|
 |
fada68 |
---
|
|
 |
fada68 |
lib/cib/cib_attrs.c | 5 ++++-
|
|
 |
fada68 |
lib/fencing/st_client.c | 6 +++++-
|
|
 |
fada68 |
lib/transition/unpack.c | 6 +++++-
|
|
 |
fada68 |
3 files changed, 14 insertions(+), 3 deletions(-)
|
|
 |
fada68 |
|
|
 |
fada68 |
diff --git a/lib/cib/cib_attrs.c b/lib/cib/cib_attrs.c
|
|
 |
fada68 |
index d929fa2..1e1a369 100644
|
|
 |
fada68 |
--- a/lib/cib/cib_attrs.c
|
|
 |
fada68 |
+++ b/lib/cib/cib_attrs.c
|
|
 |
fada68 |
@@ -93,7 +93,10 @@ find_nvpair_attr_delegate(cib_t * the_cib, const char *attr, const char *section
|
|
 |
fada68 |
}
|
|
 |
fada68 |
|
|
 |
fada68 |
xpath_string = calloc(1, xpath_max);
|
|
 |
fada68 |
- CRM_CHECK(xpath_string != NULL, return -ENOMEM);
|
|
 |
fada68 |
+ if (xpath_string == NULL) {
|
|
 |
fada68 |
+ crm_perror(LOG_CRIT, "Could not create xpath");
|
|
 |
fada68 |
+ return -ENOMEM;
|
|
 |
fada68 |
+ }
|
|
 |
fada68 |
|
|
 |
fada68 |
attr_snprintf(xpath_string, offset, xpath_max, "%.128s", get_object_path(section));
|
|
 |
fada68 |
|
|
 |
fada68 |
diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c
|
|
 |
fada68 |
index 6d4dce1..e1eda35 100644
|
|
 |
fada68 |
--- a/lib/fencing/st_client.c
|
|
 |
fada68 |
+++ b/lib/fencing/st_client.c
|
|
 |
fada68 |
@@ -353,7 +353,11 @@ create_level_registration_xml(const char *node, const char *pattern,
|
|
 |
fada68 |
|
|
 |
fada68 |
crm_trace("Adding %s (%dc) at offset %d", device_list->value, adding, len);
|
|
 |
fada68 |
list = realloc_safe(list, len + adding + 1); /* +1 EOS */
|
|
 |
fada68 |
- CRM_CHECK(list != NULL, free_xml(data); return NULL);
|
|
 |
fada68 |
+ if (list == NULL) {
|
|
 |
fada68 |
+ crm_perror(LOG_CRIT, "Could not create device list");
|
|
 |
fada68 |
+ free_xml(data);
|
|
 |
fada68 |
+ return NULL;
|
|
 |
fada68 |
+ }
|
|
 |
fada68 |
sprintf(list + len, "%s%s", len?",":"", device_list->value);
|
|
 |
fada68 |
len += adding;
|
|
 |
fada68 |
}
|
|
 |
fada68 |
diff --git a/lib/transition/unpack.c b/lib/transition/unpack.c
|
|
 |
fada68 |
index 7a8c656..bdb01d1 100644
|
|
 |
fada68 |
--- a/lib/transition/unpack.c
|
|
 |
fada68 |
+++ b/lib/transition/unpack.c
|
|
 |
fada68 |
@@ -41,7 +41,11 @@ unpack_action(synapse_t * parent, xmlNode * xml_action)
|
|
 |
fada68 |
}
|
|
 |
fada68 |
|
|
 |
fada68 |
action = calloc(1, sizeof(crm_action_t));
|
|
 |
fada68 |
- CRM_CHECK(action != NULL, return NULL);
|
|
 |
fada68 |
+ if (action == NULL) {
|
|
 |
fada68 |
+ crm_perror(LOG_CRIT, "Cannot unpack action");
|
|
 |
fada68 |
+ crm_log_xml_trace(xml_action, "Lost action");
|
|
 |
fada68 |
+ return NULL;
|
|
 |
fada68 |
+ }
|
|
 |
fada68 |
|
|
 |
fada68 |
action->id = crm_parse_int(value, NULL);
|
|
 |
fada68 |
action->type = action_type_rsc;
|
|
 |
fada68 |
--
|
|
 |
fada68 |
1.8.3.1
|
|
 |
fada68 |
|