Eric van Beurden : wininet: Check for failed heap allocations.
Alexandre Julliard
julliard at winehq.org
Thu Jun 25 08:13:58 CDT 2009
Module: wine
Branch: master
Commit: f0ce72082d90dfeef4c1b8dc3144908c341b6856
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f0ce72082d90dfeef4c1b8dc3144908c341b6856
Author: Eric van Beurden <ericvb at transgaming.com>
Date: Wed Jun 24 13:31:34 2009 -0400
wininet: Check for failed heap allocations.
---
dlls/wininet/cookie.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/dlls/wininet/cookie.c b/dlls/wininet/cookie.c
index dc77b17..c9bcad0 100644
--- a/dlls/wininet/cookie.c
+++ b/dlls/wininet/cookie.c
@@ -453,6 +453,12 @@ static BOOL set_cookie(LPCWSTR domain, LPCWSTR path, LPCWSTR cookie_name, LPCWST
BOOL expired = FALSE;
value = data = HeapAlloc(GetProcessHeap(), 0, (strlenW(cookie_data) + 1) * sizeof(WCHAR));
+ if (data == NULL)
+ {
+ ERR("could not allocate %zu bytes for the cookie data buffer\n", (strlenW(cookie_data) + 1) * sizeof(WCHAR));
+ return FALSE;
+ }
+
strcpyW(data,cookie_data);
memset(&expiry,0,sizeof(expiry));
@@ -470,7 +476,15 @@ static BOOL set_cookie(LPCWSTR domain, LPCWSTR path, LPCWSTR cookie_name, LPCWST
if (!(ptr = strchrW(ptr,';'))) break;
*ptr++ = 0;
+ if (value != data)
+ HeapFree(GetProcessHeap(), 0, value);
value = HeapAlloc(GetProcessHeap(), 0, (ptr - data) * sizeof(WCHAR));
+ if (value == NULL)
+ {
+ HeapFree(GetProcessHeap(), 0, data);
+ ERR("could not allocate %zu bytes for the cookie value buffer\n", (ptr - data) * sizeof(WCHAR));
+ return FALSE;
+ }
strcpyW(value, data);
while (*ptr == ' ') ptr++; /* whitespace */
More information about the wine-cvs
mailing list