mshtml: Fix possible NULL pointer access in heap_str*.

This commit is contained in:
André Hentschel 2012-11-17 22:52:32 +01:00 committed by Alexandre Julliard
parent 6804ae26fb
commit e9bfe83683
1 changed files with 13 additions and 6 deletions

View File

@ -1033,7 +1033,8 @@ static inline LPWSTR heap_strdupW(LPCWSTR str)
size = (strlenW(str)+1)*sizeof(WCHAR); size = (strlenW(str)+1)*sizeof(WCHAR);
ret = heap_alloc(size); ret = heap_alloc(size);
memcpy(ret, str, size); if(ret)
memcpy(ret, str, size);
} }
return ret; return ret;
@ -1045,8 +1046,11 @@ static inline LPWSTR heap_strndupW(LPCWSTR str, unsigned len)
if(str) { if(str) {
ret = heap_alloc((len+1)*sizeof(WCHAR)); ret = heap_alloc((len+1)*sizeof(WCHAR));
memcpy(ret, str, len*sizeof(WCHAR)); if(ret)
ret[len] = 0; {
memcpy(ret, str, len*sizeof(WCHAR));
ret[len] = 0;
}
} }
return ret; return ret;
@ -1061,7 +1065,8 @@ static inline char *heap_strdupA(const char *str)
size = strlen(str)+1; size = strlen(str)+1;
ret = heap_alloc(size); ret = heap_alloc(size);
memcpy(ret, str, size); if(ret)
memcpy(ret, str, size);
} }
return ret; return ret;
@ -1076,7 +1081,8 @@ static inline WCHAR *heap_strdupAtoW(const char *str)
len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0); len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
ret = heap_alloc(len*sizeof(WCHAR)); ret = heap_alloc(len*sizeof(WCHAR));
MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len); if(ret)
MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
} }
return ret; return ret;
@ -1089,7 +1095,8 @@ static inline char *heap_strdupWtoA(LPCWSTR str)
if(str) { if(str) {
DWORD size = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL); DWORD size = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
ret = heap_alloc(size); ret = heap_alloc(size);
WideCharToMultiByte(CP_ACP, 0, str, -1, ret, size, NULL, NULL); if(ret)
WideCharToMultiByte(CP_ACP, 0, str, -1, ret, size, NULL, NULL);
} }
return ret; return ret;