<?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>84668</bug_id>
          
          <creation_ts>2012-04-23 20:09:48 -0700</creation_ts>
          <short_desc>ObjcClass::methodsNamed() can leak if buffer is dynamically allocated</short_desc>
          <delta_ts>2014-04-24 16:45:30 -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>
          <dependson>84915</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>608324</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-23 20:09:48 -0700</bug_when>
    <thetext>From ObjcClass::methodsNamed():

    char fixedSizeBuffer[1024];
    char* buffer = fixedSizeBuffer;
    CString jsName = identifier.ascii();
    if (!convertJSMethodNameToObjc(jsName.data(), buffer, sizeof(fixedSizeBuffer))) {
        int length = jsName.length() + 1;
        buffer = new char[length];
        if (!buffer || !convertJSMethodNameToObjc(jsName.data(), buffer, length))
            return methodList;
    }

    RetainPtr&lt;CFStringRef&gt; methodName(AdoptCF, CFStringCreateWithCString(NULL, buffer, kCFStringEncodingASCII));
    Method* method = (Method*)CFDictionaryGetValue(_methods.get(), methodName.get());
    if (method) {
        methodList.append(method);
        return methodList;
    }

If the second convertJSMethodNameToObjc() return false, or if the the dictionary match the method name, buffer is never released.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610880</commentid>
    <comment_count>1</comment_count>
      <attachid>139054</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-26 13:14:16 -0700</bug_when>
    <thetext>Created attachment 139054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610959</commentid>
    <comment_count>2</comment_count>
      <attachid>139054</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-26 14:06:59 -0700</bug_when>
    <thetext>Comment on attachment 139054
Patch

Clearing flags on attachment: 139054

Committed r115358: &lt;http://trac.webkit.org/changeset/115358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610960</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-26 14:07:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003863</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-24 16:45:30 -0700</bug_when>
    <thetext>Moving all JavaScriptGlue bugs to JavaScriptCore. The JavaScriptGlue framework itself is long gone. And most of the more recent bugs put in this component were put there by people who thought this was for some other aspect of “JavaScript glue” and have nothing to do with the actual original reason for the existence of this component, which was an OS-X-only framework named JavaScriptGlue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139054</attachid>
            <date>2012-04-26 13:14:16 -0700</date>
            <delta_ts>2012-04-26 14:06:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84668-20120426131415.patch</filename>
            <type>text/plain</type>
            <size>13775</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q0NGZhMTcwODFhZGU2
ZTFhNjlkYWEzNWYwYThjZWNkNTc1YjQ1MC4uMjE5MDM0ZTc3MTFiNTI3MjgzZjVjMzcwNmVmNWI4
NzE4NDU2ZjE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA0LTI2ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE9iamNDbGFzczo6
bWV0aG9kc05hbWVkKCkgY2FuIGxlYWsgaWYgYnVmZmVyIGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ2NjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Ug
T2JqY0NsYXNzOjptZXRob2RzTmFtZWQoKSB0byBiZSBiYXNlZCBvbiBhIHZlY3RvciBpbnN0ZWFk
IG9mIG1hbmFnaW5nCisgICAgICAgIHRoZSBtZW1vcnkgbWFudWFsbHkuCisKKyAgICAgICAgVGVz
dHM6IHBsYXRmb3JtL21hYy9wbHVnaW5zL2JpbmRpbmdzLW9iamMtbG9uZy1tZXRob2QtbmFtZS5o
dG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLW1l
dGhvZC1uYW1lLWNvbnZlcnNpb24uaHRtbAorCisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19j
bGFzcy5tbToKKyAgICAgICAgKEJpbmRpbmdzKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNv
bnZlcnRKU01ldGhvZE5hbWVUb09iamMpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0Ns
YXNzOjptZXRob2RzTmFtZWQpOgorCiAyMDEyLTA0LTI1ICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBTdHJpbmcgaW5zdGVhZCBvZiBSZWZQdHI8
U3RyaW5nSW1wbD4gZm9yIHRoZSBjYWNoZSBvZiBPYmpjQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX2NsYXNzLm1tCmluZGV4IDEzMDNiM2FlYmM0MDFlNmU1NjY4MTg2Yzk0ZmUx
N2ZiNTE3YjkyNzcuLjgyYzc1OTM2YmJiZDZjMDU1OWEzYjYzZDU1ZmM1N2RkYmI5MTQ4MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbQpAQCAtODAsNTcgKzgwLDM3
IEBAIE9iamNDbGFzcyogT2JqY0NsYXNzOjpjbGFzc0ZvcklzQShDbGFzc1N0cnVjdFB0ciBpc2Ep
CiAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgaW52ZXJzZSBvZiB0aGF0IG9wZXJhdGlv
bi4KIAogICAgIEByZXN1bHQgRmlsbHMgJ2J1ZmZlcicgd2l0aCB0aGUgT2JqZWN0aXZlQyBtZXRo
b2QgbmFtZSB0aGF0IGNvcnJlc3BvbmRzIHRvICdKU05hbWUnLgotICAgICAgICAgICAgUmV0dXJu
cyB0cnVlIGZvciBzdWNjZXNzLCBmYWxzZSBmb3IgZmFpbHVyZS4gKEZhaWx1cmUgb2NjdXJzIHdo
ZW4gJ2J1ZmZlcicKLSAgICAgICAgICAgIGlzIG5vdCBiaWcgZW5vdWdoIHRvIGhvbGQgdGhlIHJl
c3VsdC4pCiAqLwotc3RhdGljIGJvb2wgY29udmVydEpTTWV0aG9kTmFtZVRvT2JqYyhjb25zdCBj
aGFyICpKU05hbWUsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUpCit0eXBlZGVmIFZl
Y3RvcjxjaGFyLCAyNTY+IEpTTmFtZUNvbnZlcnNpb25CdWZmZXI7CitzdGF0aWMgaW5saW5lIHZv
aWQgY29udmVydEpTTWV0aG9kTmFtZVRvT2JqYyhjb25zdCBDU3RyaW5nJiBqc05hbWUsIEpTTmFt
ZUNvbnZlcnNpb25CdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBBU1NFUlQoSlNOYW1lICYmIGJ1ZmZl
cik7CisgICAgYnVmZmVyLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoanNOYW1lLmxlbmd0aCgpICsg
MSk7CiAKLSAgICBjb25zdCBjaGFyICpzcCA9IEpTTmFtZTsgLy8gc291cmNlIHBvaW50ZXIKLSAg
ICBjaGFyICpkcCA9IGJ1ZmZlcjsgLy8gZGVzdGluYXRpb24gcG9pbnRlcgotCi0gICAgY2hhciAq
ZW5kID0gYnVmZmVyICsgYnVmZmVyU2l6ZTsKLSAgICB3aGlsZSAoZHAgPCBlbmQpIHsKLSAgICAg
ICAgaWYgKCpzcCA9PSAnJCcpIHsKLSAgICAgICAgICAgICsrc3A7Ci0gICAgICAgICAgICAqZHAg
PSAqc3A7Ci0gICAgICAgIH0gZWxzZSBpZiAoKnNwID09ICdfJykKLSAgICAgICAgICAgICpkcCA9
ICc6JzsKKyAgICBjb25zdCBjaGFyKiBzb3VyY2UgPSBqc05hbWUuZGF0YSgpOworICAgIHdoaWxl
ICh0cnVlKSB7CisgICAgICAgIGlmICgqc291cmNlID09ICckJykgeworICAgICAgICAgICAgKytz
b3VyY2U7CisgICAgICAgICAgICBidWZmZXIudW5jaGVja2VkQXBwZW5kKCpzb3VyY2UpOworICAg
ICAgICB9IGVsc2UgaWYgKCpzb3VyY2UgPT0gJ18nKQorICAgICAgICAgICAgYnVmZmVyLnVuY2hl
Y2tlZEFwcGVuZCgnOicpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAqZHAgPSAqc3A7Ci0K
LSAgICAgICAgLy8gSWYgYSBmdXR1cmUgY29kZXIgcHV0cyBmdW5ueSArKyBvcGVyYXRvcnMgYWJv
dmUsIHdlIG1pZ2h0IHdyaXRlIG9mZiB0aGUgZW5kCi0gICAgICAgIC8vIG9mIHRoZSBidWZmZXIg
aW4gdGhlIG1pZGRsZSBvZiB0aGlzIGxvb3AuIExldCdzIG1ha2Ugc3VyZSB0byBjaGVjayBmb3Ig
dGhhdC4KLSAgICAgICAgQVNTRVJUKGRwIDwgZW5kKTsKKyAgICAgICAgICAgIGJ1ZmZlci51bmNo
ZWNrZWRBcHBlbmQoKnNvdXJjZSk7CiAKLSAgICAgICAgaWYgKCpzcCA9PSAwKSB7IC8vIFdlIGZp
bmlzaGVkIGNvbnZlcnRpbmcgSlNOYW1lCi0gICAgICAgICAgICBBU1NFUlQoc3RybGVuKEpTTmFt
ZSkgPCBidWZmZXJTaXplKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Cisg
ICAgICAgIGlmICghKnNvdXJjZSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICArK3Nw
OwotICAgICAgICArK2RwOworICAgICAgICArK3NvdXJjZTsKICAgICB9Ci0KLSAgICByZXR1cm4g
ZmFsc2U7IC8vIFdlIHJhbiBvdXQgb2YgYnVmZmVyIGJlZm9yZSBjb252ZXJ0aW5nIEpTTmFtZQog
fQogCiBNZXRob2RMaXN0IE9iamNDbGFzczo6bWV0aG9kc05hbWVkKGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIEluc3RhbmNlKikgY29uc3QKIHsKLSAgICBNZXRob2RMaXN0IG1ldGhvZExp
c3Q7Ci0gICAgY2hhciBmaXhlZFNpemVCdWZmZXJbMTAyNF07Ci0gICAgY2hhciogYnVmZmVyID0g
Zml4ZWRTaXplQnVmZmVyOwogICAgIENTdHJpbmcganNOYW1lID0gaWRlbnRpZmllci5hc2NpaSgp
OwotICAgIGlmICghY29udmVydEpTTWV0aG9kTmFtZVRvT2JqYyhqc05hbWUuZGF0YSgpLCBidWZm
ZXIsIHNpemVvZihmaXhlZFNpemVCdWZmZXIpKSkgewotICAgICAgICBpbnQgbGVuZ3RoID0ganNO
YW1lLmxlbmd0aCgpICsgMTsKLSAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbbGVuZ3RoXTsKLSAg
ICAgICAgaWYgKCFidWZmZXIgfHwgIWNvbnZlcnRKU01ldGhvZE5hbWVUb09iamMoanNOYW1lLmRh
dGEoKSwgYnVmZmVyLCBsZW5ndGgpKQotICAgICAgICAgICAgcmV0dXJuIG1ldGhvZExpc3Q7Ci0g
ICAgfQorICAgIEpTTmFtZUNvbnZlcnNpb25CdWZmZXIgYnVmZmVyOworICAgIGNvbnZlcnRKU01l
dGhvZE5hbWVUb09iamMoanNOYW1lLCBidWZmZXIpOwogCi0gICAgCi0gICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBtZXRob2ROYW1lKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmco
TlVMTCwgYnVmZmVyLCBrQ0ZTdHJpbmdFbmNvZGluZ0FTQ0lJKSk7CisgICAgTWV0aG9kTGlzdCBt
ZXRob2RMaXN0OworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbWV0aG9kTmFtZShBZG9wdENG
LCBDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEwsIGJ1ZmZlci5kYXRhKCksIGtDRlN0cmlu
Z0VuY29kaW5nQVNDSUkpKTsKICAgICBNZXRob2QqIG1ldGhvZCA9IChNZXRob2QqKUNGRGljdGlv
bmFyeUdldFZhbHVlKF9tZXRob2RzLmdldCgpLCBtZXRob2ROYW1lLmdldCgpKTsKICAgICBpZiAo
bWV0aG9kKSB7CiAgICAgICAgIG1ldGhvZExpc3QuYXBwZW5kKG1ldGhvZCk7CkBAIC0xNTgsNyAr
MTM4LDcgQEAgTWV0aG9kTGlzdCBPYmpjQ2xhc3M6Om1ldGhvZHNOYW1lZChjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyLCBJbnN0YW5jZSopIGNvbnMKICAgICAgICAgICAgIGlmIChbdGhpc0Ns
YXNzIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViU2NyaXB0TmFtZUZvclNlbGVjdG9y
OildKQogICAgICAgICAgICAgICAgIG1hcHBlZE5hbWUgPSBbdGhpc0NsYXNzIHdlYlNjcmlwdE5h
bWVGb3JTZWxlY3RvcjpvYmpjTWV0aG9kU2VsZWN0b3JdOwogCi0gICAgICAgICAgICBpZiAoKG1h
cHBlZE5hbWUgJiYgW21hcHBlZE5hbWUgaXNFcXVhbDooTlNTdHJpbmcqKW1ldGhvZE5hbWUuZ2V0
KCldKSB8fCBzdHJjbXAob2JqY01ldGhvZFNlbGVjdG9yTmFtZSwgYnVmZmVyKSA9PSAwKSB7Cisg
ICAgICAgICAgICBpZiAoKG1hcHBlZE5hbWUgJiYgW21hcHBlZE5hbWUgaXNFcXVhbDooTlNTdHJp
bmcqKW1ldGhvZE5hbWUuZ2V0KCldKSB8fCBzdHJjbXAob2JqY01ldGhvZFNlbGVjdG9yTmFtZSwg
YnVmZmVyLmRhdGEoKSkgPT0gMCkgewogICAgICAgICAgICAgICAgIE1ldGhvZCogYU1ldGhvZCA9
IG5ldyBPYmpjTWV0aG9kKHRoaXNDbGFzcywgb2JqY01ldGhvZFNlbGVjdG9yKTsgLy8gZGVsZXRl
ZCB3aGVuIHRoZSBkaWN0aW9uYXJ5IGlzIGRlc3Ryb3llZAogICAgICAgICAgICAgICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKF9tZXRob2RzLmdldCgpLCBtZXRob2ROYW1lLmdldCgpLCBhTWV0aG9k
KTsKICAgICAgICAgICAgICAgICBtZXRob2RMaXN0LmFwcGVuZChhTWV0aG9kKTsKQEAgLTE2OSw5
ICsxNDksNiBAQCBNZXRob2RMaXN0IE9iamNDbGFzczo6bWV0aG9kc05hbWVkKGNvbnN0IElkZW50
aWZpZXImIGlkZW50aWZpZXIsIEluc3RhbmNlKikgY29ucwogICAgICAgICBmcmVlKG9iamNNZXRo
b2RMaXN0KTsKICAgICB9CiAKLSAgICBpZiAoYnVmZmVyICE9IGZpeGVkU2l6ZUJ1ZmZlcikKLSAg
ICAgICAgZGVsZXRlIFtdIGJ1ZmZlcjsKLQogICAgIHJldHVybiBtZXRob2RMaXN0OwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGMwZjlj
MjJiYzFkYmI1NDE1YzU2Yjc5ODNmODhhNWE2MzEwYmZjZC4uYjI0ZmIwOWY5NTM3NWI4MWU5NDE3
ZjFmOWU0YmEwODU4NWQzZjU5YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTI2ICBCZW5qYW1pbiBQb3Vs
YWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE9iamNDbGFzczo6bWV0aG9kc05h
bWVkKCkgY2FuIGxlYWsgaWYgYnVmZmVyIGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ2NjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRlbmQgT2JqQ1BsdWdp
biB0byBzdXBwb3J0IHRoZSBuZXcgbGF5b3V0IHRlc3RzIG9mIHRoZSBPYmplY3RpdmUtQyBicmlk
Z2UuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ1BsdWdpbi5tOgorICAgICAg
ICAoK1tPYmpDUGx1Z2luIGlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6XSk6CisgICAg
ICAgICgrW09iakNQbHVnaW4gd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOl0pOgorICAgICAgICAo
LVtPYmpDUGx1Z2luIG1ldGhvZE1hcHBlZFRvTG9uZ05hbWVdKToKKyAgICAgICAgKC1bT2JqQ1Bs
dWdpbiB0ZXN0Q29udmVyc2lvbkNvbG9uOl0pOgorICAgICAgICAoLVtPYmpDUGx1Z2luIF86XSk6
CisKIDIwMTItMDQtMjUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTUyMjIuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ1BsdWdpbi5tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL09iakNQbHVnaW4ubQppbmRleCAwMjNlYWUxN2ZjZWVkYzhhOGE5NjllNDAxMDE3
OGZlOTU2ZGY3OGIwLi5lMWFhMTI1Nzc0ZjFmMmZkYmUwNjhiY2QyYmVlYTAzZjJiMWQ4MWRmIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ1BsdWdpbi5tCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9PYmpDUGx1Z2luLm0KQEAgLTE0Miw3ICsxNDIsMTQgQEAg
KyAoQk9PTClpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0OihTRUwpYVNlbGVjdG9yCiAg
ICAgICAgIHJldHVybiBOTzsKIAogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHRocm93
SWZBcmd1bWVudElzTm90SGVsbG86KSkKLSAgICAgIHJldHVybiBOTzsKKyAgICAgICAgcmV0dXJu
IE5POworCisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobWV0aG9kTWFwcGVkVG9Mb25n
TmFtZSkpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIE5TU3RyaW5nICpzZWxlY3Rvck5hbWUg
PSBOU1N0cmluZ0Zyb21TZWxlY3RvcihhU2VsZWN0b3IpOworICAgIGlmIChbc2VsZWN0b3JOYW1l
IGhhc1ByZWZpeDpAInRlc3RDb252ZXJzaW9uIl0pCisgICAgICAgIHJldHVybiBOTzsKIAogICAg
IHJldHVybiBZRVM7CiB9CkBAIC0xNTMsNyArMTYwLDEwIEBAICsgKE5TU3RyaW5nICopd2ViU2Ny
aXB0TmFtZUZvclNlbGVjdG9yOihTRUwpYVNlbGVjdG9yCiAgICAgICAgIHJldHVybiBAImVjaG8i
OwogCiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodGhyb3dJZkFyZ3VtZW50SXNOb3RI
ZWxsbzopKQotICAgICAgcmV0dXJuIEAidGhyb3dJZkFyZ3VtZW50SXNOb3RIZWxsbyI7CisgICAg
ICAgIHJldHVybiBAInRocm93SWZBcmd1bWVudElzTm90SGVsbG8iOworCisgICAgaWYgKGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IobWV0aG9kTWFwcGVkVG9Mb25nTmFtZSkpCisgICAgICAgIHJldHVy
biBbQCIiIHN0cmluZ0J5UGFkZGluZ1RvTGVuZ3RoOjQwOTYgd2l0aFN0cmluZzogQCJsb25nIiBz
dGFydGluZ0F0SW5kZXg6MF07CiAKICAgICByZXR1cm4gbmlsOwogfQpAQCAtMTk2LDYgKzIwNiwy
MSBAQCAtICh2b2lkKXRocm93SWZBcmd1bWVudElzTm90SGVsbG86KE5TU3RyaW5nICopc3RyCiAg
ICAgICAgIFtXZWJTY3JpcHRPYmplY3QgdGhyb3dFeGNlcHRpb246W05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCIlQCAhPSBIZWxsbyIsIHN0cl1dOwogfQogCistIChOU1N0cmluZyAqKW1ldGhv
ZE1hcHBlZFRvTG9uZ05hbWUKK3sKKyAgICByZXR1cm4gQCJtZXRob2RNYXBwZWRUb0xvbmdOYW1l
IjsKK30KKworLSAoTlNTdHJpbmcgKil0ZXN0Q29udmVyc2lvbkNvbG9uOihpbnQpdXNlbGVzcwor
eworICAgIHJldHVybiBAInRlc3RDb252ZXJzaW9uQ29sb246KGludCl1c2VsZXNzIjsKK30KKwor
LSAoTlNTdHJpbmcgKil0ZXN0Q29udmVyc2lvbkVzY2FwZUNoYXIkYV9iJF86KGludCl1c2VsZXNz
Cit7CisgICAgcmV0dXJuIEAidGVzdENvbnZlcnNpb25Fc2NhcGVDaGFyJGFfYiRfOihpbnQpdXNl
bGVzcyI7Cit9CisKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIGlmICh0aHJvd09uRGVhbGxvYykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyN2QzNmEzNTYyNDUxZGEzNGU5NmUzZGVjMmM4MDE2NzE4NTk1YTU2Li44MmJmODBi
NzA0YzZmMzQ2ZWM1ODBmMzFkYWNjZmFmNGUwYzk0MzEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTItMDQtMjYgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgT2JqY0NsYXNzOjptZXRob2RzTmFtZWQoKSBjYW4gbGVhayBpZiBidWZmZXIgaXMgZHlu
YW1pY2FsbHkgYWxsb2NhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NDY2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEV4dGVuZCB0aGUgdGVzdCBjb3ZlcmFnZSB0byBhY2Nlc3NvciB3aXRoIHZlcnkg
bG9uZyBuYW1lLiBBZGQgY292ZXJhZ2UgZm9yIHRoZQorICAgICAgICBKYXZhU2NyaXB0IHRvIE9i
amVjdGl2ZS1DIG1ldGhvZCBuYW1lIGNvbnZlcnNpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLWxvbmctbWV0aG9kLW5hbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLWxvbmct
bWV0aG9kLW5hbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3BsdWdpbnMv
YmluZGluZ3Mtb2JqYy1tZXRob2QtbmFtZS1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL3BsdWdpbnMvYmluZGluZ3Mtb2JqYy1tZXRob2QtbmFt
ZS1jb252ZXJzaW9uLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0LTI1ICBBbHBoYSBMYW0gIDxoY2xh
bUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9ucyB1
cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5k
aW5ncy1vYmpjLWxvbmctbWV0aG9kLW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3BsdWdpbnMvYmluZGluZ3Mtb2JqYy1sb25nLW1ldGhvZC1uYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44OGY4NTdjM2Y3NmE2OWQ3N2U4MGE0YTk1OTkxYmFlODVmMTYwMWFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvYmlu
ZGluZ3Mtb2JqYy1sb25nLW1ldGhvZC1uYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUZXN0IGludm9raW5nIGEgbWV0aG9kIHdpdGggYSBsb25nIG5hbWUgZG9lcyBub3QgY2F1c2Ug
Y3Jhc2ggb3IgbWVtb3J5IGxlYWsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIG9iakNQbHVnaW5bbWV0aG9kTmFtZV0oKSBpcyAibWV0aG9kTWFwcGVkVG9Mb25nTmFtZSIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLWxv
bmctbWV0aG9kLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL2Jp
bmRpbmdzLW9iamMtbG9uZy1tZXRob2QtbmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmZjhkNGYxODg5
NjFkYmQ4ODkzZGVmZGM5NzNlNjExMDViOWQyN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLWxvbmctbWV0aG9kLW5hbWUu
aHRtbApAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Cit2YXIgbWV0aG9kTmFtZSA9ICcnOworZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMjQ7ICsraSkKKyAgICAg
ICAgbWV0aG9kTmFtZSArPSAnbG9uZyc7CisKKyAgICBvYmpDUGx1Z2luW21ldGhvZE5hbWVdKCk7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIG9iakNQbHVnaW5b
bWV0aG9kTmFtZV0oKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ29iakNQbHVnaW5bbWV0
aG9kTmFtZV0oKScsICdtZXRob2RNYXBwZWRUb0xvbmdOYW1lJyk7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCk7Ij4KKzxl
bWJlZCBpZD0idGVzdENQbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0
c2NhcGUiPjwvZW1iZWQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGludm9raW5n
IGEgbWV0aG9kIHdpdGggYSBsb25nIG5hbWUgZG9lcyBub3QgY2F1c2UgY3Jhc2ggb3IgbWVtb3J5
IGxlYWsuIik7CisgICAganNUZXN0SXNBc3luYz10cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9w
bHVnaW5zL2JpbmRpbmdzLW9iamMtbWV0aG9kLW5hbWUtY29udmVyc2lvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLW1ldGhvZC1u
YW1lLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZjZhMmE0MDdhOTFiMTU5
YzA3NzVjYmZjZWY2YzAwMDljN2E2MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLW1ldGhvZC1uYW1lLWNvbnZlcnNpb24t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgdGhlIG5hbWUgY29udmVyc2lvbiB3
aGVuIGludm9raW5nIE9iamVjdGl2ZS1DIGZyb20gSmF2YVNjcmlwdC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgb2JqQ1BsdWdpblsndGVzdENvbnZlcnNpb25Db2xvbl8n
XSgxKSBpcyAidGVzdENvbnZlcnNpb25Db2xvbjooaW50KXVzZWxlc3MiCitQQVNTIG9iakNQbHVn
aW5bJ3Rlc3RDb252ZXJzaW9uRXNjYXBlQ2hhciQkYSRfYiQkJF9fJ10oMikgaXMgInRlc3RDb252
ZXJzaW9uRXNjYXBlQ2hhciRhX2IkXzooaW50KXVzZWxlc3MiCitQQVNTIG9iakNQbHVnaW5bJ3Rl
cyR0Q28kbnZlciRzaW9uJENvbCRvbl8nXSgxKSBpcyAidGVzdENvbnZlcnNpb25Db2xvbjooaW50
KXVzZWxlc3MiCitQQVNTIG9iakNQbHVnaW5bJ3Rlc3RDJG9udiRlcnNpJG9uRXMkY2FwZUMkaGFy
JCRhJF9iJCQkX18nXSgyKSBpcyAidGVzdENvbnZlcnNpb25Fc2NhcGVDaGFyJGFfYiRfOihpbnQp
dXNlbGVzcyIKK1BBU1Mgb2JqQ1BsdWdpblsndGVzdENvbnZlcnNpb25Db2xvbl8kJ10oMSkgaXMg
InRlc3RDb252ZXJzaW9uQ29sb246KGludCl1c2VsZXNzIgorUEFTUyBvYmpDUGx1Z2luWyd0ZXN0
Q29udmVyc2lvbkVzY2FwZUNoYXIkJGEkX2IkJCRfXyQnXSgyKSBpcyAidGVzdENvbnZlcnNpb25F
c2NhcGVDaGFyJGFfYiRfOihpbnQpdXNlbGVzcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLW1ldGhvZC1uYW1lLWNvbnZlcnNpb24uaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL2JpbmRpbmdzLW9iamMtbWV0aG9kLW5h
bWUtY29udmVyc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYzc4ZDIzMDhlYWM3YTk4Y2UzMmM0YTEw
NjZkMjc3ODA4NzNkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLW1ldGhvZC1uYW1lLWNvbnZlcnNpb24uaHRtbApAQCAt
MCwwICsxLDM0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgbWV0
aG9kTmFtZSA9ICcnOworZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm9iakNQbHVnaW5bJ3Rlc3RDb252ZXJz
aW9uQ29sb25fJ10oMSkiLCAndGVzdENvbnZlcnNpb25Db2xvbjooaW50KXVzZWxlc3MnKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm9iakNQbHVnaW5bJ3Rlc3RDb252ZXJzaW9uRXNjYXBl
Q2hhciQkYSRfYiQkJF9fJ10oMikiLCAndGVzdENvbnZlcnNpb25Fc2NhcGVDaGFyJGFfYiRfOihp
bnQpdXNlbGVzcycpOworCisgICAgLy8gIiQiIGFsb25lIGlzIGp1c3QgaWdub3JlZCBieSB0aGUg
Y29udmVyc2lvbi4KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm9iakNQbHVnaW5bJ3RlcyR0
Q28kbnZlciRzaW9uJENvbCRvbl8nXSgxKSIsICd0ZXN0Q29udmVyc2lvbkNvbG9uOihpbnQpdXNl
bGVzcycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JqQ1BsdWdpblsndGVzdEMkb252
JGVyc2kkb25FcyRjYXBlQyRoYXIkJGEkX2IkJCRfXyddKDIpIiwgJ3Rlc3RDb252ZXJzaW9uRXNj
YXBlQ2hhciRhX2IkXzooaW50KXVzZWxlc3MnKTsKKworICAgIC8vIFNpbmNlICIkIiBpcyBza2lw
cGVkLiBUZXN0IGEgdHJhaWxpbmcgZG9sbGFyIGRvZXMgbm90IG92ZXJmbG93IHRoZSBpbnB1dC4K
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm9iakNQbHVnaW5bJ3Rlc3RDb252ZXJzaW9uQ29s
b25fJCddKDEpIiwgJ3Rlc3RDb252ZXJzaW9uQ29sb246KGludCl1c2VsZXNzJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJvYmpDUGx1Z2luWyd0ZXN0Q29udmVyc2lvbkVzY2FwZUNoYXIk
JGEkX2IkJCRfXyQnXSgyKSIsICd0ZXN0Q29udmVyc2lvbkVzY2FwZUNoYXIkYV9iJF86KGludCl1
c2VsZXNzJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJkb1Rlc3QoKTsiPgorPGVtYmVkIGlkPSJ0ZXN0Q1BsdWdpbiIgdHlwZT0i
YXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSI+PC9lbWJlZD4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3QgdGhlIG5hbWUgY29udmVyc2lvbiB3aGVuIGludm9raW5nIE9i
amVjdGl2ZS1DIGZyb20gSmF2YVNjcmlwdC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jPXRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>