<?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>63150</bug_id>
          
          <creation_ts>2011-06-22 09:54:29 -0700</creation_ts>
          <short_desc>[UNIX] Increment/decrement module load conter in NetscapePluginModule::getPluginInfo()</short_desc>
          <delta_ts>2011-06-23 10:42:40 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>cshu</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>425315</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-06-22 09:54:29 -0700</bug_when>
    <thetext>Since the method is static, we are using NetscapePluginModule::getOrCreate() to get the module. If it&apos;s created, the load counter is 0, so that when module is deleted, shutdown() hasn&apos;t been called and the destructor crashes in the assert that checks the module has been removed from the initialized module list. We should increment the load counter, and decrement it before getPluginInfo() returns, so that decrementLoadCount() will call shutdown() if counter is 0 and the module will be deleted from the list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425316</commentid>
    <comment_count>1</comment_count>
      <attachid>98189</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-06-22 09:56:36 -0700</bug_when>
    <thetext>Created attachment 98189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425980</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-06-22 23:47:14 -0700</bug_when>
    <thetext>Committed r89539: &lt;http://trac.webkit.org/changeset/89539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426289</commentid>
    <comment_count>3</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-06-23 10:42:40 -0700</bug_when>
    <thetext>*** Bug 63184 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98189</attachid>
            <date>2011-06-22 09:56:36 -0700</date>
            <delta_ts>2011-06-22 10:22:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-crash-get-plugin-info.diff</filename>
            <type>text/plain</type>
            <size>3052</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxOWE2ZjUxLi45YTRiZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUg
QEAKIDIwMTEtMDYtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtVTklY
XSBJbmNyZW1lbnQvZGVjcmVtZW50IG1vZHVsZSBsb2FkIGNvbnRlciBpbiBOZXRzY2FwZVBsdWdp
bk1vZHVsZTo6Z2V0UGx1Z2luSW5mbygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MzE1MAorCisgICAgICAgIFNpbmNlIHRoZSBtZXRob2QgaXMgc3Rh
dGljLCB3ZSBhcmUgdXNpbmcKKyAgICAgICAgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldE9yQ3Jl
YXRlKCkgdG8gZ2V0IHRoZSBtb2R1bGUuIElmIGl0J3MKKyAgICAgICAgY3JlYXRlZCwgdGhlIGxv
YWQgY291bnRlciBpcyAwLCBzbyB0aGF0IHdoZW4gbW9kdWxlIGlzIGRlbGV0ZWQsCisgICAgICAg
IHNodXRkb3duKCkgaGFzbid0IGJlZW4gY2FsbGVkIGFuZCB0aGUgZGVzdHJ1Y3RvciBjcmFzaGVz
IGluIHRoZQorICAgICAgICBhc3NlcnQgdGhhdCBjaGVja3MgdGhlIG1vZHVsZSBoYXMgYmVlbiBy
ZW1vdmVkIGZyb20gdGhlCisgICAgICAgIGluaXRpYWxpemVkIG1vZHVsZSBsaXN0LiBXZSBzaG91
bGQgaW5jcmVtZW50IHRoZSBsb2FkIGNvdW50ZXIsIGFuZAorICAgICAgICBkZWNyZW1lbnQgaXQg
YmVmb3JlIGdldFBsdWdpbkluZm8oKSByZXR1cm5zLCBzbyB0aGF0CisgICAgICAgIGRlY3JlbWVu
dExvYWRDb3VudCgpIHdpbGwgY2FsbCBzaHV0ZG93bigpIGlmIGNvdW50ZXIgaXMgMCBhbmQgdGhl
CisgICAgICAgIG1vZHVsZSB3aWxsIGJlIGRlbGV0ZWQgZnJvbSB0aGUgbGlzdC4KKworICAgICAg
ICAqIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZv
KToKKworMjAxMS0wNi0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgogCiAgICAgICAgIFtH
VEtdIFJlbW92ZSBDb25uZWN0aW9uOjpzZXRTaG91bGRDbG9zZUNvbm5lY3Rpb25PblByb2Nlc3NU
ZXJtaW5hdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luTW9kdWxlWDExLmNwcApp
bmRleCA4YzQyMjUwLi5iYjQyZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1v
ZHVsZVgxMS5jcHAKQEAgLTEzMCwxNyArMTMwLDIzIEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1
bGU6OmdldFBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBQbHVnaW5Nb2R1bGVJ
CiAgICAgaWYgKCFwbHVnaW5Nb2R1bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIHBs
dWdpbk1vZHVsZS0+aW5jcmVtZW50TG9hZENvdW50KCk7CisKICAgICBwbHVnaW4ucGF0aCA9IHBs
dWdpblBhdGg7CiAgICAgcGx1Z2luLmluZm8uZmlsZSA9IHBhdGhHZXRGaWxlTmFtZShwbHVnaW5Q
YXRoKTsKIAogICAgIE1vZHVsZSogbW9kdWxlID0gcGx1Z2luTW9kdWxlLT5tb2R1bGUoKTsKICAg
ICBOUFBfR2V0VmFsdWVQcm9jUHRyIE5QUF9HZXRWYWx1ZSA9IG1vZHVsZS0+ZnVuY3Rpb25Qb2lu
dGVyPE5QUF9HZXRWYWx1ZVByb2NQdHI+KCJOUF9HZXRWYWx1ZSIpOwotICAgIGlmICghTlBQX0dl
dFZhbHVlKQorICAgIGlmICghTlBQX0dldFZhbHVlKSB7CisgICAgICAgIHBsdWdpbk1vZHVsZS0+
ZGVjcmVtZW50TG9hZENvdW50KCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAg
ICBOUF9HZXRNSU1FRGVzY3JpcHRpb25GdW5jUHRyIE5QX0dldE1JTUVEZXNjcmlwdGlvbiA9IG1v
ZHVsZS0+ZnVuY3Rpb25Qb2ludGVyPE5QX0dldE1JTUVEZXNjcmlwdGlvbkZ1bmNQdHI+KCJOUF9H
ZXRNSU1FRGVzY3JpcHRpb24iKTsKLSAgICBpZiAoIU5QX0dldE1JTUVEZXNjcmlwdGlvbikKKyAg
ICBpZiAoIU5QX0dldE1JTUVEZXNjcmlwdGlvbikgeworICAgICAgICBwbHVnaW5Nb2R1bGUtPmRl
Y3JlbWVudExvYWRDb3VudCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAg
Y2hhciogYnVmZmVyID0gMDsKICAgICBOUEVycm9yIGVyciA9IE5QUF9HZXRWYWx1ZSgwLCBOUFBW
cGx1Z2luRGVzY3JpcHRpb25TdHJpbmcsICZidWZmZXIpOwpAQCAtMTQ4LDExICsxNTQsMTUgQEAg
Ym9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mbyhjb25zdCBTdHJpbmcmIHBs
dWdpblBhdGgsIFBsdWdpbk1vZHVsZUkKICAgICAgICAgcGx1Z2luLmluZm8uZGVzYyA9IGJ1ZmZl
cjsKIAogICAgIGNvbnN0IGNoYXIqIG1pbWVEZXNjcmlwdGlvbiA9IE5QX0dldE1JTUVEZXNjcmlw
dGlvbigpOwotICAgIGlmICghbWltZURlc2NyaXB0aW9uKQorICAgIGlmICghbWltZURlc2NyaXB0
aW9uKSB7CisgICAgICAgIHBsdWdpbk1vZHVsZS0+ZGVjcmVtZW50TG9hZENvdW50KCk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBzZXRNSU1FRGVzY3JpcHRpb24obWltZURl
c2NyaXB0aW9uLCBwbHVnaW4pOwogCisgICAgcGx1Z2luTW9kdWxlLT5kZWNyZW1lbnRMb2FkQ291
bnQoKTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCg==
</data>
<flag name="review"
          id="92345"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>