Jacek Caban : mshtml: Don't include null-byte in post data.

Alexandre Julliard julliard at winehq.org
Mon Apr 18 11:10:52 CDT 2011


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Apr 15 19:36:49 2011 +0200

mshtml: Don't include null-byte in post data.

---

 dlls/mshtml/navigate.c |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 35f87dd..990401a 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -886,7 +886,7 @@ static HRESULT read_post_data_stream(nsChannelBSC *This, nsChannel *nschannel)
     if(NS_FAILED(nsres))
         return E_FAIL;
 
-    post_data = data = GlobalAlloc(0, available+1);
+    post_data = data = GlobalAlloc(0, available);
     if(!data)
         return E_OUTOFMEMORY;
 
@@ -896,21 +896,22 @@ static HRESULT read_post_data_stream(nsChannelBSC *This, nsChannel *nschannel)
         return E_FAIL;
     }
 
-    data[data_len++] = 0;
-
     if(nschannel->post_data_contains_headers) {
-        if(data[0] == '\r' && data[1] == '\n') {
+        if(data_len >= 2 && data[0] == '\r' && data[1] == '\n') {
             post_data = data+2;
             data_len -= 2;
         }else {
             WCHAR *headers;
             DWORD size;
-
-            post_data = strstr(data, "\r\n\r\n");
-            if(post_data)
-                post_data += 4;
-            else
-                post_data = data+data_len;
+            char *ptr;
+
+            post_data += data_len;
+            for(ptr = data; ptr+4 < data+data_len; ptr++) {
+                if(!memcmp(ptr, "\r\n\r\n", 4)) {
+                    post_data = ptr+4;
+                    break;
+                }
+            }
 
             data_len -= post_data-data;
 




More information about the wine-cvs mailing list