<?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>76150</bug_id>
          
          <creation_ts>2012-01-11 23:23:14 -0800</creation_ts>
          <short_desc>PeerConnection crashes when adding a NULL media stream</short_desc>
          <delta_ts>2012-01-30 12:25:37 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#video-conferencing-and-peer-to-peer-communication</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>58550</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Mao">yujie.mao</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>adam.bergkvist</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yujie.mao</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>534594</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Mao">yujie.mao</who>
    <bug_when>2012-01-11 23:23:14 -0800</bug_when>
    <thetext>void PeerConnection::addStream(PassRefPtr&lt;MediaStream&gt; prpStream, ExceptionCode&amp; ec)
{
    ......

    // The MediaStream object is guaranteed to exist since StrictTypeChecking is set in the idl.
 
    RefPtr&lt;MediaStream&gt; stream = prpStream;

    if (m_localStreams-&gt;contains(stream.get()))
         return;

    m_localStreams-&gt;append(stream);
 
    MediaStreamDescriptor* streamDescriptor = stream-&gt;descriptor();

    .......
}

if prpStream is a NULL media stream, then stream-&gt;descriptor() may cause memory leak</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534685</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2012-01-12 02:42:55 -0800</bug_when>
    <thetext>I&apos;m not sure what you mean by memory leak here. The comment about StrictTypeChecking implies that null media streams are handled by the JS binding so that this method will never be called with a null MediaStream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535474</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Mao">yujie.mao</who>
    <bug_when>2012-01-12 23:34:33 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; I&apos;m not sure what you mean by memory leak here. The comment about StrictTypeChecking implies that null media streams are handled by the JS binding so that this method will never be called with a null MediaStream.

You are right, I can see the JS binding code deal with addStream arguments, but it&apos;s weird in my platform, if I try to new a peerconnection object, then add a null media stream, it doesn&apos;t throw any exception. I try to trace the code, and always get a &lt;stream = 0&gt;, then the renderer crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544025</commentid>
    <comment_count>3</comment_count>
      <attachid>124305</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-01-27 06:34:05 -0800</bug_when>
    <thetext>Created attachment 124305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545301</commentid>
    <comment_count>4</comment_count>
      <attachid>124305</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 12:25:32 -0800</bug_when>
    <thetext>Comment on attachment 124305
Patch

Clearing flags on attachment: 124305

Committed r106275: &lt;http://trac.webkit.org/changeset/106275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545302</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 12:25:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124305</attachid>
            <date>2012-01-27 06:34:05 -0800</date>
            <delta_ts>2012-01-30 12:25:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76150-20120127153403.patch</filename>
            <type>text/plain</type>
            <size>5740</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWMxYjljMjNjZTlhYzky
OWEwMWZlODBjMjYyMTQzNTQyZDcyNGJmOC4uYTEzNWRiOWU3YjUxOWVmMzY0YWQwNDM2NWYzNzQw
YTA0Nzc3NWJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTI3ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lbW9yeSBsZWFr
IGNhdXNlZCBieSBQZWVyQ29ubmVjdGlvbiBhZGQgYSBOVUxMIG1lZGlhIHN0cmVhbQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNTAKKworICAgICAg
ICBJdCB3YXMgbXkgbWlzc3VuZGVyc3RhbmRpbmcgdGhhdCB0aGUgSURMIGtleXdvcmQgW1N0cmlj
dFR5cGVDaGVja2luZ10gYWxzbyBwcm90ZWN0cyBhZ2FpbnN0CisgICAgICAgIG51bGwgb3IgdW5k
ZWZpbmVkIGFyZ3VtZW50cywgaXQgZG9lc24ndC4gQWRkZWQgY2hlY2tzIGZvciBudWxsIHBvaW50
ZXJzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmh0bWwKKworICAg
ICAgICAqIG1lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlZXJDb25uZWN0aW9uOjphZGRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5l
Y3Rpb246OnJlbW92ZVN0cmVhbSk6CisKIDIwMTItMDEtMjUgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdWxkIGJlIHBv
c3NpYmxlIHRvIG9wZW4gZnVuY3Rpb24gZGVjbGFyYXRpb24gZnJvbSBzY3JpcHQgcG9wb3Zlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IGU1
NDQ0N2FlYjEzNTEzZWFhMTllOGE1MjE3NmFlZWU4M2Q1M2UyMTguLmJiNDkzZDc2ODM4OWY4ODA0
NDRjMWJhMzVkMmY3YjMyZWU2M2U4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVh
bS9QZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTExNSwxNSArMTE1LDE3IEBAIHZvaWQgUGVlckNvbm5l
Y3Rpb246OnNlbmQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogdm9p
ZCBQZWVyQ29ubmVjdGlvbjo6YWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHBycFN0
cmVhbSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJl
YW0gPSBwcnBTdHJlYW07CisgICAgaWYgKCFzdHJlYW0pIHsKKyAgICAgICAgZWMgPSAgVFlQRV9N
SVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobV9yZWFkeVN0
YXRlID09IENMT1NFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVGhlIE1lZGlhU3RyZWFtIG9iamVjdCBpcyBndWFy
YW50ZWVkIHRvIGV4aXN0IHNpbmNlIFN0cmljdFR5cGVDaGVja2luZyBpcyBzZXQgaW4gdGhlIGlk
bC4KLQotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFtOwotCiAgICAg
aWYgKG1fbG9jYWxTdHJlYW1zLT5jb250YWlucyhzdHJlYW0uZ2V0KCkpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTE0OCw3ICsxNTAsMTAgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbjo6cmVtb3ZlU3Ry
ZWFtKE1lZGlhU3RyZWFtKiBzdHJlYW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgLy8gVGhlIE1lZGlhU3RyZWFtIG9iamVjdCBpcyBndWFyYW50ZWVk
IHRvIGV4aXN0IHNpbmNlIFN0cmljdFR5cGVDaGVja2luZyBpcyBzZXQgaW4gdGhlIGlkbC4KKyAg
ICBpZiAoIXN0cmVhbSkgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAg
ICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKCFtX2xvY2FsU3RyZWFtcy0+Y29udGFpbnMoc3Ry
ZWFtKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4ZDc1OTZhYzc2ZGExYWEwYWQ2ZjgzNmMw
MjgxMTllNzNkY2FmMzIuLmNjNTcyZjlmYWZmMTJjNDQwYzAzMWM0Mzk5ZWM4NzZmYTMyNDE5ZDMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0yNyAgVG9tbXkgV2lkZW5mbHljaHQgIDx0
b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZW1vcnkgbGVhayBjYXVzZWQgYnkgUGVlckNv
bm5lY3Rpb24gYWRkIGEgTlVMTCBtZWRpYSBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTUwCisKKyAgICAgICAgQWRkZWQgYSBiYXNpYyBM
YXlvdXRUZXN0IGZvciBudWxsL3VuZGVmaW5lZCBhcmd1bWVudHMgdG8gUGVlckNvbm5lY3Rpb246
OmFkZFN0cmVhbSgpLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9u
LWFkZHN0cmVhbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Njcmlw
dC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0uanM6IEFkZGVkLgorCiAyMDEyLTAxLTI1
ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHNob3VsZCBiZSBwb3NzaWJsZSB0byBvcGVuIGZ1bmN0aW9uIGRlY2xhcmF0aW9u
IGZyb20gc2NyaXB0IHBvcG92ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45OTU4MGNmZjIyZDYwMjhmODE2Y2JhMTE1NzZiZGEwOTMwYmFiMmYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlv
bi1hZGRzdHJlYW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIFBlZXJDb25u
ZWN0aW9uOjphZGRTdHJlYW0oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgcGMuYWRkU3RyZWFtKCkgdGhyZXcgVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cwor
UEFTUyBwYy5hZGRTdHJlYW0odW5kZWZpbmVkKSB0aHJldyBFcnJvcjogVFlQRV9NSVNNQVRDSF9F
UlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgcGMuYWRkU3RyZWFtKG51bGwpIHRocmV3IEVycm9y
OiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNworUEFTUyBwYy5hZGRTdHJlYW0o
bmV3IEFycmF5KCkpIHRocmV3IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE3YmU5MGZkODNmNmZiZGU3N2VkNDE2OTU4NTJlODNlYWNiMDA1YzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9u
LWFkZHN0cmVhbS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9u
LWFkZHN0cmVhbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTg0MWQ1MGIxYjA2NTk5MTJiNDI1ZjI5ZTQ5NDM1
N2VjYWJlYjc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmpzCkBAIC0wLDAgKzEsMzIg
QEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBQZWVyQ29ubmVjdGlvbjo6YWRkU3RyZWFtKCkuIik7CisK
K3ZhciBwYyA9IG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBzb21lLnNlcnZlci5jb20i
LCBmdW5jdGlvbigpIHt9KTsKKwordHJ5IHsKKyAgICBwYy5hZGRTdHJlYW0oKTsKK30gY2F0Y2go
ZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLmFkZFN0cmVhbSgpIHRocmV3ICcgKyBlKTsKK30KKwor
dHJ5IHsKKyAgICBwYy5hZGRTdHJlYW0odW5kZWZpbmVkKTsKK30gY2F0Y2goZSkgeworICAgIHRl
c3RQYXNzZWQoJ3BjLmFkZFN0cmVhbSh1bmRlZmluZWQpIHRocmV3ICcgKyBlKTsKK30KKwordHJ5
IHsKKyAgICBwYy5hZGRTdHJlYW0obnVsbCk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2Vk
KCdwYy5hZGRTdHJlYW0obnVsbCkgdGhyZXcgJyArIGUpOworfQorCit0cnkgeworICAgIHBjLmFk
ZFN0cmVhbShuZXcgQXJyYXkoKSk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5h
ZGRTdHJlYW0obmV3IEFycmF5KCkpIHRocmV3ICcgKyBlKTsKK30KKworZmluaXNoSlNUZXN0KCk7
CisKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>