summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>2020-03-27 11:24:42 +0000
committerStefan Schmidt <s.schmidt@samsung.com>2020-03-27 13:15:48 +0100
commit692d697cc3b530443949de60c507a4038b02db01 (patch)
tree3a9b9bea4cd7edcadafee5076580ee5f87560d2f
parent3feacb2b66c1768ab55b0496385266bf879a7657 (diff)
downloadefl-692d697cc3b530443949de60c507a4038b02db01.tar.gz
elm_atspi_bridge: fix bugs reported by coverity
Make sure we free allocated resources in the error path. Prevent usage of uninitilized value. Signed-off-by: Bartlomiej Grzelewski <b.grzelewski@samsung.com> Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D11607
-rw-r--r--src/lib/elementary/elm_atspi_bridge.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c
index 2c34f99635..1a1ccc60a6 100644
--- a/src/lib/elementary/elm_atspi_bridge.c
+++ b/src/lib/elementary/elm_atspi_bridge.c
@@ -1365,11 +1365,12 @@ _text_string_at_offset_get(const Eldbus_Service_Interface *iface, const Eldbus_M
str = str ? str : strdup("");
ret = eldbus_message_method_return_new(msg);
- EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL);
+ EINA_SAFETY_ON_NULL_GOTO(ret, cleanup);
eldbus_message_arguments_append(ret, "sii", str, start, end);
- free(str);
+cleanup:
+ free(str);
return ret;
}
@@ -1409,11 +1410,12 @@ _text_text_get(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
str = str ? str : strdup("");
Eldbus_Message *ret = eldbus_message_method_return_new(msg);
- EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL);
+ EINA_SAFETY_ON_NULL_GOTO(ret, cleanup);
+
eldbus_message_arguments_append(ret, "s", str);
+cleanup:
free(str);
-
return ret;
}
@@ -1570,9 +1572,10 @@ _text_attribute_value_get(const Eldbus_Service_Interface *iface, const Eldbus_Me
}
ret = eldbus_message_method_return_new(msg);
- EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL);
+ EINA_SAFETY_ON_NULL_GOTO(ret, cleanup);
eldbus_message_arguments_append(ret, "siib", value ? value : "", start, end, res);
+cleanup:
free(value);
return ret;
}