|
From: <eli...@us...> - 2006-05-18 12:11:54
|
Revision: 2339 Author: elias_naur Date: 2006-05-18 05:11:37 -0700 (Thu, 18 May 2006) ViewCVS: http://svn.sourceforge.net/java-game-lib/?rev=2339&view=rev Log Message: ----------- Win32: Updated various native string handling to use the new _s "secure" variants. Modified Paths: -------------- trunk/LWJGL/src/native/common/common_tools.c trunk/LWJGL/src/native/win32/display.c trunk/LWJGL/src/native/win32/org_lwjgl_Sys.c Modified: trunk/LWJGL/src/native/common/common_tools.c =================================================================== --- trunk/LWJGL/src/native/common/common_tools.c 2006-05-18 11:43:52 UTC (rev 2338) +++ trunk/LWJGL/src/native/common/common_tools.c 2006-05-18 12:11:37 UTC (rev 2339) @@ -83,7 +83,7 @@ char buffer[BUFFER_SIZE]; jstring str; #ifdef WIN32 - _vsnprintf(buffer, BUFFER_SIZE, format, ap); + vsnprintf_s(buffer, BUFFER_SIZE, _TRUNCATE, format, ap); #else vsnprintf(buffer, BUFFER_SIZE, format, ap); #endif Modified: trunk/LWJGL/src/native/win32/display.c =================================================================== --- trunk/LWJGL/src/native/win32/display.c 2006-05-18 11:43:52 UTC (rev 2338) +++ trunk/LWJGL/src/native/win32/display.c 2006-05-18 12:11:37 UTC (rev 2339) @@ -263,9 +263,11 @@ jstring getVersion(JNIEnv * env, char *driver) { +#define BUFFER_SIZE 1024 jstring ret = NULL; - TCHAR driverDLL[256] = "\0"; + const char *dll_ext = ".dll"; + TCHAR driverDLL[BUFFER_SIZE] = "\0"; DWORD var = 0; DWORD dwInfoSize; LPVOID lpInfoBuff; @@ -274,8 +276,8 @@ if (driver == NULL) { return NULL; } - strcat(driverDLL, driver); - strcat(driverDLL, ".dll"); + strncat_s(driverDLL, BUFFER_SIZE, driver, strlen(driver)); + strncat_s(driverDLL, BUFFER_SIZE, dll_ext, strlen(dll_ext)); dwInfoSize = GetFileVersionInfoSize(driverDLL, &var); lpInfoBuff = malloc(dwInfoSize); bRetval = GetFileVersionInfo(driverDLL, 0, dwInfoSize, lpInfoBuff); @@ -286,11 +288,11 @@ UINT uiLen = 0; bRetval = VerQueryValue(lpInfoBuff, TEXT("\\"), (void **) &fxdFileInfo, &uiLen); if (bRetval != 0) { - TCHAR version[256]; - TCHAR ms[10], ls[10]; - sprintf(ms, "%d.%d\0", fxdFileInfo->dwProductVersionMS >> 16, fxdFileInfo->dwProductVersionMS & 0xFFFF); - sprintf(ls, "%d.%d\0", fxdFileInfo->dwProductVersionLS >> 16, fxdFileInfo->dwProductVersionLS & 0xFFFF); - sprintf(version, "%s.%s\0", ms, ls); + TCHAR version[BUFFER_SIZE]; + TCHAR ms[BUFFER_SIZE], ls[BUFFER_SIZE]; + _snprintf_s(ms, BUFFER_SIZE, _TRUNCATE, "%d.%d\0", fxdFileInfo->dwProductVersionMS >> 16, fxdFileInfo->dwProductVersionMS & 0xFFFF); + _snprintf_s(ls, BUFFER_SIZE, _TRUNCATE, "%d.%d\0", fxdFileInfo->dwProductVersionLS >> 16, fxdFileInfo->dwProductVersionLS & 0xFFFF); + _snprintf_s(version, BUFFER_SIZE, _TRUNCATE, "%s.%s\0", ms, ls); ret = NewStringNative(env, version); } } Modified: trunk/LWJGL/src/native/win32/org_lwjgl_Sys.c =================================================================== --- trunk/LWJGL/src/native/win32/org_lwjgl_Sys.c 2006-05-18 11:43:52 UTC (rev 2338) +++ trunk/LWJGL/src/native/win32/org_lwjgl_Sys.c 2006-05-18 12:11:37 UTC (rev 2339) @@ -101,15 +101,17 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_NativeSysImplementation_openURL (JNIEnv * env, jobject ignored, jstring url) { +#define BUFFER_SIZE 1024 + const char *std_args = "rundll32 url.dll,FileProtocolHandler "; STARTUPINFO si; PROCESS_INFORMATION pi; char * urlString = GetStringNativeChars(env, url); - char command[256]; - strcpy(command, ""); - strcat(command, "rundll32 url.dll,FileProtocolHandler "); - strncat(command, urlString, 200); // Prevent buffer overflow + char command[BUFFER_SIZE]; + strncpy_s(command, BUFFER_SIZE, "", 1); + strncat_s(command, BUFFER_SIZE, std_args, _TRUNCATE); + strncat_s(command, BUFFER_SIZE, urlString, _TRUNCATE); free(urlString); ZeroMemory( &si, sizeof(si) ); @@ -140,8 +142,6 @@ return JNI_TRUE; } - - const void * getClipboard(int type) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |