Cbhm_Received_Data *received_data;
char buffer[255];
int len, old_len;
+ void *data;
if (!info) return;
if (!info->data_device_mgr) return;
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;
}
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);
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;
}
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);