Nikolay Sivov : urlmon: Recognize <head> start tag as text/html MIME type.

Alexandre Julliard julliard at winehq.org
Mon Jan 30 14:05:53 CST 2012


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sun Jan 29 23:33:04 2012 +0300

urlmon: Recognize <head> start tag as text/html MIME type.

---

 dlls/urlmon/tests/misc.c  |   10 +++++++++-
 dlls/urlmon/urlmon_main.c |   20 +++++++++++++-------
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c
index ea634c1..bbb657f 100644
--- a/dlls/urlmon/tests/misc.c
+++ b/dlls/urlmon/tests/misc.c
@@ -563,6 +563,10 @@ static BYTE data83[] = {'.','s','n','d'};
 static BYTE data84[] = {'.','s','n','d',0,'<','h','t','m','l','>',1,1};
 static BYTE data85[] = {'.','S','N','D',0};
 static BYTE data86[] = {0x49,0x49,0x2a,0xff};
+static BYTE data87[] = {' ','<','h','e','a','d'};
+static BYTE data88[] = {' ','<','h','e','a','d','>'};
+static BYTE data89[] = {'\t','\r','<','h','e','a','d','>'};
+static BYTE data90[] = {'<','H','e','A','d','>'};
 
 static const struct {
     BYTE *data;
@@ -654,7 +658,11 @@ static const struct {
     {data83, sizeof(data83), mimeTextPlain},
     {data84, sizeof(data84), mimeTextHtml, mimeAudioBasic /* IE8 */},
     {data85, sizeof(data85), mimeTextPlain},
-    {data86, sizeof(data86), mimeImageTiff, NULL, mimeTextPlain}
+    {data86, sizeof(data86), mimeImageTiff, NULL, mimeTextPlain},
+    {data87, sizeof(data87), mimeTextPlain},
+    {data88, sizeof(data88), mimeTextHtml, mimeTextPlain /* IE8 */},
+    {data89, sizeof(data89), mimeTextHtml, mimeTextPlain /* IE8 */},
+    {data90, sizeof(data90), mimeTextHtml, mimeTextPlain /* IE8 */}
 };
 
 static void test_FindMimeFromData(void)
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index edd6930..a3d1c10 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -566,13 +566,19 @@ static BOOL text_html_filter(const BYTE *b, DWORD size)
     if(size < 5)
         return FALSE;
 
-    for(i=0; i < size-5; i++) {
-        if(b[i] == '<'
-           && (b[i+1] == 'h' || b[i+1] == 'H')
-           && (b[i+2] == 't' || b[i+2] == 'T')
-           && (b[i+3] == 'm' || b[i+3] == 'M')
-           && (b[i+4] == 'l' || b[i+4] == 'L'))
-            return TRUE;
+    for(i = 0; i < size-5; i++) {
+        if((b[i] == '<'
+            && (b[i+1] == 'h' || b[i+1] == 'H')
+            && (b[i+2] == 't' || b[i+2] == 'T')
+            && (b[i+3] == 'm' || b[i+3] == 'M')
+            && (b[i+4] == 'l' || b[i+4] == 'L')) ||
+           ((size - i >= 6)
+            &&  b[i]   == '<'
+            && (b[i+1] == 'h' || b[i+1] == 'H')
+            && (b[i+2] == 'e' || b[i+2] == 'E')
+            && (b[i+3] == 'a' || b[i+3] == 'A')
+            && (b[i+4] == 'd' || b[i+4] == 'D')
+            &&  b[i+5] == '>')) return TRUE;
     }
 
     return FALSE;




More information about the wine-cvs mailing list