<?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>31416</bug_id>
          
          <creation_ts>2009-11-12 10:03:46 -0800</creation_ts>
          <short_desc>Fail early in parseDateFromNullTerminatedCharacters</short_desc>
          <delta_ts>2009-11-12 21:08:12 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Steve VanDeBogart">vandebo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>162934</commentid>
    <comment_count>0</comment_count>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2009-11-12 10:03:46 -0800</bug_when>
    <thetext>When parseDateFromNullTerminatedCharacters() is unable to parse the passed string, it still calculates the timezone and DST offset to apply to the result.  This causes an unnecessary IPC in chromium.  The attached patch changes the code to only calculate the offsets if parsing was successful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162935</commentid>
    <comment_count>1</comment_count>
      <attachid>43071</attachid>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2009-11-12 10:05:20 -0800</bug_when>
    <thetext>Created attachment 43071
Only calculate time offsets for valid dates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162950</commentid>
    <comment_count>2</comment_count>
      <attachid>43071</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-11-12 10:34:09 -0800</bug_when>
    <thetext>Comment on attachment 43071
Only calculate time offsets for valid dates.

Thanks for fixing this.


&gt; Index: JavaScriptCore/ChangeLog
&gt; +2009-11-11  Steve VanDeBogart  &lt;vandebo@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Calculate the time offset only if we were able to parse
&gt; +        the date string. This saves an IPC in Chromium for
&gt; +        invalid date strings.

Please add a bug link.


&gt; Index: JavaScriptCore/wtf/DateMath.cpp
&gt; @@ -825,7 +825,7 @@ double parseDateFromNullTerminatedCharac
&gt;      int offset;
&gt;      double ms = parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
&gt;      // fall back to local timezone

Just do 
if (isnan(ms))
    return NaN;

&gt; -    if (!haveTZ) {
&gt; +    if (!haveTZ &amp;&amp; ms != NaN) {

Also there is another instance to fix in &quot;double parseDateFromNullTerminatedCharacters(ExecState* exec, const char* dateString)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162969</commentid>
    <comment_count>3</comment_count>
      <attachid>43079</attachid>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2009-11-12 11:06:17 -0800</bug_when>
    <thetext>Created attachment 43079
Other case and early exit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162973</commentid>
    <comment_count>4</comment_count>
      <attachid>43079</attachid>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2009-11-12 11:11:19 -0800</bug_when>
    <thetext>Comment on attachment 43079
Other case and early exit

spacing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162974</commentid>
    <comment_count>5</comment_count>
      <attachid>43081</attachid>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2009-11-12 11:12:06 -0800</bug_when>
    <thetext>Created attachment 43081
Fix spacing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163198</commentid>
    <comment_count>6</comment_count>
      <attachid>43081</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-12 20:49:50 -0800</bug_when>
    <thetext>Comment on attachment 43081
Fix spacing

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163206</commentid>
    <comment_count>7</comment_count>
      <attachid>43081</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-12 21:08:07 -0800</bug_when>
    <thetext>Comment on attachment 43081
Fix spacing

Clearing flags on attachment: 43081

Committed r50927: &lt;http://trac.webkit.org/changeset/50927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163208</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-12 21:08:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43071</attachid>
            <date>2009-11-12 10:05:20 -0800</date>
            <delta_ts>2009-11-12 11:06:17 -0800</delta_ts>
            <desc>Only calculate time offsets for valid dates.</desc>
            <filename>invalid-date-opt.patch</filename>
            <type>text/plain</type>
            <size>1297</size>
            <attacher name="Steve VanDeBogart">vandebo</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwODUyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEtMTEgIFN0ZXZlIFZh
bkRlQm9nYXJ0ICA8dmFuZGVib0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsY3VsYXRlIHRoZSB0aW1lIG9mZnNldCBvbmx5
IGlmIHdlIHdlcmUgYWJsZSB0byBwYXJzZQorICAgICAgICB0aGUgZGF0ZSBzdHJpbmcuIFRoaXMg
c2F2ZXMgYW4gSVBDIGluIENocm9taXVtIGZvcgorICAgICAgICBpbnZhbGlkIGRhdGUgc3RyaW5n
cy4KKworICAgICAgICAqIHd0Zi9EYXRlTWF0aC5jcHA6CisgICAgICAgIChXVEY6OnBhcnNlRGF0
ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMpOgorCiAyMDA5LTExLTExICBMYXN6bG8gR29t
Ym9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBB
bGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3BwCShyZXZpc2lv
biA1MDg1MCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgyNSw3ICs4MjUsNyBAQCBkb3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVk
Q2hhcmFjCiAgICAgaW50IG9mZnNldDsKICAgICBkb3VibGUgbXMgPSBwYXJzZURhdGVGcm9tTnVs
bFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGRhdGVTdHJpbmcsIGhhdmVUWiwgb2Zmc2V0KTsKICAgICAv
LyBmYWxsIGJhY2sgdG8gbG9jYWwgdGltZXpvbmUKLSAgICBpZiAoIWhhdmVUWikgeworICAgIGlm
ICghaGF2ZVRaICYmIG1zICE9IE5hTikgewogICAgICAgICBkb3VibGUgdXRjT2Zmc2V0ID0gY2Fs
Y3VsYXRlVVRDT2Zmc2V0KCk7CiAgICAgICAgIGRvdWJsZSBkc3RPZmZzZXQgPSBjYWxjdWxhdGVE
U1RPZmZzZXQobXMsIHV0Y09mZnNldCk7CiAgICAgICAgIG9mZnNldCA9IHN0YXRpY19jYXN0PGlu
dD4oKHV0Y09mZnNldCArIGRzdE9mZnNldCkgLyBtc1Blck1pbnV0ZSk7Cg==
</data>
<flag name="review"
          id="24727"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43079</attachid>
            <date>2009-11-12 11:06:17 -0800</date>
            <delta_ts>2009-11-12 11:12:06 -0800</delta_ts>
            <desc>Other case and early exit</desc>
            <filename>invalid-date-opt-2.patch</filename>
            <type>text/plain</type>
            <size>1642</size>
            <attacher name="Steve VanDeBogart">vandebo</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwODg2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTEtMTIgIFN0ZXZlIFZh
bkRlQm9nYXJ0ICA8dmFuZGVib0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsY3VsYXRlIHRoZSB0aW1lIG9mZnNldCBvbmx5
IGlmIHdlIHdlcmUgYWJsZSB0byBwYXJzZQorICAgICAgICB0aGUgZGF0ZSBzdHJpbmcuIFRoaXMg
c2F2ZXMgYW4gSVBDIGluIENocm9taXVtIGZvcgorICAgICAgICBpbnZhbGlkIGRhdGUgc3RyaW5n
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNDE2
CisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpwYXJzZURhdGVG
cm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTQzo6cGFyc2VEYXRlRnJv
bU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyk6CisKIDIwMDktMTEtMTIgIFJpY2hhcmQgTW9lIEd1
c3RhdnNlbiAgPHJpY2hhcmQuZ3VzdGF2c2VuQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0
Zi9EYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRo
LmNwcAkocmV2aXNpb24gNTA4ODYpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MjQsNiArODI0LDkgQEAgZG91YmxlIHBhcnNlRGF0ZUZyb21O
dWxsVGVybWluYXRlZENoYXJhYwogICAgIGJvb2wgaGF2ZVRaOwogICAgIGludCBvZmZzZXQ7CiAg
ICAgZG91YmxlIG1zID0gcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhkYXRl
U3RyaW5nLCBoYXZlVFosIG9mZnNldCk7CisgICAgaWYgKGlzbmFuKG1zKSkKKyAgICAgIHJldHVy
biBOYU47CisKICAgICAvLyBmYWxsIGJhY2sgdG8gbG9jYWwgdGltZXpvbmUKICAgICBpZiAoIWhh
dmVUWikgewogICAgICAgICBkb3VibGUgdXRjT2Zmc2V0ID0gY2FsY3VsYXRlVVRDT2Zmc2V0KCk7
CkBAIC05NjcsNiArOTcwLDkgQEAgZG91YmxlIHBhcnNlRGF0ZUZyb21OdWxsVGVybWluYXRlZENo
YXJhYwogICAgIGJvb2wgaGF2ZVRaOwogICAgIGludCBvZmZzZXQ7CiAgICAgZG91YmxlIG1zID0g
V1RGOjpwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGRhdGVTdHJpbmcsIGhh
dmVUWiwgb2Zmc2V0KTsKKyAgICBpZiAoaXNuYW4obXMpKQorICAgICAgcmV0dXJuIE5hTjsKKwog
ICAgIC8vIGZhbGwgYmFjayB0byBsb2NhbCB0aW1lem9uZQogICAgIGlmICghaGF2ZVRaKSB7CiAg
ICAgICAgIGRvdWJsZSB1dGNPZmZzZXQgPSBnZXRVVENPZmZzZXQoZXhlYyk7Cg==
</data>
<flag name="review"
          id="24735"
          type_id="1"
          status="-"
          setter="vandebo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43081</attachid>
            <date>2009-11-12 11:12:06 -0800</date>
            <delta_ts>2009-11-12 21:08:07 -0800</delta_ts>
            <desc>Fix spacing</desc>
            <filename>invalid-date-opt-3.patch</filename>
            <type>text/plain</type>
            <size>1646</size>
            <attacher name="Steve VanDeBogart">vandebo</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwODg2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTEtMTIgIFN0ZXZlIFZh
bkRlQm9nYXJ0ICA8dmFuZGVib0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsY3VsYXRlIHRoZSB0aW1lIG9mZnNldCBvbmx5
IGlmIHdlIHdlcmUgYWJsZSB0byBwYXJzZQorICAgICAgICB0aGUgZGF0ZSBzdHJpbmcuIFRoaXMg
c2F2ZXMgYW4gSVBDIGluIENocm9taXVtIGZvcgorICAgICAgICBpbnZhbGlkIGRhdGUgc3RyaW5n
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNDE2
CisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpwYXJzZURhdGVG
cm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTQzo6cGFyc2VEYXRlRnJv
bU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyk6CisKIDIwMDktMTEtMTIgIFJpY2hhcmQgTW9lIEd1
c3RhdnNlbiAgPHJpY2hhcmQuZ3VzdGF2c2VuQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0
Zi9EYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRo
LmNwcAkocmV2aXNpb24gNTA4ODYpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MjQsNiArODI0LDkgQEAgZG91YmxlIHBhcnNlRGF0ZUZyb21O
dWxsVGVybWluYXRlZENoYXJhYwogICAgIGJvb2wgaGF2ZVRaOwogICAgIGludCBvZmZzZXQ7CiAg
ICAgZG91YmxlIG1zID0gcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhkYXRl
U3RyaW5nLCBoYXZlVFosIG9mZnNldCk7CisgICAgaWYgKGlzbmFuKG1zKSkKKyAgICAgICAgcmV0
dXJuIE5hTjsKKwogICAgIC8vIGZhbGwgYmFjayB0byBsb2NhbCB0aW1lem9uZQogICAgIGlmICgh
aGF2ZVRaKSB7CiAgICAgICAgIGRvdWJsZSB1dGNPZmZzZXQgPSBjYWxjdWxhdGVVVENPZmZzZXQo
KTsKQEAgLTk2Nyw2ICs5NzAsOSBAQCBkb3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVk
Q2hhcmFjCiAgICAgYm9vbCBoYXZlVFo7CiAgICAgaW50IG9mZnNldDsKICAgICBkb3VibGUgbXMg
PSBXVEY6OnBhcnNlRGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoZGF0ZVN0cmluZywg
aGF2ZVRaLCBvZmZzZXQpOworICAgIGlmIChpc25hbihtcykpCisgICAgICAgIHJldHVybiBOYU47
CisKICAgICAvLyBmYWxsIGJhY2sgdG8gbG9jYWwgdGltZXpvbmUKICAgICBpZiAoIWhhdmVUWikg
ewogICAgICAgICBkb3VibGUgdXRjT2Zmc2V0ID0gZ2V0VVRDT2Zmc2V0KGV4ZWMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>