X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fpolicy.c;h=61e0ac273b9726ae08ff24a0c3b74a4262d0630e;hb=HEAD;hp=78994fa0ecae140ce629e25474afe78a7fee4964;hpb=98457c49f5d777e4023082363b814826c21092df;p=src%2Fagl-compositor.git diff --git a/src/policy.c b/src/policy.c index 78994fa..61e0ac2 100644 --- a/src/policy.c +++ b/src/policy.c @@ -54,8 +54,14 @@ ivi_policy_state_event_create(uint32_t val, const char *value) struct state_event *ev_st = zalloc(sizeof(*ev_st)); size_t value_len = strlen(value); + if (!ev_st) + return NULL; ev_st->value = val; ev_st->name = zalloc(sizeof(char) * value_len + 1); + if (!ev_st->name) { + free(ev_st); + return NULL; + } memcpy(ev_st->name, value, value_len); return ev_st; @@ -69,6 +75,8 @@ ivi_policy_add_state(struct ivi_policy *policy, uint32_t state, const char *valu return; ev_st = ivi_policy_state_event_create(state, value); + if (!ev_st) + return; wl_list_insert(&policy->states, &ev_st->link); } @@ -80,6 +88,8 @@ ivi_policy_add_event(struct ivi_policy *policy, uint32_t ev, const char *value) return; ev_st = ivi_policy_state_event_create(ev, value); + if (!ev_st) + return; wl_list_insert(&policy->events, &ev_st->link); } @@ -93,6 +103,8 @@ ivi_policy_add_default_states(struct ivi_policy *policy) for (uint32_t i = 0; i < ARRAY_LENGTH(default_states); i ++) { struct state_event *ev_st = ivi_policy_state_event_create(i, default_states[i]); + if (!ev_st) + return; wl_list_insert(&policy->states, &ev_st->link); } } @@ -107,6 +119,8 @@ ivi_policy_add_default_events(struct ivi_policy *policy) for (uint32_t i = 0; i < ARRAY_LENGTH(default_events); i ++) { struct state_event *ev_st = ivi_policy_state_event_create(i, default_events[i]); + if (!ev_st) + return; wl_list_insert(&policy->events, &ev_st->link); } } @@ -173,6 +187,8 @@ ivi_policy_create(struct ivi_compositor *ivi, { struct ivi_policy *policy = zalloc(sizeof(*policy)); + if (!policy) + return NULL; policy->user_data = user_data; policy->ivi = ivi; policy->state_change_in_progress = false; @@ -270,10 +286,6 @@ ivi_policy_add(struct ivi_policy *policy, const char *app_id, uint32_t state, return -1; } - a_policy = zalloc(sizeof(*a_policy)); - if (!a_policy) - return -1; - if (policy->state_change_in_progress) return -1; @@ -286,8 +298,16 @@ ivi_policy_add(struct ivi_policy *policy, const char *app_id, uint32_t state, if (!ivi_policy_state_is_known(state, policy)) return -1; + a_policy = zalloc(sizeof(*a_policy)); + if (!a_policy) + return -1; + app_id_len = strlen(app_id); a_policy->app_id = zalloc(sizeof(char) * app_id_len + 1); + if (!a_policy->app_id) { + free(a_policy); + return -1; + } memcpy(a_policy->app_id, app_id, app_id_len); a_policy->state = state;