"Mikolaj Zalewski" mikolajz@google.com writes:
@@ -305,8 +312,8 @@ void X11DRV_LoadTabletInfo(HWND hwnddefault) hwndTabletDefault = hwnddefault;
/* Do base initializaion */
- strcpy(gSysContext.lcName, "Wine Tablet Context");
- strcpy(gSysDevice.NAME,"Wine Tablet Device");
- MultiByteToWideChar(CP_UTF8, 0, "Wine Tablet Context", -1, gSysContext.lcName, WT_MAX_NAME_LEN);
- MultiByteToWideChar(CP_UTF8, 0, "Wine Tablet Device", -1, gSysDevice.NAME, WT_MAX_NAME_LEN);
You should define Unicode constants directly, there's no need to convert at run-time.
@@ -695,10 +716,12 @@ int X11DRV_AttachEventQueueToTablet(HWND hOwner) X11DRV_expect_error(data->display,Tablet_ErrorHandler,NULL); for (cur_loop=0; cur_loop < gNumCursors; cur_loop++) {
char cursorNameA[WT_MAX_NAME_LEN]; int event_number=0;
WideCharToMultiByte(CP_UNIXCP, 0, gSysCursor[cur_loop].NAME, -1, cursorNameA, WT_MAX_NAME_LEN, NULL, NULL); for (loop=0; loop < num_devices; loop ++)
if (strcmp(devices[loop].name,gSysCursor[cur_loop].NAME)==0)
if (strncmp(devices[loop].name, cursorNameA, WT_MAX_NAME_LEN)==0)
This doesn't look right; if the name overflows the buffer we shouldn't simply match against a truncated string.