comdlg32: Avoid crash when driver name doesn't contain a backslash.

This commit is contained in:
Alexandre Julliard 2012-02-24 12:48:00 +01:00
parent 0e7314a298
commit 67a0db3c38
1 changed files with 6 additions and 2 deletions

View File

@ -321,8 +321,10 @@ static BOOL PRINTDLG_CreateDevNames(HGLOBAL *hmem, const char* DeviceDriverName,
LPDEVNAMES lpDevNames; LPDEVNAMES lpDevNames;
char buf[260]; char buf[260];
DWORD dwBufLen = sizeof(buf); DWORD dwBufLen = sizeof(buf);
const char *p;
DeviceDriverName = strrchr(DeviceDriverName, '\\') + 1; p = strrchr( DeviceDriverName, '\\' );
if (p) DeviceDriverName = p + 1;
size = strlen(DeviceDriverName) + 1 size = strlen(DeviceDriverName) + 1
+ strlen(DeviceName) + 1 + strlen(DeviceName) + 1
@ -366,8 +368,10 @@ static BOOL PRINTDLG_CreateDevNamesW(HGLOBAL *hmem, LPCWSTR DeviceDriverName,
LPDEVNAMES lpDevNames; LPDEVNAMES lpDevNames;
WCHAR bufW[260]; WCHAR bufW[260];
DWORD dwBufLen = sizeof(bufW) / sizeof(WCHAR); DWORD dwBufLen = sizeof(bufW) / sizeof(WCHAR);
const WCHAR *p;
DeviceDriverName = strrchrW(DeviceDriverName, '\\') + 1; p = strrchrW( DeviceDriverName, '\\' );
if (p) DeviceDriverName = p + 1;
size = sizeof(WCHAR)*lstrlenW(DeviceDriverName) + 2 size = sizeof(WCHAR)*lstrlenW(DeviceDriverName) + 2
+ sizeof(WCHAR)*lstrlenW(DeviceName) + 2 + sizeof(WCHAR)*lstrlenW(DeviceName) + 2