elm_atspi_bridge: fix bugs reported by coverity 14/229114/2
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Fri, 27 Mar 2020 11:24:42 +0000 (11:24 +0000)
committerShinwoo Kim <cinoo.kim@samsung.com>
Tue, 31 Mar 2020 01:19:47 +0000 (10:19 +0900)
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

Change-Id: I1d86a397a9d983d8b733615ffeaf318d4f0c9437

src/lib/elementary/elm_atspi_bridge.c

index ad5db0a9784ddefdd51bc40911526de41d70d90e..ebd6f982752ff7a5c0b52449fa10d06f23e7cf4f 100644 (file)
@@ -2149,12 +2149,15 @@ _text_string_at_offset_get(const Eldbus_Service_Interface *iface, const Eldbus_M
         return _dbus_invalid_ref_error_new(msg);
      }
 
+   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;
 }
 
@@ -2194,11 +2197,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;
 }
 
@@ -2355,9 +2359,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;
 }