From 9fec2e0d9593726e3ebeca98defc5c9ab2d4b578 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 27 May 2019 19:50:22 +0200 Subject: [PATCH] wininet: Fix name and data allocation failure handling in alloc_cookie. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/wininet/cookie.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/wininet/cookie.c b/dlls/wininet/cookie.c index a1ea1deb1bb..30a9e2545b2 100644 --- a/dlls/wininet/cookie.c +++ b/dlls/wininet/cookie.c @@ -238,7 +238,7 @@ static cookie_t *alloc_cookie(substr_t name, substr_t data, FILETIME expiry, FIL { cookie_t *new_cookie; - new_cookie = heap_alloc(sizeof(*new_cookie)); + new_cookie = heap_alloc_zero(sizeof(*new_cookie)); if(!new_cookie) return NULL; @@ -247,9 +247,12 @@ static cookie_t *alloc_cookie(substr_t name, substr_t data, FILETIME expiry, FIL new_cookie->flags = flags; list_init(&new_cookie->entry); - new_cookie->name = heap_strndupW(name.str, name.len); - new_cookie->data = heap_strndupW(data.str, data.len); - if(!new_cookie->name || !new_cookie->data) { + if(name.str && !(new_cookie->name = heap_strndupW(name.str, name.len))) { + delete_cookie(new_cookie); + return NULL; + } + + if(data.str && !(new_cookie->data = heap_strndupW(data.str, data.len))) { delete_cookie(new_cookie); return NULL; }