From: Junkyeong Kim Date: Wed, 23 Aug 2023 10:54:24 +0000 (+0900) Subject: test X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e848337c92d8fd55b09872f21fe8b39282efbb0c;p=platform%2Fcore%2Fuifw%2Fcbhm.git test --- diff --git a/src/cbhm.c b/src/cbhm.c index 3182a6c..99165e8 100644 --- a/src/cbhm.c +++ b/src/cbhm.c @@ -328,6 +328,7 @@ _cbhm_receive_data(Cbhm_Glib_Info *info) Cbhm_Received_Data *received_data; char buffer[255]; int len, old_len; + void *data; if (!info) return; if (!info->data_device_mgr) return; @@ -357,9 +358,18 @@ _cbhm_receive_data(Cbhm_Glib_Info *info) old_len = received_data->len; received_data->len += len; - received_data->data = realloc(received_data->data, received_data->len); - - memcpy(((char *)received_data->data) + old_len, buffer, len); + data = realloc(received_data->data, received_data->len); + if (data) { + received_data->data = data; + memcpy(((char *)received_data->data) + old_len, buffer, len); + } else { + ERR("[CBHM]_cbhm_receive_data: realloc fail\n"); + if (received_data->data != NULL) { + free(received_data->data); + received_data->data = NULL; + } + goto receive_data_done; + } if (len < 255) break; } @@ -369,8 +379,18 @@ _cbhm_receive_data(Cbhm_Glib_Info *info) buffer[0] = '\0'; old_len = received_data->len; received_data->len += 1; - received_data->data = realloc(received_data->data, received_data->len); - memcpy(((char *)received_data->data) + old_len, buffer, 1); + data = realloc(received_data->data, received_data->len); + if (data) { + received_data->data = data; + memcpy(((char *)received_data->data) + old_len, buffer, 1); + } else { + ERR("[CBHM]_cbhm_receive_data: realloc fail\n"); + if (received_data->data != NULL) { + free(received_data->data); + received_data->data = NULL; + } + goto receive_data_done; + } } INF("[CBHM]_cbhm_receive_data: (%d) %s\n", received_data->len, (char *)received_data->data); @@ -391,8 +411,10 @@ _data_offer_offer(void *data, struct wl_data_offer *wl_data_offer, const char *t info = data; if (!info) return; + if (!info->cbhm_data_offer) return; + cbhm_data_offer = info->cbhm_data_offer; - if (cbhm_data_offer == NULL || cbhm_data_offer->data_offer != wl_data_offer) { + if (cbhm_data_offer->data_offer != wl_data_offer) { ERR("[CBHM]_data_offer_offer : offer data is mismatch(saved:%p, current:%p)\n", cbhm_data_offer->data_offer, wl_data_offer); return; } @@ -793,7 +815,7 @@ static gboolean cbhm_gsource_dispatch(GSource *source, GSourceFunc cb, gpointer data) { Cbhm_Glib_Info *info = (Cbhm_Glib_Info *)source; - int wl_ret; + int wl_ret = 0; if (g_source_is_destroyed(source)) { ERR("[CBHM]cbhm_gsource_dispatch: display source(%p) already destroyed\n", source);