|
|
ed0026 |
commit 52146c384a606efb913ef932b23a34ca3105f878
|
|
|
ed0026 |
Author: Andrew Beekhof <andrew@beekhof.net>
|
|
|
ed0026 |
Date: Thu Aug 8 12:50:29 2013 +1000
|
|
|
ed0026 |
|
|
|
ed0026 |
Fix: services: Prevent use-of-NULL in g_error_free
|
|
|
ed0026 |
|
|
|
ed0026 |
diff --git a/lib/services/systemd.c b/lib/services/systemd.c
|
|
|
ed0026 |
index b18f86f..74cf53e 100644
|
|
|
ed0026 |
--- a/lib/services/systemd.c
|
|
|
ed0026 |
+++ b/lib/services/systemd.c
|
|
|
ed0026 |
@@ -264,7 +264,9 @@ systemd_unit_listall(void)
|
|
|
ed0026 |
|
|
|
ed0026 |
if (error || _ret == NULL) {
|
|
|
ed0026 |
crm_info("Call to ListUnits failed: %s", error ? error->message : "unknown");
|
|
|
ed0026 |
- g_error_free(error);
|
|
|
ed0026 |
+ if(error) {
|
|
|
ed0026 |
+ g_error_free(error);
|
|
|
ed0026 |
+ }
|
|
|
ed0026 |
return NULL;
|
|
|
ed0026 |
}
|
|
|
ed0026 |
|
|
|
ed0026 |
@@ -308,9 +310,11 @@ systemd_unit_exists(const char *name)
|
|
|
ed0026 |
pass = systemd_unit_by_name(systemd_proxy, name, &path, NULL, &error);
|
|
|
ed0026 |
|
|
|
ed0026 |
if (error || pass == FALSE) {
|
|
|
ed0026 |
- crm_err("Call to ListUnits failed: %s", error ? error->message : "unknown");
|
|
|
ed0026 |
- g_error_free(error);
|
|
|
ed0026 |
pass = FALSE;
|
|
|
ed0026 |
+ crm_err("Call to ListUnits failed: %s", error ? error->message : "unknown");
|
|
|
ed0026 |
+ if(error) {
|
|
|
ed0026 |
+ g_error_free(error);
|
|
|
ed0026 |
+ }
|
|
|
ed0026 |
|
|
|
ed0026 |
} else {
|
|
|
ed0026 |
crm_trace("Got %s", path);
|
|
|
ed0026 |
@@ -438,7 +442,9 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous)
|
|
|
ed0026 |
if (error && strstr(error->message, "systemd1.NoSuchUnit")) {
|
|
|
ed0026 |
op->rc = PCMK_EXECRA_NOT_INSTALLED;
|
|
|
ed0026 |
}
|
|
|
ed0026 |
- g_error_free(error);
|
|
|
ed0026 |
+ if(error) {
|
|
|
ed0026 |
+ g_error_free(error);
|
|
|
ed0026 |
+ }
|
|
|
ed0026 |
goto cleanup;
|
|
|
ed0026 |
}
|
|
|
ed0026 |
|
|
|
ed0026 |
@@ -480,7 +486,6 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous)
|
|
|
ed0026 |
systemd_daemon_reload(systemd_proxy, &error);
|
|
|
ed0026 |
if(error) {
|
|
|
ed0026 |
g_error_free(error);
|
|
|
ed0026 |
- error = NULL;
|
|
|
ed0026 |
}
|
|
|
ed0026 |
free(override_file);
|
|
|
ed0026 |
free(override_dir);
|
|
|
ed0026 |
@@ -492,7 +497,9 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous)
|
|
|
ed0026 |
unlink(override_file);
|
|
|
ed0026 |
free(override_file);
|
|
|
ed0026 |
systemd_daemon_reload(systemd_proxy, &error);
|
|
|
ed0026 |
- g_error_free(error); error = NULL;
|
|
|
ed0026 |
+ if(error) {
|
|
|
ed0026 |
+ g_error_free(error);
|
|
|
ed0026 |
+ }
|
|
|
ed0026 |
|
|
|
ed0026 |
} else if (g_strcmp0(action, "restart") == 0) {
|
|
|
ed0026 |
action = "RestartUnit";
|
|
|
ed0026 |
diff --git a/lib/services/upstart.c b/lib/services/upstart.c
|
|
|
ed0026 |
index 357152b..f5fa189 100644
|
|
|
ed0026 |
--- a/lib/services/upstart.c
|
|
|
ed0026 |
+++ b/lib/services/upstart.c
|
|
|
ed0026 |
@@ -317,7 +317,9 @@ upstart_job_running(const gchar * name)
|
|
|
ed0026 |
pass = upstart_job_by_name(upstart_proxy, name, &job, NULL, &error);
|
|
|
ed0026 |
if (error || pass == FALSE) {
|
|
|
ed0026 |
crm_err("Call to ListUnits failed: %s", error ? error->message : "unknown");
|
|
|
ed0026 |
- g_error_free(error);
|
|
|
ed0026 |
+ if(error) {
|
|
|
ed0026 |
+ g_error_free(error);
|
|
|
ed0026 |
+ }
|
|
|
ed0026 |
|
|
|
ed0026 |
} else {
|
|
|
ed0026 |
char *instance = get_first_instance(job);
|