Jacek Caban : mshtml: Add trailing null byte to post data.

Alexandre Julliard julliard at winehq.org
Thu Sep 26 15:44:07 CDT 2013


Module: wine
Branch: master
Commit: 7bcbb93c5a308c5270dacf265dfc03764a8fd0cb
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7bcbb93c5a308c5270dacf265dfc03764a8fd0cb

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Sep 26 17:35:13 2013 +0200

mshtml: Add trailing null byte to post data.

---

 dlls/mshtml/navigate.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 539d2c4..be3d1a8 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -1022,7 +1022,7 @@ static HRESULT read_post_data_stream(nsIInputStream *stream, BOOL contains_heade
     if(NS_FAILED(nsres))
         return E_FAIL;
 
-    post_data = data = GlobalAlloc(0, available);
+    post_data = data = GlobalAlloc(0, available+1);
     if(!data)
         return E_OUTOFMEMORY;
 
@@ -1080,7 +1080,7 @@ static HRESULT read_post_data_stream(nsIInputStream *stream, BOOL contains_heade
     }else if(post_data != data) {
         char *new_data;
 
-        new_data = GlobalAlloc(0, data_len);
+        new_data = GlobalAlloc(0, data_len+1);
         if(new_data)
             memcpy(new_data, post_data, data_len);
         GlobalFree(data);
@@ -1089,6 +1089,7 @@ static HRESULT read_post_data_stream(nsIInputStream *stream, BOOL contains_heade
         post_data = new_data;
     }
 
+    post_data[data_len] = 0;
     request_data->post_data = post_data;
     request_data->post_data_len = data_len;
     TRACE("post_data = %s\n", debugstr_an(request_data->post_data, request_data->post_data_len));
@@ -1877,7 +1878,7 @@ HRESULT create_channelbsc(IMoniker *mon, const WCHAR *headers, BYTE *post_data,
     }
 
     if(post_data) {
-        ret->bsc.request_data.post_data = GlobalAlloc(0, post_data_size);
+        ret->bsc.request_data.post_data = GlobalAlloc(0, post_data_size+1);
         if(!ret->bsc.request_data.post_data) {
             release_request_data(&ret->bsc.request_data);
             IBindStatusCallback_Release(&ret->bsc.IBindStatusCallback_iface);
@@ -1885,6 +1886,7 @@ HRESULT create_channelbsc(IMoniker *mon, const WCHAR *headers, BYTE *post_data,
         }
 
         memcpy(ret->bsc.request_data.post_data, post_data, post_data_size);
+        ((BYTE*)ret->bsc.request_data.post_data)[post_data_size] = 0;
         ret->bsc.request_data.post_data_len = post_data_size;
     }
 




More information about the wine-cvs mailing list