<?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>87180</bug_id>
          
          <creation_ts>2012-05-22 16:42:49 -0700</creation_ts>
          <short_desc>CopiedSpace::contains doesn&apos;t check for oversize blocks</short_desc>
          <delta_ts>2012-05-22 18:39:53 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>630917</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-22 16:42:49 -0700</bug_when>
    <thetext>When doing a conservative scan we use CopiedSpace::contains to determine if a particular address points into the CopiedSpace. Currently contains() only checks if the address points to a block in to-space, which means that pointers to oversize blocks may not get scanned. 

We even have a BloomFilter for oversize blocks that I believe was originally intended to be used like the one for to-space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630981</commentid>
    <comment_count>1</comment_count>
      <attachid>143413</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-22 17:37:27 -0700</bug_when>
    <thetext>Created attachment 143413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631013</commentid>
    <comment_count>2</comment_count>
      <attachid>143413</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-22 18:02:43 -0700</bug_when>
    <thetext>Comment on attachment 143413
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=143413&amp;action=review

r=me

&gt; Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h:52
&gt;  inline bool CopiedSpace::contains(void* ptr, CopiedBlock*&amp; result)
&gt;  {
&gt;      CopiedBlock* block = blockFor(ptr);
&gt; +    if (contains(block)) {
&gt; +        result = block;
&gt; +        return true;
&gt; +    }
&gt; +    block = oversizeBlockFor(ptr);
&gt;      result = block;
&gt; -    return !m_toSpaceFilter.ruleOut(reinterpret_cast&lt;Bits&gt;(block)) &amp;&amp; m_toSpaceSet.contains(block);
&gt; +    return contains(block);

You could simplify this code by giving oversized and normal blocks the same alignment -- then, one mask always gets you back to the block metadata. That&apos;s for another day, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631057</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-22 18:39:53 -0700</bug_when>
    <thetext>Committed r118093: &lt;http://trac.webkit.org/changeset/118093&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143413</attachid>
            <date>2012-05-22 17:37:27 -0700</date>
            <delta_ts>2012-05-22 18:02:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87180-20120522173726.patch</filename>
            <type>text/plain</type>
            <size>6608</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4MDg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDEyLTA1LTIyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ29waWVkU3BhY2U6OmNvbnRhaW5zIGRvZXNuJ3QgY2hlY2sgZm9yIG92ZXJzaXpl
IGJsb2NrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODcxODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aGVuIGRvaW5nIGEgY29uc2VydmF0aXZlIHNjYW4gd2UgdXNlIENvcGllZFNwYWNlOjpjb250YWlu
cyB0byBkZXRlcm1pbmUgaWYgYSBwYXJ0aWN1bGFyIAorICAgICAgICBhZGRyZXNzIHBvaW50cyBp
bnRvIHRoZSBDb3BpZWRTcGFjZS4gQ3VycmVudGx5IGNvbnRhaW5zKCkgb25seSBjaGVja3MgaWYg
dGhlIGFkZHJlc3MgCisgICAgICAgIHBvaW50cyB0byBhIGJsb2NrIGluIHRvLXNwYWNlLCB3aGlj
aCBtZWFucyB0aGF0IHBvaW50ZXJzIHRvIG92ZXJzaXplIGJsb2NrcyBtYXkgbm90IGdldCBzY2Fu
bmVkLiAKKworICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgorICAgICAgICAoSlNDOjpD
b3BpZWRTcGFjZTo6dHJ5QWxsb2NhdGVPdmVyc2l6ZSk6CisgICAgICAgIChKU0M6OkNvcGllZFNw
YWNlOjp0cnlSZWFsbG9jYXRlT3ZlcnNpemUpOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6
ZG9uZUZpbGxpbmdCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNlOjpkb25lQ29weWlu
Zyk6CisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZS5oOiBSZWZhY3RvcmVkIENvcGllZFNwYWNl
IHNvIHRoYXQgYWxsIGJsb2NrcyAob3ZlcnNpemUgYW5kIHRvLXNwYWNlKSBhcmUgCisgICAgICAg
IGluIGEgc2luZ2xlIGhhc2ggc2V0IGFuZCBibG9vbSBmaWx0ZXIgZm9yIG1lbWJlcnNoaXAgdGVz
dGluZy4KKyAgICAgICAgKENvcGllZFNwYWNlKToKKyAgICAgICAgKiBoZWFwL0NvcGllZFNwYWNl
SW5saW5lTWV0aG9kcy5oOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6Y29udGFpbnMpOiBX
ZSBjaGVjayBmb3IgdGhlIG5vcm1hbCBibG9jayBmaXJzdC4gU2luY2UgdGhlIG92ZXJzaXplIGJs
b2NrcyBhcmUKKyAgICAgICAgb25seSBwYWdlIGFsaWduZWQsIHJhdGhlciB0aGFuIGJsb2NrIGFs
aWduZWQsIHdlIGhhdmUgdG8gcmUtbWFzayB0aGUgcHRyIHRvIGNoZWNrIGlmIGl0J3MgaW4gCisg
ICAgICAgIENvcGllZFNwYWNlLiBBbHNvIGFkZGVkIGEgaGVscGVyIGZ1bmN0aW9uIG9mIHRoZSBz
YW1lIG5hbWUgdGhhdCB0YWtlcyBhIENvcGllZEJsb2NrKiBhbmQgY2hlY2tzCisgICAgICAgIGlm
IGl0J3MgaW4gQ29waWVkU3BhY2Ugc28gdGhhdCBjaGVjayBpc24ndCB0eXBlZCBvdXQgdHdpY2Uu
CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6c3RhcnRlZENvcHlp
bmcpOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6YWRkTmV3QmxvY2spOgorCiAyMDEyLTA1
LTIyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29waWVk
QmxvY2sgYW5kIE1hcmtlZEJsb2NrIHNob3VsZCBoYXZlIHByb3BlciB2YWx1ZSBzZW1hbnRpY3Mg
KGkuZS4sIGRlc3RydWN0b3JzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZFNwYWNlLmNwcAkocmV2aXNpb24gMTE4MDYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw4IEBAIENo
ZWNrZWRCb29sZWFuIENvcGllZFNwYWNlOjp0cnlBbGxvY2F0ZU8KIAogICAgIENvcGllZEJsb2Nr
KiBibG9jayA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGlvbi5iYXNlKCkpIENvcGllZEJsb2NrKGFs
bG9jYXRpb24pOwogICAgIG1fb3ZlcnNpemVCbG9ja3MucHVzaChibG9jayk7Ci0gICAgbV9vdmVy
c2l6ZUZpbHRlci5hZGQocmVpbnRlcnByZXRfY2FzdDxCaXRzPihibG9jaykpOworICAgIG1fYmxv
Y2tGaWx0ZXIuYWRkKHJlaW50ZXJwcmV0X2Nhc3Q8Qml0cz4oYmxvY2spKTsKKyAgICBtX2Jsb2Nr
U2V0LmFkZChibG9jayk7CiAgICAgCiAgICAgKm91dFB0ciA9IGFsbG9jYXRlRnJvbUJsb2NrKGJs
b2NrLCBieXRlcyk7CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCBDaGVja2VkQm9vbGVhbiBDb3BpZWRT
cGFjZTo6dHJ5UmVhbGxvY2F0CiAgICAgaWYgKGlzT3ZlcnNpemUob2xkU2l6ZSkpIHsKICAgICAg
ICAgQ29waWVkQmxvY2sqIG9sZEJsb2NrID0gb3ZlcnNpemVCbG9ja0ZvcihvbGRQdHIpOwogICAg
ICAgICBtX292ZXJzaXplQmxvY2tzLnJlbW92ZShvbGRCbG9jayk7CisgICAgICAgIG1fYmxvY2tT
ZXQucmVtb3ZlKG9sZEJsb2NrKTsKICAgICAgICAgb2xkQmxvY2stPm1fYWxsb2NhdGlvbi5kZWFs
bG9jYXRlKCk7CiAgICAgfQogICAgIApAQCAtMTU2LDggKzE1OCw4IEBAIHZvaWQgQ29waWVkU3Bh
Y2U6OmRvbmVGaWxsaW5nQmxvY2soQ29waWUKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3RvU3BhY2VMb2NrKTsKICAgICAgICAgbV90b1NwYWNlLT5wdXNoKGJsb2NrKTsKLSAg
ICAgICAgbV90b1NwYWNlU2V0LmFkZChibG9jayk7Ci0gICAgICAgIG1fdG9TcGFjZUZpbHRlci5h
ZGQocmVpbnRlcnByZXRfY2FzdDxCaXRzPihibG9jaykpOworICAgICAgICBtX2Jsb2NrU2V0LmFk
ZChibG9jayk7CisgICAgICAgIG1fYmxvY2tGaWx0ZXIuYWRkKHJlaW50ZXJwcmV0X2Nhc3Q8Qml0
cz4oYmxvY2spKTsKICAgICB9CiAKICAgICB7CkBAIC0xODMsMTQgKzE4NSwxNCBAQCB2b2lkIENv
cGllZFNwYWNlOjpkb25lQ29weWluZygpCiAgICAgICAgIENvcGllZEJsb2NrKiBibG9jayA9IHN0
YXRpY19jYXN0PENvcGllZEJsb2NrKj4obV9mcm9tU3BhY2UtPnJlbW92ZUhlYWQoKSk7CiAgICAg
ICAgIGlmIChibG9jay0+bV9pc1Bpbm5lZCkgewogICAgICAgICAgICAgYmxvY2stPm1faXNQaW5u
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIC8vIFdlIGRvbid0IGFkZCB0aGUgYmxvY2sgdG8gdGhl
IHRvU3BhY2VTZXQgYmVjYXVzZSBpdCB3YXMgbmV2ZXIgcmVtb3ZlZC4KLSAgICAgICAgICAgIEFT
U0VSVChtX3RvU3BhY2VTZXQuY29udGFpbnMoYmxvY2spKTsKLSAgICAgICAgICAgIG1fdG9TcGFj
ZUZpbHRlci5hZGQocmVpbnRlcnByZXRfY2FzdDxCaXRzPihibG9jaykpOworICAgICAgICAgICAg
Ly8gV2UgZG9uJ3QgYWRkIHRoZSBibG9jayB0byB0aGUgYmxvY2tTZXQgYmVjYXVzZSBpdCB3YXMg
bmV2ZXIgcmVtb3ZlZC4KKyAgICAgICAgICAgIEFTU0VSVChtX2Jsb2NrU2V0LmNvbnRhaW5zKGJs
b2NrKSk7CisgICAgICAgICAgICBtX2Jsb2NrRmlsdGVyLmFkZChyZWludGVycHJldF9jYXN0PEJp
dHM+KGJsb2NrKSk7CiAgICAgICAgICAgICBtX3RvU3BhY2UtPnB1c2goYmxvY2spOwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBtX3RvU3BhY2VTZXQucmVtb3Zl
KGJsb2NrKTsKKyAgICAgICAgbV9ibG9ja1NldC5yZW1vdmUoYmxvY2spOwogICAgICAgICBtX2hl
YXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShibG9jayk7CiAgICAgfQogCkBAIC0xOTks
OSArMjAxLDEyIEBAIHZvaWQgQ29waWVkU3BhY2U6OmRvbmVDb3B5aW5nKCkKICAgICAgICAgQ29w
aWVkQmxvY2sqIG5leHQgPSBzdGF0aWNfY2FzdDxDb3BpZWRCbG9jayo+KGN1cnItPm5leHQoKSk7
CiAgICAgICAgIGlmICghY3Vyci0+bV9pc1Bpbm5lZCkgewogICAgICAgICAgICAgbV9vdmVyc2l6
ZUJsb2Nrcy5yZW1vdmUoY3Vycik7CisgICAgICAgICAgICBtX2Jsb2NrU2V0LnJlbW92ZShjdXJy
KTsKICAgICAgICAgICAgIGN1cnItPm1fYWxsb2NhdGlvbi5kZWFsbG9jYXRlKCk7Ci0gICAgICAg
IH0gZWxzZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbV9ibG9ja0ZpbHRlci5hZGQo
cmVpbnRlcnByZXRfY2FzdDxCaXRzPihjdXJyKSk7CiAgICAgICAgICAgICBjdXJyLT5tX2lzUGlu
bmVkID0gZmFsc2U7CisgICAgICAgIH0KICAgICAgICAgY3VyciA9IG5leHQ7CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmgJKHJldmlzaW9uIDEx
ODA2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGluKENvcGllZEJs
b2NrKik7CiAgICAgYm9vbCBpc1Bpbm5lZCh2b2lkKik7CiAKKyAgICBib29sIGNvbnRhaW5zKENv
cGllZEJsb2NrKik7CiAgICAgYm9vbCBjb250YWlucyh2b2lkKiwgQ29waWVkQmxvY2sqJik7CiAK
ICAgICBzaXplX3Qgc2l6ZSgpOwpAQCAtOTYsOSArOTcsOCBAQCBwcml2YXRlOgogCiAgICAgQ29w
aWVkQWxsb2NhdG9yIG1fYWxsb2NhdG9yOwogCi0gICAgVGlueUJsb29tRmlsdGVyIG1fdG9TcGFj
ZUZpbHRlcjsKLSAgICBUaW55Qmxvb21GaWx0ZXIgbV9vdmVyc2l6ZUZpbHRlcjsKLSAgICBIYXNo
U2V0PENvcGllZEJsb2NrKj4gbV90b1NwYWNlU2V0OworICAgIFRpbnlCbG9vbUZpbHRlciBtX2Js
b2NrRmlsdGVyOworICAgIEhhc2hTZXQ8Q29waWVkQmxvY2sqPiBtX2Jsb2NrU2V0OwogCiAgICAg
TXV0ZXggbV90b1NwYWNlTG9jazsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
Q29waWVkU3BhY2VJbmxpbmVNZXRob2RzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQ29waWVkU3BhY2VJbmxpbmVNZXRob2RzLmgJKHJldmlzaW9uIDExODA2MCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9kcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMSArMzUsMjEgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
K2lubGluZSBib29sIENvcGllZFNwYWNlOjpjb250YWlucyhDb3BpZWRCbG9jayogYmxvY2spCit7
CisgICAgcmV0dXJuICFtX2Jsb2NrRmlsdGVyLnJ1bGVPdXQocmVpbnRlcnByZXRfY2FzdDxCaXRz
PihibG9jaykpICYmIG1fYmxvY2tTZXQuY29udGFpbnMoYmxvY2spOworfQorCiBpbmxpbmUgYm9v
bCBDb3BpZWRTcGFjZTo6Y29udGFpbnModm9pZCogcHRyLCBDb3BpZWRCbG9jayomIHJlc3VsdCkK
IHsKICAgICBDb3BpZWRCbG9jayogYmxvY2sgPSBibG9ja0ZvcihwdHIpOworICAgIGlmIChjb250
YWlucyhibG9jaykpIHsKKyAgICAgICAgcmVzdWx0ID0gYmxvY2s7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICBibG9jayA9IG92ZXJzaXplQmxvY2tGb3IocHRyKTsKICAgICByZXN1
bHQgPSBibG9jazsKLSAgICByZXR1cm4gIW1fdG9TcGFjZUZpbHRlci5ydWxlT3V0KHJlaW50ZXJw
cmV0X2Nhc3Q8Qml0cz4oYmxvY2spKSAmJiBtX3RvU3BhY2VTZXQuY29udGFpbnMoYmxvY2spOwor
ICAgIHJldHVybiBjb250YWlucyhibG9jayk7CiB9CiAKIGlubGluZSB2b2lkIENvcGllZFNwYWNl
OjpwaW4oQ29waWVkQmxvY2sqIGJsb2NrKQpAQCAtNTMsNyArNjMsNyBAQCBpbmxpbmUgdm9pZCBD
b3BpZWRTcGFjZTo6c3RhcnRlZENvcHlpbmcoCiAgICAgbV9mcm9tU3BhY2UgPSBtX3RvU3BhY2U7
CiAgICAgbV90b1NwYWNlID0gdGVtcDsKIAotICAgIG1fdG9TcGFjZUZpbHRlci5yZXNldCgpOwor
ICAgIG1fYmxvY2tGaWx0ZXIucmVzZXQoKTsKICAgICBtX2FsbG9jYXRvci5zdGFydGVkQ29weWlu
ZygpOwogCiAgICAgQVNTRVJUKCFtX2luQ29weWluZ1BoYXNlKTsKQEAgLTk4LDggKzEwOCw4IEBA
IGlubGluZSBDaGVja2VkQm9vbGVhbiBDb3BpZWRTcGFjZTo6YWRkTmUKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAKICAgICBtX3RvU3BhY2UtPnB1c2goYmxvY2spOwotICAgIG1fdG9T
cGFjZUZpbHRlci5hZGQocmVpbnRlcnByZXRfY2FzdDxCaXRzPihibG9jaykpOwotICAgIG1fdG9T
cGFjZVNldC5hZGQoYmxvY2spOworICAgIG1fYmxvY2tGaWx0ZXIuYWRkKHJlaW50ZXJwcmV0X2Nh
c3Q8Qml0cz4oYmxvY2spKTsKKyAgICBtX2Jsb2NrU2V0LmFkZChibG9jayk7CiAgICAgbV9hbGxv
Y2F0b3IucmVzZXRDdXJyZW50QmxvY2soYmxvY2spOwogICAgIHJldHVybiB0cnVlOwogfQo=
</data>
<flag name="review"
          id="149984"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>