<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>4312</bug_id>
          
          <creation_ts>2005-08-06 20:35:38 -0700</creation_ts>
          <short_desc>XMLHttpRequest headers that have two CRLF sequences lead to Obj-C exception</short_desc>
          <delta_ts>2019-02-06 09:03:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>16055</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-06 20:35:38 -0700</bug_when>
    <thetext>Just need a check for empty lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16056</commentid>
    <comment_count>1</comment_count>
      <attachid>3250</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-06 20:37:48 -0700</bug_when>
    <thetext>Created attachment 3250
just added a check for empty lines in the code that parses headers

We could do even more to prohibit CRLF in the XMLHttpRequest API before it gets
to this point, but this change is all that&apos;s needed to make the bad symptom go
away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16200</commentid>
    <comment_count>2</comment_count>
      <attachid>3250</attachid>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2005-08-08 09:22:04 -0700</bug_when>
    <thetext>Comment on attachment 3250
just added a check for empty lines in the code that parses headers

This patch looks fine (checking for [line length] rather than line != nil),
plus some formatting changes. Did you notice this bug by inspection, or is
there a test case to make it fail? It seems like an obviously correct
improvement, but a test case would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16203</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-08 09:56:27 -0700</bug_when>
    <thetext>I found this by code inspection after examining a security report about vulnerabilities in other browsers&apos; 
XMLHttpRequest implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26184</commentid>
    <comment_count>4</comment_count>
      <attachid>3250</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-19 09:11:48 -0800</bug_when>
    <thetext>Comment on attachment 3250
just added a check for empty lines in the code that parses headers

r=sullivan+me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27609</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-03 10:45:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/4376060&gt; Unhandled ObjC exception dealing with malformed xmlhttprequest headers 
(4312)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503040</commentid>
    <comment_count>6</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:48 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3250</attachid>
            <date>2005-08-06 20:37:48 -0700</date>
            <delta_ts>2005-12-19 09:11:48 -0800</delta_ts>
            <desc>just added a check for empty lines in the code that parses headers</desc>
            <filename>EmptyLinePatch.txt</filename>
            <type>text/plain</type>
            <size>2379</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGt3cS9LV1FMb2FkZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva3dxL0tXUUxvYWRlci5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMjAKZGlmZiAt
cCAtdSAtdSAtcCAtcjEuMTIwIGt3cS9LV1FMb2FkZXIubW0KLS0tIGt3cS9LV1FMb2FkZXIubW0J
MiBNYXIgMjAwNSAwMjoxNzo1OSAtMDAwMAkxLjEyMAorKysga3dxL0tXUUxvYWRlci5tbQk3IEF1
ZyAyMDA1IDAzOjIwOjI4IC0wMDAwCkBAIC01OSwyNiArNTksMjcgQEAgYm9vbCBLV1FTZXJ2ZVJl
cXVlc3QoTG9hZGVyICpsb2FkZXIsIFJlcQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTlNEaWN0
aW9uYXJ5IChXZWJDb3JlX0V4dHJhcykKKwogKyAoaWQpX3dlYmNvcmVfZGljdGlvbmFyeVdpdGhI
ZWFkZXJTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nCiB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFy
eSAqaGVhZGVycyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07CiAKICAgICBO
U0FycmF5ICpsaW5lcyA9IFtzdHJpbmcgY29tcG9uZW50c1NlcGFyYXRlZEJ5U3RyaW5nOkAiXHJc
biJdOwotCiAgICAgTlNFbnVtZXJhdG9yICplID0gW2xpbmVzIG9iamVjdEVudW1lcmF0b3JdOwot
ICAgIE5TU3RyaW5nICpsaW5lOwotCiAgICAgTlNTdHJpbmcgKmxhc3RIZWFkZXJOYW1lID0gbmls
OwogCi0gICAgd2hpbGUgKChsaW5lID0gKE5TU3RyaW5nICopW2UgbmV4dE9iamVjdF0pICE9IG5p
bCkgewotCWlmICgoW2xpbmUgY2hhcmFjdGVyQXRJbmRleDowXSA9PSAnICcgfHwgW2xpbmUgY2hh
cmFjdGVyQXRJbmRleDowXSA9PSAnXHQnKQotCSAgICAmJiBsYXN0SGVhZGVyTmFtZSAhPSBuaWwp
IHsKLQkgICAgLy8gbGluZXMgdGhhdCBzdGFydCB3aXRoIHNwYWNlIG9yIHRhYiBjb250aW51ZSB0
aGUgcHJldmlvdXMgaGVhZGVyIHZhbHVlCi0JICAgIE5TU3RyaW5nICpvbGRWYWwgPSBbaGVhZGVy
cyBvYmplY3RGb3JLZXk6bGFzdEhlYWRlck5hbWVdOwotCSAgICBBU1NFUlQob2xkVmFsKTsKLQkg
ICAgW2hlYWRlcnMgc2V0T2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAgJUAi
LCBvbGRWYWwsIFtsaW5lIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFj
dGVyU2V0IGNoYXJhY3RlclNldFdpdGhDaGFyYWN0ZXJzSW5TdHJpbmc6QCIgXHQiXV1dCi0JICAg
ICAgICAgICAgICAgIGZvcktleTpsYXN0SGVhZGVyTmFtZV07Ci0JICAgIGNvbnRpbnVlOworICAg
IHdoaWxlIChOU1N0cmluZyAqbGluZSA9IChOU1N0cmluZyAqKVtlIG5leHRPYmplY3RdKSB7CisJ
aWYgKFtsaW5lIGxlbmd0aF0pIHsKKyAgICAgICAgICAgIHVuaWNoYXIgZmlyc3RDaGFyID0gW2xp
bmUgY2hhcmFjdGVyQXRJbmRleDowXTsKKyAgICAgICAgICAgIGlmICgoZmlyc3RDaGFyID09ICcg
JyB8fCBmaXJzdENoYXIgPT0gJ1x0JykgJiYgbGFzdEhlYWRlck5hbWUgIT0gbmlsKSB7CisgICAg
ICAgICAgICAgICAgLy8gbGluZXMgdGhhdCBzdGFydCB3aXRoIHNwYWNlIG9yIHRhYiBjb250aW51
ZSB0aGUgcHJldmlvdXMgaGVhZGVyIHZhbHVlCisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKm9s
ZFZhbCA9IFtoZWFkZXJzIG9iamVjdEZvcktleTpsYXN0SGVhZGVyTmFtZV07CisgICAgICAgICAg
ICAgICAgQVNTRVJUKG9sZFZhbCk7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKm5ld1ZhbCA9
IFtsaW5lIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IGNo
YXJhY3RlclNldFdpdGhDaGFyYWN0ZXJzSW5TdHJpbmc6QCIgXHQiXV07CisgICAgICAgICAgICAg
ICAgW2hlYWRlcnMgc2V0T2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAgJUAi
LCBvbGRWYWwsIG5ld1ZhbF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JLZXk6bGFz
dEhlYWRlck5hbWVdOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQog
CX0KIAogCU5TUmFuZ2UgY29sb25SYW5nZSA9IFtsaW5lIHJhbmdlT2ZTdHJpbmc6QCI6Il07CkBA
IC05OSw3ICsxMDAsNyBAQCBib29sIEtXUVNlcnZlUmVxdWVzdChMb2FkZXIgKmxvYWRlciwgUmVx
CiAJfQogICAgIH0KIAotICAgIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9ICBbTlNEaWN0aW9u
YXJ5IGRpY3Rpb25hcnlXaXRoRGljdGlvbmFyeTpoZWFkZXJzXTsKKyAgICBOU0RpY3Rpb25hcnkg
KmRpY3Rpb25hcnkgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoRGljdGlvbmFyeTpoZWFk
ZXJzXTsKICAgICAKICAgICBbaGVhZGVycyByZWxlYXNlXTsKICAgICAK
</data>
<flag name="review"
          id="1040"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>