free(event);
}
-ANDROID_EVENT_CLIPBOARD* android_event_clipboard_new(void* data, int data_length)
+ANDROID_EVENT_CLIPBOARD* android_event_clipboard_new(const void* data, size_t data_length)
{
ANDROID_EVENT_CLIPBOARD* event;
event = (ANDROID_EVENT_CLIPBOARD*)calloc(1, sizeof(ANDROID_EVENT_CLIPBOARD));
if (data)
{
- event->data = malloc(data_length);
+ event->data = calloc(data_length + 1, sizeof(char));
if (!event->data)
{
}
memcpy(event->data, data, data_length);
- event->data_length = data_length;
+ event->data_length = data_length + 1;
}
return event;
FREERDP_LOCAL ANDROID_EVENT_KEY* android_event_unicodekey_new(UINT16 flags, UINT16 key);
FREERDP_LOCAL ANDROID_EVENT_CURSOR* android_event_cursor_new(UINT16 flags, UINT16 x, UINT16 y);
FREERDP_LOCAL ANDROID_EVENT* android_event_disconnect_new(void);
-FREERDP_LOCAL ANDROID_EVENT_CLIPBOARD* android_event_clipboard_new(void* data, int data_length);
+FREERDP_LOCAL ANDROID_EVENT_CLIPBOARD* android_event_clipboard_new(const void* data, size_t data_length);
FREERDP_LOCAL void android_event_free(ANDROID_EVENT* event);
ANDROID_EVENT* event;
freerdp* inst = (freerdp*)instance;
const jbyte* data = jdata != NULL ? (*env)->GetStringUTFChars(env, jdata, NULL) : NULL;
- int data_length = data ? strlen(data) : 0;
+ const size_t data_length = data ? (*env)->GetStringUTFLength(env, data) : 0;
jboolean ret = JNI_FALSE;
event = (ANDROID_EVENT*)android_event_clipboard_new((void*)data, data_length);