Module: wine Branch: master Commit: 1054b9558849e46ecdf5ae5e99a56ca87fc9304d URL: http://source.winehq.org/git/wine.git/?a=commit;h=1054b9558849e46ecdf5ae5e99...
Author: Jacek Caban jacek@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;