<?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>22134</bug_id>
          
          <creation_ts>2008-11-07 17:00:25 -0800</creation_ts>
          <short_desc>-[WebHistoryItem dictionaryRepresentation] accesses past the end of a vector</short_desc>
          <delta_ts>2008-11-11 14:14:59 -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>History</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Aaron Golden">agolden</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>97985</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Golden">agolden</who>
    <bug_when>2008-11-07 17:00:25 -0800</bug_when>
    <thetext>The for loop to iterate over the children vector in -[WebHistoryItem dictionaryRepresentation] starts out with i = children.size(), so if we ever hit that loop we&apos;re going to attempt an access past the end of the children vector.  It should be i = children.size()-1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97986</commentid>
    <comment_count>1</comment_count>
      <attachid>24979</attachid>
    <who name="Aaron Golden">agolden</who>
    <bug_when>2008-11-07 17:05:48 -0800</bug_when>
    <thetext>Created attachment 24979
This patch prevents the bad access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97987</commentid>
    <comment_count>2</comment_count>
      <attachid>24980</attachid>
    <who name="Aaron Golden">agolden</who>
    <bug_when>2008-11-07 17:11:58 -0800</bug_when>
    <thetext>Created attachment 24980
Same patch as before, but with a bit more whitespace and a ChangeLog...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98090</commentid>
    <comment_count>3</comment_count>
      <attachid>24980</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-11-09 11:50:56 -0800</bug_when>
    <thetext>Comment on attachment 24980
Same patch as before, but with a bit more whitespace and a ChangeLog...

This change is clearly correct, but we normally require regression tests for bug fixes. Were you able to reproduce a problem? I&apos;d love to see a test and not just the fix.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98194</commentid>
    <comment_count>4</comment_count>
      <attachid>25025</attachid>
    <who name="Aaron Golden">agolden</who>
    <bug_when>2008-11-10 12:42:30 -0800</bug_when>
    <thetext>Created attachment 25025
New patch

It turns out that -[WebHistoryItem initWithDictionaryRepresentation] has the same problem as -[WebHistoryItem dictionaryRepresentation] so fixing that as well and updating the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98212</commentid>
    <comment_count>5</comment_count>
      <attachid>24980</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-11-10 14:42:42 -0800</bug_when>
    <thetext>Comment on attachment 24980
Same patch as before, but with a bit more whitespace and a ChangeLog...

Clearing review flag on unlanded patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98217</commentid>
    <comment_count>6</comment_count>
    <who name="Aaron Golden">agolden</who>
    <bug_when>2008-11-10 15:06:05 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 24980 [review])
&gt; This change is clearly correct, but we normally require regression tests for
&gt; bug fixes. Were you able to reproduce a problem? I&apos;d love to see a test and not
&gt; just the fix.
&gt; 
&gt; r=me
&gt; 

I think that the affected API is not currently used in the Safari browser, so I will not be able to provide a layout test.  In theory I could write a new application designed to demonstrate the problem, but in this case I doubt that it&apos;s necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98295</commentid>
    <comment_count>7</comment_count>
      <attachid>25025</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-11-11 09:24:43 -0800</bug_when>
    <thetext>Comment on attachment 25025
New patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98343</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-11-11 14:14:59 -0800</bug_when>
    <thetext>$ git svn dcommit
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebKit/mac/ChangeLog
	M	WebKit/mac/History/WebHistoryItem.mm
Committed r38315

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24979</attachid>
            <date>2008-11-07 17:05:48 -0800</date>
            <delta_ts>2008-11-10 12:42:30 -0800</delta_ts>
            <desc>This patch prevents the bad access.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>674</size>
            <attacher name="Aaron Golden">agolden</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0JKHJldmlzaW9uIDM4MjMyKQor
KysgV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00MTAsNyArNDEwLDcgQEAKICAgICAgICAgY29uc3QgSGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxk
cmVuID0gY29yZUl0ZW0tPmNoaWxkcmVuKCk7CiAgICAgICAgIE5TTXV0YWJsZUFycmF5ICpjaGls
ZERpY3RzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OmNoaWxkcmVuLnNpemUo
KV07CiAgICAgICAgIAotICAgICAgICBmb3IgKGludCBpID0gY2hpbGRyZW4uc2l6ZSgpOyBpID49
IDA7IGktLSkKKyAgICAgICAgZm9yIChpbnQgaSA9IGNoaWxkcmVuLnNpemUoKS0xOyBpID49IDA7
IGktLSkKICAgICAgICAgICAgIFtjaGlsZERpY3RzIGFkZE9iamVjdDpba2l0KGNoaWxkcmVuW2ld
LmdldCgpKSBkaWN0aW9uYXJ5UmVwcmVzZW50YXRpb25dXTsKICAgICAgICAgW2RpY3Qgc2V0T2Jq
ZWN0OiBjaGlsZERpY3RzIGZvcktleTpXZWJDaGlsZHJlbktleV07CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24980</attachid>
            <date>2008-11-07 17:11:58 -0800</date>
            <delta_ts>2008-11-10 14:42:42 -0800</delta_ts>
            <desc>Same patch as before, but with a bit more whitespace and a ChangeLog...</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>1142</size>
            <attacher name="Aaron Golden">agolden</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAzODIzMikKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTAgQEAKKzIwMDgtMTEtMDcgIEFhcm9uIEdvbGRlbiAgPGFnb2xk
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKC1bV2ViSGlzdG9y
eUl0ZW0gZGljdGlvbmFyeVJlcHJlc2VudGF0aW9uXSk6CisKIDIwMDgtMTEtMDYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZXZp
biBEZWNrZXIuCkluZGV4OiBXZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCShyZXZpc2lv
biAzODIzMikKKysrIFdlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDEwLDcgKzQxMCw3IEBACiAgICAgICAgIGNvbnN0IEhpc3RvcnlJdGVtVmVj
dG9yJiBjaGlsZHJlbiA9IGNvcmVJdGVtLT5jaGlsZHJlbigpOwogICAgICAgICBOU011dGFibGVB
cnJheSAqY2hpbGREaWN0cyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpjaGls
ZHJlbi5zaXplKCldOwogICAgICAgICAKLSAgICAgICAgZm9yIChpbnQgaSA9IGNoaWxkcmVuLnNp
emUoKTsgaSA+PSAwOyBpLS0pCisgICAgICAgIGZvciAoaW50IGkgPSBjaGlsZHJlbi5zaXplKCkg
LSAxOyBpID49IDA7IGktLSkKICAgICAgICAgICAgIFtjaGlsZERpY3RzIGFkZE9iamVjdDpba2l0
KGNoaWxkcmVuW2ldLmdldCgpKSBkaWN0aW9uYXJ5UmVwcmVzZW50YXRpb25dXTsKICAgICAgICAg
W2RpY3Qgc2V0T2JqZWN0OiBjaGlsZERpY3RzIGZvcktleTpXZWJDaGlsZHJlbktleV07CiAgICAg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25025</attachid>
            <date>2008-11-10 12:42:30 -0800</date>
            <delta_ts>2008-11-11 09:24:43 -0800</delta_ts>
            <desc>New patch</desc>
            <filename>patch3.txt</filename>
            <type>text/plain</type>
            <size>1652</size>
            <attacher name="Aaron Golden">agolden</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAzODI2OCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDgtMTEtMTAgIEFhcm9uIEdvbGRlbiAgPGFnb2xk
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKC1bV2ViSGlzdG9y
eUl0ZW0gaW5pdEZyb21EaWN0aW9uYXJ5UmVwcmVzZW50YXRpb246XSk6CisgICAgICAgICgtW1dl
Ykhpc3RvcnlJdGVtIGRpY3Rpb25hcnlSZXByZXNlbnRhdGlvbl0pOgorCiAyMDA4LTExLTEwICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBSb2Jlbi4KSW5kZXg6IFdlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0JKHJl
dmlzaW9uIDM4MjY4KQorKysgV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDcgQEAKIAogICAgIE5TQXJyYXkgKmNoaWxkRGlj
dHMgPSBbZGljdCBvYmplY3RGb3JLZXk6V2ViQ2hpbGRyZW5LZXldOwogICAgIGlmIChjaGlsZERp
Y3RzKSB7Ci0gICAgICAgIGZvciAoaW50IGkgPSBbY2hpbGREaWN0cyBjb3VudF07IGkgPj0gMDsg
aS0tKSB7CisgICAgICAgIGZvciAoaW50IGkgPSBbY2hpbGREaWN0cyBjb3VudF0gLSAxOyBpID49
IDA7IGktLSkgewogICAgICAgICAgICAgV2ViSGlzdG9yeUl0ZW0gKmNoaWxkID0gW1tXZWJIaXN0
b3J5SXRlbSBhbGxvY10gaW5pdEZyb21EaWN0aW9uYXJ5UmVwcmVzZW50YXRpb246IFtjaGlsZERp
Y3RzIG9iamVjdEF0SW5kZXg6aV1dOwogICAgICAgICAgICAgY29yZShfcHJpdmF0ZSktPmFkZENo
aWxkSXRlbShjb3JlKGNoaWxkLT5fcHJpdmF0ZSkpOwogICAgICAgICAgICAgW2NoaWxkIHJlbGVh
c2VdOwpAQCAtNDEwLDcgKzQxMCw3IEBACiAgICAgICAgIGNvbnN0IEhpc3RvcnlJdGVtVmVjdG9y
JiBjaGlsZHJlbiA9IGNvcmVJdGVtLT5jaGlsZHJlbigpOwogICAgICAgICBOU011dGFibGVBcnJh
eSAqY2hpbGREaWN0cyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpjaGlsZHJl
bi5zaXplKCldOwogICAgICAgICAKLSAgICAgICAgZm9yIChpbnQgaSA9IGNoaWxkcmVuLnNpemUo
KTsgaSA+PSAwOyBpLS0pCisgICAgICAgIGZvciAoaW50IGkgPSBjaGlsZHJlbi5zaXplKCkgLSAx
OyBpID49IDA7IGktLSkKICAgICAgICAgICAgIFtjaGlsZERpY3RzIGFkZE9iamVjdDpba2l0KGNo
aWxkcmVuW2ldLmdldCgpKSBkaWN0aW9uYXJ5UmVwcmVzZW50YXRpb25dXTsKICAgICAgICAgW2Rp
Y3Qgc2V0T2JqZWN0OiBjaGlsZERpY3RzIGZvcktleTpXZWJDaGlsZHJlbktleV07CiAgICAgfQo=
</data>
<flag name="review"
          id="11493"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>