From c39f0f91eb893cf5bf0a0eed7bcc0a06ffa99957 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 18 Sep 2020 18:20:23 +0900 Subject: [PATCH] e_info_server: check ec NULL before use Change-Id: I637abea2c4e1d3c731bdc2febca9b7f860487bf0 Signed-off-by: Junkyeong Kim --- src/bin/e_info_server.c | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/bin/e_info_server.c b/src/bin/e_info_server.c index 314144c4cd..55b46c32dc 100644 --- a/src/bin/e_info_server.c +++ b/src/bin/e_info_server.c @@ -1113,6 +1113,7 @@ _get_win_prop_Rotation(const Evas_Object *evas_obj) int i, count; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); count = ec->e.state.rot.count; astrcat_(&str, "Support(%d) Type(%s)\n", ec->e.state.rot.support, @@ -1228,6 +1229,7 @@ _get_win_prop_Subsurface_Below_Child_List(const Evas_Object *evas_obj) const E_Client *child; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->comp_data) return strdup("None"); @@ -1260,6 +1262,7 @@ _get_win_prop_Subsurface_Child_List(const Evas_Object *evas_obj) const E_Client *child; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->comp_data) return strdup("None"); @@ -1288,6 +1291,7 @@ _get_win_prop_Subsurface_Parent(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->comp_data) return strdup("None"); @@ -1311,6 +1315,7 @@ _get_win_prop_Aux_Hint(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->comp_data) return strdup("None"); @@ -1337,6 +1342,7 @@ _get_win_prop_Video_Client(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (asprintf(&str, "%d", ec->comp_data ? (ec->comp_data->video_client || e_client_video_hw_composition_check((E_Client *)ec)) : 0) < 0) return NULL; @@ -1351,6 +1357,7 @@ _get_win_prop_Ignore_first_unmap(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (asprintf(&str, "%c", ec->ignore_first_unmap) < 0) return NULL; @@ -1362,6 +1369,7 @@ static const char* _get_win_prop_Transformed(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->transformed ? strdup("TRUE") : strdup("FALSE"); } @@ -1370,6 +1378,7 @@ static const char* _get_win_prop_Maximize_override(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->maximize_override ? strdup("TRUE") : strdup("FALSE"); } @@ -1378,6 +1387,7 @@ static const char* _get_win_prop_No_shape_cut(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->no_shape_cut ? strdup("TRUE") : strdup("FALSE"); } @@ -1401,6 +1411,7 @@ static const char* _get_win_prop_Ignored(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->ignored ? strdup("TRUE") : strdup("FALSE"); } @@ -1409,6 +1420,7 @@ static const char* _get_win_prop_Layer_block(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->layer_block ? strdup("TRUE") : strdup("FALSE"); } @@ -1417,6 +1429,7 @@ static const char* _get_win_prop_Shape_changed(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->shape_changed ? strdup("TRUE") : strdup("FALSE"); } @@ -1425,6 +1438,7 @@ static const char* _get_win_prop_Unredirected_single(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->unredirected_single ? strdup("TRUE") : strdup("FALSE"); } @@ -1448,6 +1462,7 @@ static const char* _get_win_prop_Redirected(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->redirected ? strdup("TRUE") : strdup("FALSE"); } @@ -1456,6 +1471,7 @@ static const char* _get_win_prop_Tooltip(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->tooltip ? strdup("TRUE") : strdup("FALSE"); } @@ -1464,6 +1480,7 @@ static const char* _get_win_prop_Dialog(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->dialog ? strdup("TRUE") : strdup("FALSE"); } @@ -1472,6 +1489,7 @@ static const char* _get_win_prop_Input_only(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->input_only ? strdup("TRUE") : strdup("FALSE"); } @@ -1480,6 +1498,7 @@ static const char* _get_win_prop_Override(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->override ? strdup("TRUE") : strdup("FALSE"); } @@ -1491,6 +1510,7 @@ _get_win_prop_E_Transient_Policy(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (asprintf(&str, "%d", ec->transient_policy) < 0) return NULL; @@ -1505,6 +1525,7 @@ _get_win_prop_E_FullScreen_Policy(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (asprintf(&str, "%d", ec->fullscreen_policy) < 0) return NULL; @@ -1519,6 +1540,7 @@ _get_win_prop_E_Maximize_Policy(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (asprintf(&str, "0x%x", ec->maximized) < 0) return NULL; @@ -1530,6 +1552,7 @@ static const char* _get_win_prop_Accept_focus(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->icccm.accepts_focus ? strdup("TRUE") : strdup("FALSE"); } @@ -1538,6 +1561,7 @@ static const char* _get_win_prop_Want_focus(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->want_focus ? strdup("TRUE") : strdup("FALSE"); } @@ -1546,6 +1570,7 @@ static const char* _get_win_prop_Take_focus(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->take_focus ? strdup("TRUE") : strdup("FALSE"); } @@ -1554,6 +1579,7 @@ static const char* _get_win_prop_Re_manage(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->re_manage ? strdup("TRUE") : strdup("FALSE"); } @@ -1577,6 +1603,7 @@ static const char* _get_win_prop_Fullscreen(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->fullscreen ? strdup("TRUE") : strdup("FALSE"); } @@ -1600,6 +1627,7 @@ static const char* _get_win_prop_Urgent(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->urgent ? strdup("TRUE") : strdup("FALSE"); } @@ -1623,6 +1651,7 @@ static const char* _get_win_prop_Sticky(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->sticky ? strdup("TRUE") : strdup("FALSE"); } @@ -1631,6 +1660,7 @@ static const char* _set_win_prop_Iconic(Evas_Object *evas_obj, const char *prop_value) { E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if(strstr(prop_value, "TRUE")) e_client_iconify(ec); @@ -1646,6 +1676,7 @@ static const char* _get_win_prop_Iconic(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->iconic ? strdup("TRUE") : strdup("FALSE"); } @@ -1654,6 +1685,7 @@ static const char* _set_win_prop_Focused(Evas_Object *evas_obj, const char *prop_value) { E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if(strstr(prop_value, "TRUE")) ec->focused = 1; @@ -1669,6 +1701,7 @@ static const char* _get_win_prop_Focused(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->focused ? strdup("TRUE") : strdup("FALSE"); } @@ -1677,6 +1710,7 @@ static const char* _get_win_prop_Moving(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->moving ? strdup("TRUE") : strdup("FALSE"); } @@ -1698,6 +1732,7 @@ static const char* _get_win_prop_Hidden(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->hidden ? strdup("TRUE") : strdup("FALSE"); } @@ -1706,6 +1741,7 @@ static const char* _get_win_prop_32bit(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->argb ? strdup("TRUE") : strdup("FALSE"); } @@ -1714,6 +1750,7 @@ static const char* _set_win_prop_Visible(Evas_Object *evas_obj, const char *prop_value) { E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if(strstr(prop_value, "TRUE")) ec->visible = 1; @@ -1729,6 +1766,7 @@ static const char* _get_win_prop_Visible(const Evas_Object *evas_obj) { const E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); return ec->visible ? strdup("TRUE") : strdup("FALSE"); } @@ -1790,6 +1828,7 @@ _set_win_prop_Layer(Evas_Object *evas_obj, const char *prop_value) { E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); int layer_idx; + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); layer_idx = _e_comp_layer_idx_get(prop_value); if (layer_idx == (E_LAYER_MAX + 1)) @@ -1809,6 +1848,7 @@ _get_win_prop_Layer(const Evas_Object *evas_obj) char layer_name[48] = {0,}; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); e_comp_layer_name_get(ec->layer, layer_name, sizeof(layer_name)); if (asprintf(&str, "[%d, %s]", ec->layer, layer_name) < 0) @@ -1825,6 +1865,7 @@ _get_win_prop_Shape_input(const Evas_Object *evas_obj) int i = 0; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->shape_input_rects || ec->shape_input_rects_num <= 0) return strdup("None"); @@ -1848,6 +1889,7 @@ _get_win_prop_Shape_rects(const Evas_Object *evas_obj) int i = 0; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->shape_rects || ec->shape_rects_num <= 0) return strdup("None"); @@ -1873,6 +1915,7 @@ _get_win_prop_Transients(const Evas_Object *evas_obj) const Eina_List *l; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->transients) return strdup("None"); @@ -1894,6 +1937,7 @@ _get_win_prop_ParentWindowID(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (!ec->parent) return strdup("None"); @@ -1932,6 +1976,7 @@ _get_win_prop_Geometry(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (asprintf(&str, "[%d, %d %dx%d]", ec->x, ec->y, ec->w, ec->h) < 0) return NULL; @@ -1956,6 +2001,7 @@ _get_win_prop_Role(const Evas_Object *evas_obj) char *str = NULL; ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); if (asprintf(&str, "%s", ec->icccm.window_role ?: "NO ROLE") < 0) return NULL; @@ -1967,6 +2013,7 @@ static const char* _set_win_prop_Window_Name(Evas_Object *evas_obj, const char *prop_value) { E_Client *ec = evas_object_data_get(evas_obj, "E_Client"); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); /* TODO: I ain't sure it's a proper order */ if (ec->netwm.name) -- 2.34.1