Blame SOURCES/043-coverity-happy.patch

60de42
From 60ed0b06e9c5d23441df6c0dde52ba700d30db07 Mon Sep 17 00:00:00 2001
60de42
From: Ken Gaillot <kgaillot@redhat.com>
60de42
Date: Thu, 23 Mar 2017 14:18:15 -0500
60de42
Subject: [PATCH] Low: tools: crm_resource should free result if re-running
60de42
 function returns one
60de42
60de42
Not an issue in practice, but makes static analysis happy
60de42
---
60de42
 tools/crm_resource_runtime.c | 22 ++++++++++++++--------
60de42
 1 file changed, 14 insertions(+), 8 deletions(-)
60de42
60de42
diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c
60de42
index af96909..41f4fc5 100644
60de42
--- a/tools/crm_resource_runtime.c
60de42
+++ b/tools/crm_resource_runtime.c
60de42
@@ -1523,12 +1523,24 @@ cli_resource_execute(const char *rsc_id, const char *rsc_action, GHashTable *ove
60de42
     g_hash_table_insert(params, strdup(XML_ATTR_CRM_VERSION), strdup(CRM_FEATURE_SET));
60de42
 
60de42
     op = resources_action_create(rsc->id, rclass, rprov, rtype, action, 0, -1, params, 0);
60de42
+    if (op == NULL) {
60de42
+        /* Re-run with stderr enabled so we can display a sane error message */
60de42
+        crm_enable_stderr(TRUE);
60de42
+        op = resources_action_create(rsc->id, rclass, rprov, rtype, action, 0,
60de42
+                                     -1, params, 0);
60de42
+
60de42
+        /* We know op will be NULL, but this makes static analysis happy */
60de42
+        services_action_free(op);
60de42
+
60de42
+        return crm_exit(EINVAL);
60de42
+    }
60de42
+
60de42
 
60de42
     if(do_trace) {
60de42
         setenv("OCF_TRACE_RA", "1", 1);
60de42
     }
60de42
 
60de42
-    if(op && override_hash) {
60de42
+    if (override_hash) {
60de42
         GHashTableIter iter;
60de42
         char *name = NULL;
60de42
         char *value = NULL;
60de42
@@ -1541,13 +1553,7 @@ cli_resource_execute(const char *rsc_id, const char *rsc_action, GHashTable *ove
60de42
         }
60de42
     }
60de42
 
60de42
-    if(op == NULL) {
60de42
-        /* Re-run but with stderr enabled so we can display a sane error message */
60de42
-        crm_enable_stderr(TRUE);
60de42
-        resources_action_create(rsc->id, rclass, rprov, rtype, action, 0, -1, params, 0);
60de42
-        return crm_exit(EINVAL);
60de42
-
60de42
-    } else if (services_action_sync(op)) {
60de42
+    if (services_action_sync(op)) {
60de42
         int more, lpc, last;
60de42
         char *local_copy = NULL;
60de42
 
60de42
-- 
60de42
1.8.3.1
60de42