From aee1916ab7a92750dad9e3a9b71ddd5859be05d6 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Tue, 5 Nov 2019 17:14:52 +0900 Subject: [PATCH 01/16] tdm_virtual_hwc: fix a typing error Change-Id: I5c9215625205df38e17bc62cb951bf26c2236c75 Signed-off-by: Junkyeong Kim --- backends/virtual/tdm_virtual_hwc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/virtual/tdm_virtual_hwc.c b/backends/virtual/tdm_virtual_hwc.c index 42031cc..cd72e5c 100644 --- a/backends/virtual/tdm_virtual_hwc.c +++ b/backends/virtual/tdm_virtual_hwc.c @@ -182,7 +182,7 @@ _virtual_hwc_apply_policy(tdm_virtual_hwc_data *hwc_data , tdm_hwc_window **comp return; } - /* use onyl target_window */ + /* use only target_window */ for (i = 0; i < num_wnds; i++) { composited_list[i]->validated_type = TDM_HWC_WIN_COMPOSITION_CLIENT; composited_list[i]->lzpos = ZPOS_NONE; -- 2.7.4 From 1f039353972978e5babb3cc6b09d76c82122e7f2 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 6 Nov 2019 14:05:56 +0900 Subject: [PATCH 02/16] tdm_client: add log to check vblank list validation Change-Id: I27bee79bf7f5b7bd87dd0815c9fbf4b0f897439b Signed-off-by: Junkyeong Kim --- client/tdm_client.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/client/tdm_client.c b/client/tdm_client.c index bde7a1f..543805c 100644 --- a/client/tdm_client.c +++ b/client/tdm_client.c @@ -225,6 +225,17 @@ _tdm_client_vblank_cb_stamp(void *data, struct wl_tdm_vblank *wl_tdm_vblank, uin } /* LCOV_EXCL_START */ +static int +_tdm_client_vblank_wait_list_validation_check(tdm_private_client_vblank *private_vblank) +{ + if (private_vblank->wait_list.next == NULL || private_vblank->wait_list.prev == NULL) { + TDM_ERR("vblank(%p) wait_list broken. prev(%p), next(%p) pid(%d)", + private_vblank, private_vblank->wait_list.prev, private_vblank->wait_list.next, getpid()); + } + + return 0; +} + static void _tdm_client_vblank_cb_done(void *data, struct wl_tdm_vblank *wl_tdm_vblank, uint32_t req_id, uint32_t sequence, uint32_t tv_sec, @@ -243,6 +254,8 @@ _tdm_client_vblank_cb_done(void *data, struct wl_tdm_vblank *wl_tdm_vblank, TDM_DBG("vblank(%p) req_id(%u) sequence(%u) time(%.6f)", private_vblank, req_id, sequence, TDM_TIME(tv_sec, tv_usec)); + _tdm_client_vblank_wait_list_validation_check(private_vblank); + LIST_FOR_EACH_ENTRY(w, &private_vblank->wait_list, link) { if (w->req_id != req_id) continue; -- 2.7.4 From bba097bfa37e259cd0d59e00b1f7d24db54fe5e9 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Thu, 12 Dec 2019 13:25:25 +0900 Subject: [PATCH 03/16] tdm_helper: set up error handling when dump png Change-Id: Id3c9d591057b3ab73358ab810fb551452ee7cba0 --- src/tdm_helper.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 804a112..08477f1 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -136,6 +136,13 @@ _tdm_helper_dump_png(const char *file, const void *data, int width, return; } + if (setjmp(png_jmpbuf(pPngStruct))) { + /* if png has problem of writing the file, we get here */ + png_destroy_write_struct(&pPngStruct, &pPngInfo); + fclose(fp); + return; + } + png_init_io(pPngStruct, fp); png_set_IHDR(pPngStruct, pPngInfo, -- 2.7.4 From 00e93c2550c7ecf3af1ee6f6b52efdff19987e11 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Thu, 12 Dec 2019 13:58:27 +0900 Subject: [PATCH 04/16] package version up to 2.10.1 Change-Id: I56cac312280a9da8cf227acc36ca43d6b8936b1e --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index de1a348..35db5b4 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.10.0 +Version: 2.10.1 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From caf84724385f90c3855462fee4258a586d846ef1 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 7 Jan 2020 18:19:37 +0900 Subject: [PATCH 05/16] haltest: silence warning due to dangling-else. Change-Id: I0a0337dd73d2ffb4fbbce2aa1054ffe92795f461 --- haltests/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) diff --git a/haltests/Makefile.am b/haltests/Makefile.am index 278e1ef..c0da6de 100644 --- a/haltests/Makefile.am +++ b/haltests/Makefile.am @@ -22,9 +22,12 @@ tdm_haltests_SOURCES = \ tdm_haltests_SOURCES += \ ../tools/buffers.c +EXTRA_CFLAGS="-Wno-dangling-else" + tdm_haltests_CXXFLAGS = \ $(CXXFLAGS) \ $(TDM_CFLAGS) \ + $(EXTRA_CFLAGS) \ -I../src \ -I../include \ -I../client \ -- 2.7.4 From ec8499987ff827caef610435c4368a1139e7198d Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 7 Jan 2020 18:23:13 +0900 Subject: [PATCH 06/16] silence format truncation warning. add nul byte at the end of array to fix warning about possible truncation by snprintf. Change-Id: Ib399a9a2f2d552e427fa4c240a616e46267df584 --- src/tdm.c | 7 ++++++- src/tdm_layer.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/tdm.c b/src/tdm.c index c7289e8..76c1c5e 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -464,6 +464,7 @@ _tdm_display_update_caps_output(tdm_private_module *private_module, int pipe, char temp[TDM_NAME_LEN]; tdm_error ret; double stamp; + int n; stamp = tdm_helper_get_time(); ret = func_output->output_get_capability(output_backend, caps); @@ -476,7 +477,11 @@ _tdm_display_update_caps_output(tdm_private_module *private_module, int pipe, } /* FIXME: Use model for tdm client to distinguish amoung outputs */ - snprintf(temp, TDM_NAME_LEN, "%s-%d", caps->model, pipe); + n = snprintf(temp, sizeof(temp), "%s-%d", caps->model, pipe); + if ((size_t)n >= sizeof(temp)) { + temp[sizeof(temp) - 1] = '\0'; + } + snprintf(caps->model, TDM_NAME_LEN, "%s", temp); return TDM_ERROR_NONE; diff --git a/src/tdm_layer.c b/src/tdm_layer.c index 22cdb47..488f498 100644 --- a/src/tdm_layer.c +++ b/src/tdm_layer.c @@ -343,6 +343,7 @@ _tdm_layer_dump_buffer(tdm_layer *layer, tbm_surface_h buffer) tdm_private_layer *l = NULL; char *p = bufs; int *remain = &len; + int n; pipe = private_output->pipe; zpos = private_layer->caps.zpos; @@ -354,7 +355,10 @@ _tdm_layer_dump_buffer(tdm_layer *layer, tbm_surface_h buffer) TDM_SNPRINTF(p, remain, "_%p", l->showing_buffer->buffer); } - snprintf(fname, sizeof(fname), "tdm_%d_lyr_%d%s", pipe, zpos, bufs); + n = snprintf(fname, sizeof(fname), "tdm_%d_lyr_%d%s", pipe, zpos, bufs); + if ((size_t)n >= sizeof(fname)) { + fname[sizeof(fname) - 1] = '\0'; + } tbm_surface_internal_dump_buffer(buffer, fname); TDM_DBG("%s dump excute", fname); -- 2.7.4 From 0c0b6f5c9111594f3323dc28381d0788bae24881 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 7 Jan 2020 18:29:19 +0900 Subject: [PATCH 07/16] silence stringio truncation warning give a bigger number as a size and add nul byte at the end of array in case of causing truncation. Change-Id: I8db4fb74774810b83c2f92bd21ed4d1a0943b063 --- src/tdm_helper.c | 2 +- src/tdm_server.c | 11 ++++++----- tools/tdm_test_client.c | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 08477f1..5fe5403 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -295,7 +295,7 @@ tdm_helper_dump_buffer(tbm_surface_h buffer, const char *file) strncat(p, file, len); p += len; *(p++) = '.'; - strncat(p, ext, 3); + strncat(p, ext, 4); p += 3; *p = '\0'; } else { diff --git a/src/tdm_server.c b/src/tdm_server.c index 25ad51d..3c32a54 100644 --- a/src/tdm_server.c +++ b/src/tdm_server.c @@ -148,12 +148,11 @@ _tdm_server_get_process_name(pid_t pid, char *name, unsigned int size) len = fread(pname, sizeof(char), TDM_NAME_LEN, h); if (len == 0) { - strncpy(pname, "NO NAME", 7); - len = 8; + strncpy(pname, "NO NAME", sizeof(pname)); + pname[sizeof(pname) - 1] = '\0'; } - pname[len - 1] = '\0'; - strncpy(name, pname, size - 1); + strncpy(name, pname, size); name[size - 1] = '\0'; fclose(h); @@ -1403,7 +1402,9 @@ _tdm_server_cb_debug(struct wl_client *client, struct wl_resource *resource, con char buffer[TDM_DEBUG_REPLY_MSG_LEN]; int copylen = TDM_MIN(size, sizeof(buffer) - 1); - strncpy(buffer, m, copylen); + strncpy(buffer, m, sizeof(buffer)); + buffer[sizeof(buffer) - 1] = '\0'; + m += copylen; size -= copylen; diff --git a/tools/tdm_test_client.c b/tools/tdm_test_client.c index ab12626..14feed9 100644 --- a/tools/tdm_test_client.c +++ b/tools/tdm_test_client.c @@ -520,7 +520,7 @@ _tdm_client_dump_buffer(tbm_surface_h buffer, const char *file) strncat(p, file, len); p += len; *(p++) = '.'; - strncat(p, ext, 3); + strncat(p, ext, 4); p += 3; *p = '\0'; } else { -- 2.7.4 From 30949018011da89d4e011a0ea6ea0bd79c8041b4 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 14 Jan 2020 14:01:14 +0900 Subject: [PATCH 08/16] fix stringio truncation warning Change-Id: I8248896a4f6f936f252ba45a5f9ef1649ce41ccd --- src/tdm_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tdm_server.c b/src/tdm_server.c index 3c32a54..2343d8d 100644 --- a/src/tdm_server.c +++ b/src/tdm_server.c @@ -1402,7 +1402,7 @@ _tdm_server_cb_debug(struct wl_client *client, struct wl_resource *resource, con char buffer[TDM_DEBUG_REPLY_MSG_LEN]; int copylen = TDM_MIN(size, sizeof(buffer) - 1); - strncpy(buffer, m, sizeof(buffer)); + memcpy(buffer, m, sizeof(buffer)); buffer[sizeof(buffer) - 1] = '\0'; m += copylen; -- 2.7.4 From 4c0adc30035f1823d934cbfbebc4a7afab20941d Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 15 Jan 2020 08:40:44 +0900 Subject: [PATCH 09/16] package version up to 2.10.2 Change-Id: Ic9744b1fa045f7327c36c79c436b24508b066909 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 35db5b4..fb2a9ea 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.10.1 +Version: 2.10.2 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 2f7c9f1b82be987bb25ff2266ee7038cc697df5a Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Tue, 28 Jan 2020 08:28:38 +0900 Subject: [PATCH 10/16] fix the resource leak Change-Id: I7b4f4ee61712092e17427a743dad5f23941e910a --- client/tdm_client.c | 1 + 1 file changed, 1 insertion(+) diff --git a/client/tdm_client.c b/client/tdm_client.c index 543805c..0e50916 100644 --- a/client/tdm_client.c +++ b/client/tdm_client.c @@ -2082,6 +2082,7 @@ tdm_client_create_voutput(tdm_client *client, const char *name, tdm_error *error private_voutput->bufmgr = tbm_bufmgr_init(-1); if (private_voutput->bufmgr == NULL) { /* LCOV_EXCL_START */ + wl_proxy_wrapper_destroy(wrapper); TDM_ERR("fail tbm_bufmgr_init"); free(private_voutput); if (error) -- 2.7.4 From 072feea138c6d18e5f67fd13f3de811a61441390 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 29 Jan 2020 14:50:48 +0900 Subject: [PATCH 11/16] package version up to 2.10.3 Change-Id: I6a2b27980be20b7c2ddaff8226bac5201b9eb339 Signed-off-by: Junkyeong Kim --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index fb2a9ea..6350362 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.10.2 +Version: 2.10.3 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 6556acfea218c79c73c51973f41c981ae538d219 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 31 Jan 2020 15:51:16 +0900 Subject: [PATCH 12/16] tool: change copy length Change-Id: Ie455205297df6ed31c79bd3c0ad276c2c842d9f3 Signed-off-by: Junkyeong Kim --- tools/tdm_test_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tdm_test_server.c b/tools/tdm_test_server.c index 45671ea..3eaf916 100644 --- a/tools/tdm_test_server.c +++ b/tools/tdm_test_server.c @@ -477,7 +477,7 @@ parse_arg_w(tdm_test_server_prop *w, char *arg) { char *end; TDM_EXIT_IF_FAIL(arg != NULL); - end = strtostr(w->name, TDM_PATH_LEN, arg, TDM_DELIM); + end = strtostr(w->name, TDM_NAME_LEN, arg, TDM_DELIM); TDM_EXIT_IF_FAIL(*end == ':'); arg = end + 1; w->value.u32 = strtol(arg, &end, 10); -- 2.7.4 From 1b7ce67e473517578e9c78b4afe05fb0bf2a8361 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 31 Jan 2020 16:55:45 +0900 Subject: [PATCH 13/16] tdm_helper: change format setting sequence Change-Id: Ic5e60219f2f7800948ea722f383f975088197ef6 Signed-off-by: Junkyeong Kim --- src/tdm_helper.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 5fe5403..696fc58 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -873,7 +873,6 @@ _tdm_helper_get_backend_information(tdm_private_module *private_module, char *re tdm_info_layer info; unsigned int format; tdm_size size; - tbm_surface_info_s buf_info; TDM_DBG_RETURN_VAL_IF_FAIL(func_layer->layer_get_info, reply); memset(&info, 0, sizeof info); @@ -883,14 +882,13 @@ _tdm_helper_get_backend_information(tdm_private_module *private_module, char *re if (!private_layer->showing_buffer) continue; - format = tbm_surface_get_format(private_layer->showing_buffer->buffer); - tbm_surface_get_info(private_layer->showing_buffer->buffer, &buf_info); - size.h = tbm_surface_get_width(private_layer->showing_buffer->buffer); size.v = tbm_surface_get_height(private_layer->showing_buffer->buffer); if (info.src_config.format) - format = (info.src_config.format) ? : format; + format = info.src_config.format; + else + format = tbm_surface_get_format(private_layer->showing_buffer->buffer); TDM_SNPRINTF(reply, len, "%d %d %d %p %c%c%c%c %ux%u %ux%u+%u+%u %ux%u+%u+%u %s\n", private_layer->index, -- 2.7.4 From 856926dc88a3fcd8a0f3a578a82bcbba3564ff64 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 31 Jan 2020 17:26:45 +0900 Subject: [PATCH 14/16] package version up to 2.10.4 Change-Id: I62cad3189397bbc39ff7a26c1b63327934f7da55 Signed-off-by: Junkyeong Kim --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 6350362..536fadc 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.10.3 +Version: 2.10.4 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 38e70de1930d700b74e46e8c86c57c6e98e23f12 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 19 Feb 2020 16:46:04 +0900 Subject: [PATCH 15/16] tdm_backend: add pp capability member add vertical preferred align capability. Change-Id: I6df474e55645896c18a62632d670fabee33b6515 Signed-off-by: Junkyeong Kim --- include/tdm_backend.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/tdm_backend.h b/include/tdm_backend.h index f8ddd85..683eed6 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -167,11 +167,12 @@ typedef struct _tdm_caps_pp { tbm_format *formats; /**< The @b newly-allocated array. will be freed in frontend. */ - int min_w; /**< The minimun width */ - int min_h; /**< The minimun height */ - int max_w; /**< The maximum width */ - int max_h; /**< The maximum height */ - int preferred_align; /**< The prefered align */ + int min_w; /**< The minimun width */ + int min_h; /**< The minimun height */ + int max_w; /**< The maximum width */ + int max_h; /**< The maximum height */ + int preferred_align; /**< The prefered align */ + int preferred_align_vertical; /**< The prefered align vertical */ /**< The attach count which a PP object can handle. @since 1.2.0 */ int max_attach_count; -- 2.7.4 From 456043316bb5232f96f21bb1b685ace9196ed421 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 19 Feb 2020 17:03:49 +0900 Subject: [PATCH 16/16] tdm: execute memset before getting pp capability Change-Id: Ia4d298a3d0d3d978badce79300ee7420699f13a6 Signed-off-by: Junkyeong Kim --- src/tdm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tdm.c b/src/tdm.c index 76c1c5e..dc66bbf 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -404,6 +404,8 @@ _tdm_display_update_caps_pp(tdm_private_module *private_module, tdm_caps_pp *cap return TDM_ERROR_BAD_MODULE; } + memset(caps, 0, sizeof(tdm_caps_pp)); + ret = func_display->display_get_pp_capability(private_module->bdata, caps); if (ret != TDM_ERROR_NONE) { TDM_ERR("backend(%s) display_get_pp_capability() failed", private_module->module_data->name); -- 2.7.4