char *job;
int ret;
- if (!data)
- return -EINVAL;
+ assert(data);
g_variant_get(parameters, "(uoss)", NULL, &job, NULL, NULL);
if (strcmp(data->job, job) == 0)
finish_action(data, 0, NULL);
-
- return 0;
}
assert(pattern);
GVariant *result;
- int ret;
- char *prefix = NULL;
- char *joined = NULL;
char *patterns[2] = {};
char *unit_states[] = {
"loaded",
"ListUnitsByPatterns",
g_variant_new("(asas)", (char **)unit_states, (char **)patterns));
- if (ret < 0) {
- log_error_errno(ret, "failed to issue ListUnitsByPatterns() call - %m");
- return ret;
+ if (!result) {
+ log_error("Failed to issue ListUnitsByPatterns() call.");
+ return -1;
}
*reply = result;
return 0;
-
-cleanup:
- free(prefix);
- free(joined);
- return ret;
}
-static int parse_unit_info(GVariant *m, char **name)
+static void parse_unit_info(GVariant *m, char **name)
{
assert(m);
char *id;
- int ret;
g_variant_get(
m,
);
*name = id;
- return ret;
}
static int parse_unit_list(GVariant *reply, struct list_head *units)
assert(reply);
assert(units);
- int ret = 0;
char *name;
struct unit_info *u;
GVariantIter iter;
}
u->unit = strdup(name);
- if (!u->unit)
+ if (!u->unit) {
+ free(u);
return -ENOMEM;
+ }
list_add_tail(&u->node, units);
}
- if (ret < 0) {
- log_error_errno(ret, "error parsing unit info - %m");
- return ret;
- }
-
- return ret;
+ return 0;
}
static void unit_control_executed(struct decision_made_event *dm_ev, int result)
assert(whitelist_name);
char *name, *ret, *at;
+ int buf_size;
+
if (strlen(requested_name) > strlen(whitelist_name))
name = requested_name;
else
/* add '*' if wildcard */
if (at) {
at++; /* move the pointer after '@' */
- ret = calloc(1, strlen(name)+ 2); /* one for \0 and one for additional asterisk*/
+ buf_size = strlen(name) + 2;
+ ret = calloc(1, buf_size); /* one for \0 and one for additional asterisk*/
if (!ret)
return NULL;
strncpy(ret, name, at - name);
- sprintf(ret + (at - name), "*%s", at);
+ snprintf(ret + (at - name), buf_size-(at - name), "*%s", at);
} else {
ret = strdup(name);
}
if (clock_gettime(CLOCK_MONOTONIC, &ts) < 0) {
log_error_errno(errno, "Unable to get timestamp : %m");
- return -1;
+ return ;
}
ds_ev_data.event_time = ts.tv_sec;
epc_event_unref(ev);
if (ret)
log_error_errno(ret, "Unable to report event: %m");
- return 0;
+
+ return ;
+
finish:
free(ds_ev_data.event_id);
free(ds_ev_data.sender);
free(ds_ev_data.destination);
if (ds_ev_data.params)
epc_object_destroy(ds_ev_data.params);
-
- return -1;
}
static void signal_cleanup(struct dbus_signal *s)