<?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>21526</bug_id>
          
          <creation_ts>2008-10-10 11:50:15 -0700</creation_ts>
          <short_desc>The hashmap webPreferencesInstances in WebPreferences.cpp can potentially hold onto stale instances of WebPreferences</short_desc>
          <delta_ts>2008-10-10 13:43:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows Vista</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="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94898</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2008-10-10 11:50:15 -0700</bug_when>
    <thetext>webPreferencesInstances does not keep a reference to all the instances it holds.  So if you call WebPreferences::initWithIdentifier() to make a WebPreferences object and then release it, the hashmap still holds a stale pointer to that instance, and next time initWithIdentifier() is called again with the same identifier, it&apos;ll return the stale object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94904</commentid>
    <comment_count>1</comment_count>
      <attachid>24270</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2008-10-10 12:37:42 -0700</bug_when>
    <thetext>Created attachment 24270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94906</commentid>
    <comment_count>2</comment_count>
      <attachid>24270</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-10-10 12:59:24 -0700</bug_when>
    <thetext>Comment on attachment 24270
Patch

 3         https://bugs.webkit.org/show_bug.cgi?id=21526

We normally put the title of the bug in the ChangeLog as well.

 619     preferences = 0;
 620     if (identifier) {
 621         WebPreferences::removeReferenceForIdentifier(identifier);
 622         SysFreeString(identifier);
 623     }

It might be worth adding a comment here about why we release preferences first.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94913</commentid>
    <comment_count>3</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2008-10-10 13:36:51 -0700</bug_when>
    <thetext>Will address feedback from aroben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94914</commentid>
    <comment_count>4</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2008-10-10 13:43:41 -0700</bug_when>
    <thetext>Fixed in r37489</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24270</attachid>
            <date>2008-10-10 12:37:42 -0700</date>
            <delta_ts>2008-10-10 12:59:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>21526.patch.txt</filename>
            <type>text/plain</type>
            <size>4544</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3NDg2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDgtMTAt
MTAgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTI2CisgICAgICAgIAorICAgICAgICB3ZWJQ
cmVmZXJlbmNlc0luc3RhbmNlcyBub3cga2VlcHMgYSByZWZlcmVuY2UgdG8gYWxsIHRoZSBpbnN0
YW5jZXMgaXQgaG9sZHMuCisgICAgICAgIEZpeCB1cCBjYWxsZXJzIG9mIFdlYlByZWZlcmVuY2Vz
OjpyZW1vdmVSZWZlcmVuY2VGb3JJZGVudGlmaWVyKCkgdG8gY2FsbCAKKyAgICAgICAgaXQgYWZ0
ZXIgdGhleSBoYXZlIHJlbGVhc2VkIHRoZWlyIHJlZmVyZW5jZXMgdG8gdGhlIFdlYlByZWZlcmVu
Y2VzIG9iamVjdHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6Z2V0
SW5zdGFuY2VGb3JJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZW1vdmVS
ZWZlcmVuY2VGb3JJZGVudGlmaWVyKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmNsb3NlKToKKyAgICAgICAgKFdlYlZpZXc6OnNldFByZWZlcmVuY2VzKToKKwog
MjAwOC0xMC0wNiAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgRW5h
YmxlIHZpZXdsZXNzIE1hYyBXZWJLaXQgdG8gcGFpbnQgc29tZSBiYXNpYyBwYWdlcy4KSW5kZXg6
IFdlYlByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJQcmVmZXJlbmNlcy5jcHAJKHJl
dmlzaW9uIDM3NDg1KQorKysgV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViS2l0RExMLmgi
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKLSNpbmNsdWRlICJXZWJLaXQuaCIKIAorI2lu
Y2x1ZGUgIkNPTVB0ci5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNlbnRlci5oIgogI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIgogCkBAIC05OSw3ICs5OSw3IEBAIHN0
YXRpYyBib29sIGJvb2xlYW5WYWx1ZUZvclByZWZlcmVuY2VzVmEKIAogc3RhdGljIENGRGljdGlv
bmFyeVJlZiBkZWZhdWx0U2V0dGluZ3M7CiAKLXN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6OlN0cmlu
ZywgV2ViUHJlZmVyZW5jZXMqPiB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlczsKK3N0YXRpYyBIYXNo
TWFwPFdlYkNvcmU6OlN0cmluZywgQ09NUHRyPFdlYlByZWZlcmVuY2VzPiA+IHdlYlByZWZlcmVu
Y2VzSW5zdGFuY2VzOwogCiBXZWJQcmVmZXJlbmNlcyogV2ViUHJlZmVyZW5jZXM6OnNoYXJlZFN0
YW5kYXJkUHJlZmVyZW5jZXMoKQogewpAQCAtMTUyLDcgKzE1Miw3IEBAIFdlYlByZWZlcmVuY2Vz
KiBXZWJQcmVmZXJlbmNlczo6Z2V0SW5zdGEKICAgICAgICAgcmV0dXJuIHNoYXJlZFN0YW5kYXJk
UHJlZmVyZW5jZXMoKTsKIAogICAgIFdlYkNvcmU6OlN0cmluZyBpZGVudGlmaWVyU3RyaW5nKGlk
ZW50aWZpZXIsIFN5c1N0cmluZ0xlbihpZGVudGlmaWVyKSk7Ci0gICAgcmV0dXJuIHdlYlByZWZl
cmVuY2VzSW5zdGFuY2VzLmdldChpZGVudGlmaWVyU3RyaW5nKTsKKyAgICByZXR1cm4gd2ViUHJl
ZmVyZW5jZXNJbnN0YW5jZXMuZ2V0KGlkZW50aWZpZXJTdHJpbmcpLmdldCgpOwogfQogCiB2b2lk
IFdlYlByZWZlcmVuY2VzOjpzZXRJbnN0YW5jZShXZWJQcmVmZXJlbmNlcyogaW5zdGFuY2UsIEJT
VFIgaWRlbnRpZmllcikKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpy
ZW1vdmVSZWZlcmVuY2VGb3JJCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkNvcmU6OlN0cmlu
ZyBpZGVudGlmaWVyU3RyaW5nKGlkZW50aWZpZXIsIFN5c1N0cmluZ0xlbihpZGVudGlmaWVyKSk7
Ci0gICAgV2ViUHJlZmVyZW5jZXMqIHdlYlByZWZlcmVuY2UgPSB3ZWJQcmVmZXJlbmNlc0luc3Rh
bmNlcy5nZXQoaWRlbnRpZmllclN0cmluZyk7CisgICAgV2ViUHJlZmVyZW5jZXMqIHdlYlByZWZl
cmVuY2UgPSB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcy5nZXQoaWRlbnRpZmllclN0cmluZykuZ2V0
KCk7CiAgICAgaWYgKHdlYlByZWZlcmVuY2UgJiYgd2ViUHJlZmVyZW5jZS0+bV9yZWZDb3VudCA9
PSAxKQogICAgICAgICB3ZWJQcmVmZXJlbmNlc0luc3RhbmNlcy5yZW1vdmUoaWRlbnRpZmllclN0
cmluZyk7CiB9CkluZGV4OiBXZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3LmNwcAko
cmV2aXNpb24gMzc0ODUpCisrKyBXZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjExLDE0
ICs2MTEsMTYgQEAgdm9pZCBXZWJWaWV3OjpjbG9zZSgpCiAgICAgbm90aWZ5Q2VudGVyLT5yZW1v
dmVPYnNlcnZlcih0aGlzLCBXZWJQcmVmZXJlbmNlczo6d2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90
aWZpY2F0aW9uKCksIHN0YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlcyo+KG1fcHJlZmVyZW5jZXMu
Z2V0KCkpKTsKIAogICAgIEJTVFIgaWRlbnRpZmllciA9IDA7Ci0gICAgaWYgKFNVQ0NFRURFRCht
X3ByZWZlcmVuY2VzLT5pZGVudGlmaWVyKCZpZGVudGlmaWVyKSkpCi0gICAgICAgIFdlYlByZWZl
cmVuY2VzOjpyZW1vdmVSZWZlcmVuY2VGb3JJZGVudGlmaWVyKGlkZW50aWZpZXIpOwotICAgIGlm
IChpZGVudGlmaWVyKQotICAgICAgICBTeXNGcmVlU3RyaW5nKGlkZW50aWZpZXIpOworICAgIG1f
cHJlZmVyZW5jZXMtPmlkZW50aWZpZXIoJmlkZW50aWZpZXIpOwogCiAgICAgQ09NUHRyPFdlYlBy
ZWZlcmVuY2VzPiBwcmVmZXJlbmNlcyA9IG1fcHJlZmVyZW5jZXM7CiAgICAgbV9wcmVmZXJlbmNl
cyA9IDA7CiAgICAgcHJlZmVyZW5jZXMtPmRpZFJlbW92ZUZyb21XZWJWaWV3KCk7CisgICAgcHJl
ZmVyZW5jZXMgPSAwOworICAgIGlmIChpZGVudGlmaWVyKSB7CisgICAgICAgIFdlYlByZWZlcmVu
Y2VzOjpyZW1vdmVSZWZlcmVuY2VGb3JJZGVudGlmaWVyKGlkZW50aWZpZXIpOworICAgICAgICBT
eXNGcmVlU3RyaW5nKGlkZW50aWZpZXIpOworICAgIH0KIAogICAgIGRlbGV0ZUJhY2tpbmdTdG9y
ZSgpOwogfQpAQCAtMjY4MSwxOCArMjY4MywxOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYlZpZXc6OnNldFByCiAgICAgSVdlYk5vdGlmaWNhdGlvbkNlbnRlciogbmMgPSBXZWJOb3Rp
ZmljYXRpb25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwogICAgIG5jLT5yZW1vdmVP
YnNlcnZlcih0aGlzLCBXZWJQcmVmZXJlbmNlczo6d2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZp
Y2F0aW9uKCksIHN0YXRpY19jYXN0PElXZWJQcmVmZXJlbmNlcyo+KG1fcHJlZmVyZW5jZXMuZ2V0
KCkpKTsKIAotICAgIEJTVFIgaWRlbnRpZmllckJTVFIgPSAwOwotICAgIEhSRVNVTFQgaHIgPSBv
bGRQcmVmcy0+aWRlbnRpZmllcigmaWRlbnRpZmllckJTVFIpOworICAgIEJTVFIgaWRlbnRpZmll
ciA9IDA7CisgICAgb2xkUHJlZnMtPmlkZW50aWZpZXIoJmlkZW50aWZpZXIpOwogICAgIG9sZFBy
ZWZzLT5kaWRSZW1vdmVGcm9tV2ViVmlldygpOwogICAgIG9sZFByZWZzID0gMDsgLy8gTWFrZSBz
dXJlIHdlIHJlbGVhc2UgdGhlIHJlZmVyZW5jZSwgc2luY2UgV2ViUHJlZmVyZW5jZXM6OnJlbW92
ZVJlZmVyZW5jZUZvcklkZW50aWZpZXIgd2lsbCBjaGVjayBmb3IgbGFzdCByZWZlcmVuY2UgdG8g
V2ViUHJlZmVyZW5jZXMKLSAgICBpZiAoU1VDQ0VFREVEKGhyKSkgewotICAgICAgICBCU3RyaW5n
IGlkZW50aWZpZXI7Ci0gICAgICAgIGlkZW50aWZpZXIuYWRvcHRCU1RSKGlkZW50aWZpZXJCU1RS
KTsKLSAgICAgICAgV2ViUHJlZmVyZW5jZXM6OnJlbW92ZVJlZmVyZW5jZUZvcklkZW50aWZpZXIo
aWRlbnRpZmllcik7Ci0gICAgfQogCiAgICAgbV9wcmVmZXJlbmNlcyA9IHdlYlByZWZzOwogCisg
ICAgaWYgKGlkZW50aWZpZXIpIHsKKyAgICAgICAgV2ViUHJlZmVyZW5jZXM6OnJlbW92ZVJlZmVy
ZW5jZUZvcklkZW50aWZpZXIoaWRlbnRpZmllcik7CisgICAgICAgIFN5c0ZyZWVTdHJpbmcoaWRl
bnRpZmllcik7CisgICAgfQorCiAgICAgbmMtPmFkZE9ic2VydmVyKHRoaXMsIFdlYlByZWZlcmVu
Y2VzOjp3ZWJQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb24oKSwgc3RhdGljX2Nhc3Q8SVdl
YlByZWZlcmVuY2VzKj4obV9wcmVmZXJlbmNlcy5nZXQoKSkpOwogCiAgICAgbV9wcmVmZXJlbmNl
cy0+cG9zdFByZWZlcmVuY2VzQ2hhbmdlc05vdGlmaWNhdGlvbigpOwo=
</data>
<flag name="review"
          id="11049"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>