<?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>95849</bug_id>
          
          <creation_ts>2012-09-05 06:51:35 -0700</creation_ts>
          <short_desc>[EFL] Sanitize URLs in EWebLauncher / Minibrowser</short_desc>
          <delta_ts>2012-09-06 04:59:18 -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>WebKit EFL</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712010</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 06:51:35 -0700</bug_when>
    <thetext>The URL argument to EFL&apos;s EWebLauncher / Minibrowser is not sanitized and therefore, passing an argument such as a local path will not work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712013</commentid>
    <comment_count>1</comment_count>
      <attachid>162237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 06:56:03 -0700</bug_when>
    <thetext>Created attachment 162237
Patch

The following now works:
WebKitBuild/Release/bin/MiniBrowser ../tts-webapi/webapi-w3c-css3-tests/WOFF/woff.html

Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712032</commentid>
    <comment_count>2</comment_count>
      <attachid>162237</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-05 07:39:36 -0700</bug_when>
    <thetext>Comment on attachment 162237
Patch

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

&gt; Tools/EWebLauncher/url_utils.c:31
&gt; +    return eina_str_has_prefix(url, &quot;file://&quot;) || eina_str_has_prefix(url, &quot;http://&quot;) || eina_str_has_prefix(url, &quot;https://&quot;) || eina_str_has_prefix(url, &quot;ftp://&quot;);

So why is data: out?

This doesn&apos;t seem very trustworthy... Doesnt WebKit have somethign like this?

&gt; Tools/EWebLauncher/url_utils.c:44
&gt; +    /* Convert local path to an URI if needed. */
&gt; +    if (eina_strbuf_length_get(buf) &amp;&amp; eina_strbuf_string_get(buf)[0] == &apos;/&apos;)
&gt; +        eina_strbuf_prepend(buf, &quot;file://&quot;);
&gt; +    char *url = eina_strbuf_string_steal(buf);

Ddi you look at Qt QUrl::fromUserInput ? You should :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712123</commentid>
    <comment_count>3</comment_count>
      <attachid>162237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 09:19:38 -0700</bug_when>
    <thetext>Comment on attachment 162237
Patch

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

&gt;&gt; Tools/EWebLauncher/url_utils.c:31
&gt;&gt; +    return eina_str_has_prefix(url, &quot;file://&quot;) || eina_str_has_prefix(url, &quot;http://&quot;) || eina_str_has_prefix(url, &quot;https://&quot;) || eina_str_has_prefix(url, &quot;ftp://&quot;);
&gt; 
&gt; So why is data: out?
&gt; 
&gt; This doesn&apos;t seem very trustworthy... Doesnt WebKit have somethign like this?

I understand this isn&apos;t perfect but it should cover the cases needed in MiniBrowser / EWebLauncher I think. Otherwise, I would probably need to use regular expressions.
Regarding WebKit, well, there is related code in KURL but it is quite complex and I cannot reuse it directly here.

&gt;&gt; Tools/EWebLauncher/url_utils.c:44
&gt;&gt; +    char *url = eina_strbuf_string_steal(buf);
&gt; 
&gt; Ddi you look at Qt QUrl::fromUserInput ? You should :-)

No, I haven&apos;t. What cases are you worried about? eina_file_path_sanitize() already does a lot of things for us (e.g. make relative a path absolute).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712911</commentid>
    <comment_count>4</comment_count>
      <attachid>162237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 23:04:11 -0700</bug_when>
    <thetext>Comment on attachment 162237
Patch

Clearing flags. Will make another iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712923</commentid>
    <comment_count>5</comment_count>
      <attachid>162426</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 23:23:08 -0700</bug_when>
    <thetext>Created attachment 162426
Patch

Improved patch based on QUrl::fromUserInput() implementation and our existing implementation in url_bar.c.

The URLs are now sanitized not only for program argument but also in the URL bar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712924</commentid>
    <comment_count>6</comment_count>
      <attachid>162426</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 23:25:56 -0700</bug_when>
    <thetext>Comment on attachment 162426
Patch

Need to fix a warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712927</commentid>
    <comment_count>7</comment_count>
      <attachid>162427</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 23:30:18 -0700</bug_when>
    <thetext>Created attachment 162427
Patch

Fix compiler warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713168</commentid>
    <comment_count>8</comment_count>
      <attachid>162427</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 04:43:49 -0700</bug_when>
    <thetext>Comment on attachment 162427
Patch

Clearing flags on attachment: 162427

Committed r127729: &lt;http://trac.webkit.org/changeset/127729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713169</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 04:43:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713172</commentid>
    <comment_count>10</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-09-06 04:49:46 -0700</bug_when>
    <thetext>Nice, finally the pain is gone. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713174</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-06 04:52:20 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Nice, finally the pain is gone. Thanks.

Glad I&apos;m not the only one who was annoyed by this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713175</commentid>
    <comment_count>12</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-09-06 04:57:55 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Nice, finally the pain is gone. Thanks.
&gt; 
&gt; Glad I&apos;m not the only one who was annoyed by this :)

Hooray!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713178</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-06 04:59:18 -0700</bug_when>
    <thetext>Yeah ! finally! It has only annoyed me for one day or so, but that is enough!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162237</attachid>
            <date>2012-09-05 06:56:03 -0700</date>
            <delta_ts>2012-09-05 23:23:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>95849_sanitize_url_arg.patch</filename>
            <type>text/plain</type>
            <size>8740</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ODE3
NmEwLi5hM2UxMjQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTItMDktMDUgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAorICAgICAgICBbRUZMXSBTYW5pdGl6ZSBFV2Vi
TGF1bmNoZXIgLyBNaW5pYnJvd3NlciBVUkwgYXJndW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGNoZWNr
IGlmIGEgc3RyaW5nIGlzIGEgVVJMCisgICAgICAgIGFuZCB0byBzYW5pdGl6ZSBhIFVSTCBhcmd1
bWVudC4KKworICAgICAgICBTYW5pdGl6ZSB0aGUgVVJMIGFyZ3VtZW50IHRvIEVGTCdzIEVXZWJM
YXVuY2hlciBhbmQKKyAgICAgICAgTWluaUJyb3dzZXIgc28gdGhhdCBsb2NhbCBwYXRocyBhcmUg
cHJvcGVybHkKKyAgICAgICAgY29udmVydGVkIHRvIFVSTHMuCisKKyAgICAgICAgKiBFV2ViTGF1
bmNoZXIvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRVdlYkxhdW5jaGVyL21haW4uYzoKKyAg
ICAgICAgKG1haW4pOgorICAgICAgICAqIEVXZWJMYXVuY2hlci91cmxfdXRpbHMuYzogQWRkZWQu
CisgICAgICAgIChpc191cmwpOgorICAgICAgICAoYXJndW1lbnRfdG9fdXJsKToKKyAgICAgICAg
KiBFV2ViTGF1bmNoZXIvdXJsX3V0aWxzLmg6IEFkZGVkLgorICAgICAgICAqIE1pbmlCcm93c2Vy
L2VmbC9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFpbi5jOgor
ICAgICAgICAobWFpbik6CisKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3Rv
cGhlLmR1bWV6QGludGVsLmNvbT4KKwogICAgICAgICBXS1RSIGRvZXNuJ3QgaW1wbGVtZW50IGR1
bXBXaWxsQ2FjaGVSZXNwb25zZSgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NDYwNwogCmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvQ01h
a2VMaXN0cy50eHQgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmQ4
NzlhZC4uNjVmOTgzZCAxMDA2NDQKLS0tIGEvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dApAQCAtMSw1ICsxLDYg
QEAKIFNFVChFV2ViTGF1bmNoZXJfU09VUkNFUwogICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNo
ZXIvdXJsX2Jhci5jCisgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci91cmxfdXRpbHMuYwog
ICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvbWFpbi5jCiApCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0VXZWJMYXVuY2hlci9tYWluLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCmluZGV4
IGZmZWE5MGMuLjVlYzdmZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMK
KysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkVXZWJLaXQuaCIKIAogI2luY2x1ZGUgInVybF9iYXIuaCIKKyNpbmNsdWRlICJ1cmxfdXRp
bHMuaCIKICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNs
dWRlIDxFY29yZV9GaWxlLmg+CkBAIC04MTQsNyArODE1LDYgQEAgbWFpbihpbnQgYXJnYywgY2hh
ciAqYXJndltdKQogICAgIGNvbnN0IGNoYXIgKmRlZmF1bHRfdXJsID0gImh0dHA6Ly93d3cuZ29v
Z2xlLmNvbS8iOwogCiAgICAgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnkgPSB7MCwgMCwgMCwgMH07
Ci0gICAgY2hhciAqdXJsID0gTlVMTDsKICAgICBjaGFyICp1c2VyQWdlbnQgPSBOVUxMOwogICAg
IGNvbnN0IGNoYXIgKnRtcDsKICAgICBjb25zdCBjaGFyICpwcm94eVVyaTsKQEAgLTg2OSwxMSAr
ODY5LDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIGlmIChxdWl0T3B0aW9u
KQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX1RSVUUsIE5VTEwpOwogCi0gICAgaWYgKGFyZ3Mg
PCBhcmdjKQotICAgICAgICB1cmwgPSBhcmd2W2FyZ3NdOwotICAgIGVsc2UKLSAgICAgICAgdXJs
ID0gKGNoYXIqKSBkZWZhdWx0X3VybDsKLQogICAgIHRoZW1lUGF0aCA9IGZpbmRUaGVtZVBhdGgo
dGhlbWUpOwogICAgIGlmICghdGhlbWVQYXRoKQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZB
TFNFLCAiRVJST1I6IGNvdWxkIG5vdCBmaW5kIHRoZW1lLlxuIik7CkBAIC04OTMsNyArODg4LDEz
IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBpZiAocHJveHlVcmkpCiAgICAg
ICAgIGV3a19uZXR3b3JrX3Byb3h5X3VyaV9zZXQocHJveHlVcmkpOwogCi0gICAgYnJvd3NlckNy
ZWF0ZSh1cmwsIHRoZW1lUGF0aCwgdXNlckFnZW50LCBnZW9tZXRyeSwgZW5naW5lLCBiYWNraW5n
U3RvcmUsIGlzRmxhdHRlbmluZywgaXNGdWxsc2NyZWVuLCBwYXRoKTsKKyAgICBpZiAoYXJncyA8
IGFyZ2MpIHsKKyAgICAgICAgY2hhciAqdXJsID0gYXJndW1lbnRfdG9fdXJsKGFyZ3ZbYXJnc10p
OworICAgICAgICBicm93c2VyQ3JlYXRlKHVybCwgdGhlbWVQYXRoLCB1c2VyQWdlbnQsIGdlb21l
dHJ5LCBlbmdpbmUsIGJhY2tpbmdTdG9yZSwgaXNGbGF0dGVuaW5nLCBpc0Z1bGxzY3JlZW4sIHBh
dGgpOworICAgICAgICBmcmVlKHVybCk7CisgICAgfSBlbHNlCisgICAgICAgIGJyb3dzZXJDcmVh
dGUoZGVmYXVsdF91cmwsIHRoZW1lUGF0aCwgdXNlckFnZW50LCBnZW9tZXRyeSwgZW5naW5lLCBi
YWNraW5nU3RvcmUsIGlzRmxhdHRlbmluZywgaXNGdWxsc2NyZWVuLCBwYXRoKTsKKwogICAgIGVj
b3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25h
bF9leGl0LCAmd2luZG93cyk7CiAKICAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfdXRpbHMuYyBiL1Rvb2xzL0VXZWJMYXVuY2hl
ci91cmxfdXRpbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjY0ZTcw
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF91dGlscy5jCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJ1cmxfdXRpbHMuaCIK
KworRWluYV9Cb29sCitpc191cmwoY29uc3QgY2hhciAqdXJsKQoreworICAgIHJldHVybiBlaW5h
X3N0cl9oYXNfcHJlZml4KHVybCwgImZpbGU6Ly8iKSB8fCBlaW5hX3N0cl9oYXNfcHJlZml4KHVy
bCwgImh0dHA6Ly8iKSB8fCBlaW5hX3N0cl9oYXNfcHJlZml4KHVybCwgImh0dHBzOi8vIikgfHwg
ZWluYV9zdHJfaGFzX3ByZWZpeCh1cmwsICJmdHA6Ly8iKTsKK30KKworY2hhciAqCithcmd1bWVu
dF90b191cmwoY29uc3QgY2hhciAqYXJnKQoreworICAgIGlmIChpc191cmwoYXJnKSkKKyAgICAg
ICAgcmV0dXJuIHN0cmR1cChhcmcpOworCisgICAgRWluYV9TdHJidWYgKmJ1ZiA9IGVpbmFfc3Ry
YnVmX21hbmFnZV9uZXcoZWluYV9maWxlX3BhdGhfc2FuaXRpemUoYXJnKSk7CisgICAgLyogQ29u
dmVydCBsb2NhbCBwYXRoIHRvIGFuIFVSSSBpZiBuZWVkZWQuICovCisgICAgaWYgKGVpbmFfc3Ry
YnVmX2xlbmd0aF9nZXQoYnVmKSAmJiBlaW5hX3N0cmJ1Zl9zdHJpbmdfZ2V0KGJ1ZilbMF0gPT0g
Jy8nKQorICAgICAgICBlaW5hX3N0cmJ1Zl9wcmVwZW5kKGJ1ZiwgImZpbGU6Ly8iKTsKKyAgICBj
aGFyICp1cmwgPSBlaW5hX3N0cmJ1Zl9zdHJpbmdfc3RlYWwoYnVmKTsKKyAgICBlaW5hX3N0cmJ1
Zl9mcmVlKGJ1Zik7CisKKyAgICByZXR1cm4gdXJsOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdl
YkxhdW5jaGVyL3VybF91dGlscy5oIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF91dGlscy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYjZlNWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX3V0aWxzLmgKQEAgLTAsMCArMSw0MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiB1cmxfdXRpbHNfaAorI2RlZmluZSB1cmxfdXRpbHNf
aAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNpbmNsdWRl
IDxFaW5hLmg+CisKK0VpbmFfQm9vbCBpc191cmwoY29uc3QgY2hhciAqdXJsKTsKK2NoYXIgKmFy
Z3VtZW50X3RvX3VybChjb25zdCBjaGFyICphcmcpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30K
KyNlbmRpZgorCisjZW5kaWYgLy8gdXJsX3V0aWxzX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlC
cm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxp
c3RzLnR4dAppbmRleCA3OWFiM2U1Li44ZTQyZmYzIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJv
d3Nlci9lZmwvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtl
TGlzdHMudHh0CkBAIC0yLDYgKzIsNyBAQCBTRVQoTWluaUJyb3dzZXJfRElSICIke1RPT0xTX0RJ
Un0vTWluaUJyb3dzZXIvZWZsIikKIAogU0VUKE1pbmlCcm93c2VyX1NPVVJDRVMKICAgICAke1RP
T0xTX0RJUn0vRVdlYkxhdW5jaGVyL3VybF9iYXIuYworICAgICR7VE9PTFNfRElSfS9FV2ViTGF1
bmNoZXIvdXJsX3V0aWxzLmMKICAgICAke01pbmlCcm93c2VyX0RJUn0vbWFpbi5jCiApCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nl
ci9lZmwvbWFpbi5jCmluZGV4IDQxYWVhZWIuLmMzNDY4NzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwpA
QCAtMTksNiArMTksNyBAQAogCiAjaW5jbHVkZSAiRVdlYktpdDIuaCIKICNpbmNsdWRlICJ1cmxf
YmFyLmgiCisjaW5jbHVkZSAidXJsX3V0aWxzLmgiCiAjaW5jbHVkZSA8RWNvcmUuaD4KICNpbmNs
dWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWluYS5oPgpAQCAtMjY5LDcgKzI3MCw2IEBA
IHN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0
IGNoYXIgKmVuZ2luZSkKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLSAg
ICBjb25zdCBjaGFyICp1cmw7CiAgICAgaW50IGFyZ3MgPSAxOwogICAgIGNoYXIgKmVuZ2luZSA9
IE5VTEw7CiAgICAgdW5zaWduZWQgY2hhciBxdWl0T3B0aW9uID0gMDsKQEAgLTI5NSwxMiArMjk1
LDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgaWYgKHF1aXRPcHRp
b24pCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFfVFJVRSwgTlVMTCk7CiAKLSAgICBpZiAoYXJn
cyA8IGFyZ2MpCi0gICAgICAgIHVybCA9IGFyZ3ZbYXJnc107Ci0gICAgZWxzZQotICAgICAgICB1
cmwgPSBERUZBVUxUX1VSTDsKKyAgICBpZiAoYXJncyA8IGFyZ2MpIHsKKyAgICAgICAgY2hhciAq
dXJsID0gYXJndW1lbnRfdG9fdXJsKGFyZ3ZbYXJnc10pOworICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIkxvYWRpbmcgVVJMIGF0ICVzXG4iLCB1cmwpOworICAgICAgICBicm93c2VyID0gYnJvd3Nl
ckNyZWF0ZSh1cmwsIGVuZ2luZSk7CisgICAgICAgIGZyZWUodXJsKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgYnJvd3NlciA9IGJyb3dzZXJDcmVhdGUoREVGQVVMVF9VUkwsIGVuZ2luZSk7CiAKLSAg
ICBicm93c2VyID0gYnJvd3NlckNyZWF0ZSh1cmwsIGVuZ2luZSk7CiAgICAgaWYgKCFicm93c2Vy
KQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVh
dGUgYnJvd3Nlci5cbiIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162426</attachid>
            <date>2012-09-05 23:23:08 -0700</date>
            <delta_ts>2012-09-05 23:30:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>95849_sanitize_url_arg.patch</filename>
            <type>text/plain</type>
            <size>10216</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NDI5
M2NmLi40M2VhOTZkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBTYW5pdGl6ZSBVUkxz
IGluIEVXZWJMYXVuY2hlciAvIE1pbmlicm93c2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTg0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNhbml0aXplIFVSTHMgcGFzc2VkIGJ5IHRoZSB1c2VyIGFz
IHByb2dyYW0KKyAgICAgICAgYXJndW1lbnQgb3IgdHlwZWQgaW4gdGhlIFVSTCBiYXIgaW4gb3Jk
ZXIgdG8KKyAgICAgICAgYmUgbW9yZSB0b2xlcmFudC4KKworICAgICAgICAqIEVXZWJMYXVuY2hl
ci9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAg
ICAobWFpbik6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuYzoKKyAgICAgICAgKF91
cmxfYmFyX3VybF9nZXRfd2l0aF9wcm90b2NvbCk6CisgICAgICAgIChvbl91cmxiYXJfa2V5X2Rv
d24pOgorICAgICAgICAqIEVXZWJMYXVuY2hlci91cmxfdXRpbHMuYzogQWRkZWQuCisgICAgICAg
IChoYXNfc2NoZW1lKToKKyAgICAgICAgKHVybF9mcm9tX3VzZXJfaW5wdXQpOiBBZGQgdXRpbGl0
eSBmdW5jdGlvbiB0byBjb25zdHJ1Y3QgYQorICAgICAgICBVUkwgZnJvbSB1c2VyIGlucHV0Lgor
ICAgICAgICAqIEVXZWJMYXVuY2hlci91cmxfdXRpbHMuaDogQWRkZWQuCisgICAgICAgICogTWlu
aUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9t
YWluLmM6CisgICAgICAgIChtYWluKToKKwogMjAxMi0wOS0wNSAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGRlcGVuZGVuY3kgb24g
d2Via2l0X3VzZXJfYWdlbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxp
c3RzLnR4dCBiL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dAppbmRleCBiZDg3OWFk
Li42NWY5ODNkIDEwMDY0NAotLS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0CkBAIC0xLDUgKzEsNiBAQAog
U0VUKEVXZWJMYXVuY2hlcl9TT1VSQ0VTCiAgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci91
cmxfYmFyLmMKKyAgICAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL3VybF91dGlscy5jCiAgICAg
JHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci9tYWluLmMKICkKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
RVdlYkxhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKaW5kZXggZmZl
YTkwYy4uODE2ZTBmMiAxMDA2NDQKLS0tIGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYworKysg
Yi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
RVdlYktpdC5oIgogCiAjaW5jbHVkZSAidXJsX2Jhci5oIgorI2luY2x1ZGUgInVybF91dGlscy5o
IgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUg
PEVjb3JlX0ZpbGUuaD4KQEAgLTgxNCw3ICs4MTUsNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiAgICAgY29uc3QgY2hhciAqZGVmYXVsdF91cmwgPSAiaHR0cDovL3d3dy5nb29nbGUu
Y29tLyI7CiAKICAgICBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSA9IHswLCAwLCAwLCAwfTsKLSAg
ICBjaGFyICp1cmwgPSBOVUxMOwogICAgIGNoYXIgKnVzZXJBZ2VudCA9IE5VTEw7CiAgICAgY29u
c3QgY2hhciAqdG1wOwogICAgIGNvbnN0IGNoYXIgKnByb3h5VXJpOwpAQCAtODY5LDExICs4Njks
NiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgaWYgKHF1aXRPcHRpb24pCiAg
ICAgICAgIHJldHVybiBxdWl0KEVJTkFfVFJVRSwgTlVMTCk7CiAKLSAgICBpZiAoYXJncyA8IGFy
Z2MpCi0gICAgICAgIHVybCA9IGFyZ3ZbYXJnc107Ci0gICAgZWxzZQotICAgICAgICB1cmwgPSAo
Y2hhciopIGRlZmF1bHRfdXJsOwotCiAgICAgdGhlbWVQYXRoID0gZmluZFRoZW1lUGF0aCh0aGVt
ZSk7CiAgICAgaWYgKCF0aGVtZVBhdGgpCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0Us
ICJFUlJPUjogY291bGQgbm90IGZpbmQgdGhlbWUuXG4iKTsKQEAgLTg5Myw3ICs4ODgsMTMgQEAg
bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIGlmIChwcm94eVVyaSkKICAgICAgICAg
ZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldChwcm94eVVyaSk7CiAKLSAgICBicm93c2VyQ3JlYXRl
KHVybCwgdGhlbWVQYXRoLCB1c2VyQWdlbnQsIGdlb21ldHJ5LCBlbmdpbmUsIGJhY2tpbmdTdG9y
ZSwgaXNGbGF0dGVuaW5nLCBpc0Z1bGxzY3JlZW4sIHBhdGgpOworICAgIGlmIChhcmdzIDwgYXJn
YykgeworICAgICAgICBjaGFyICp1cmwgPSB1cmxfZnJvbV91c2VyX2lucHV0KGFyZ3ZbYXJnc10p
OworICAgICAgICBicm93c2VyQ3JlYXRlKHVybCwgdGhlbWVQYXRoLCB1c2VyQWdlbnQsIGdlb21l
dHJ5LCBlbmdpbmUsIGJhY2tpbmdTdG9yZSwgaXNGbGF0dGVuaW5nLCBpc0Z1bGxzY3JlZW4sIHBh
dGgpOworICAgICAgICBmcmVlKHVybCk7CisgICAgfSBlbHNlCisgICAgICAgIGJyb3dzZXJDcmVh
dGUoZGVmYXVsdF91cmwsIHRoZW1lUGF0aCwgdXNlckFnZW50LCBnZW9tZXRyeSwgZW5naW5lLCBi
YWNraW5nU3RvcmUsIGlzRmxhdHRlbmluZywgaXNGdWxsc2NyZWVuLCBwYXRoKTsKKwogICAgIGVj
b3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25h
bF9leGl0LCAmd2luZG93cyk7CiAKICAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIv
dXJsX2Jhci5jCmluZGV4IGUxZWNlODguLmY2M2Q2YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VXZWJM
YXVuY2hlci91cmxfYmFyLmMKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuYwpAQCAt
MjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJ1cmxfYmFyLmgiCisjaW5jbHVkZSAidXJs
X3V0aWxzLmgiCiAKICNpbmNsdWRlIDxFZGplLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgpA
QCAtMzUsMTIgKzM2LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKgogX3VybF9iYXJfdXJsX2dldF93
aXRoX3Byb3RvY29sKFVybF9CYXIgKnVybEJhcikKIHsKICAgICBjb25zdCBjaGFyICp1cmwgPSBl
ZGplX29iamVjdF9wYXJ0X3RleHRfZ2V0KHVybEJhci0+ZW50cnksICJ1cmwudGV4dCIpOwotICAg
IGlmIChlY29yZV9maWxlX2V4aXN0cyh1cmwpKQotICAgICAgICByZXR1cm4gZWluYV9zdHJpbmdz
aGFyZV9wcmludGYoImZpbGU6Ly8lcyIsIHVybCk7CiAKLSAgICBpZiAoIXN0cnN0cih1cmwsICI6
Ly8iKSkKLSAgICAgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVfcHJpbnRmKCJodHRwOi8vJXMi
LCB1cmwpOwotICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZCh1cmwpOworICAgIHJldHVy
biB1cmxfZnJvbV91c2VyX2lucHV0KHVybCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC01NSw3ICs1
Miw3IEBAIG9uX3VybGJhcl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVj
dCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQogICAgIGNvbnN0IGNoYXIgKnVybCA9IF91cmxfYmFy
X3VybF9nZXRfd2l0aF9wcm90b2NvbCh1cmxCYXIpOwogICAgIGlmICh1cmwpIHsKICAgICAgICAg
ZXdrX3ZpZXdfdXJpX3NldCh1cmxCYXItPndlYlZpZXcsIHVybCk7Ci0gICAgICAgIGVpbmFfc3Ry
aW5nc2hhcmVfZGVsKHVybCk7CisgICAgICAgIGZyZWUodXJsKTsKICAgICB9CiAgICAgZXZhc19v
YmplY3RfZm9jdXNfc2V0KHVybEJhci0+d2ViVmlldywgRUlOQV9UUlVFKTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfdXRpbHMuYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci91
cmxfdXRpbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjYxYzMxCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF91dGlscy5jCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJ1cmxfdXRpbHMuaCIKKwor
I2luY2x1ZGUgPEVjb3JlX0ZpbGUuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxz
eXMvc3RhdHZmcy5oPgorCitFaW5hX0Jvb2wKK2hhc19zY2hlbWUoY29uc3QgY2hhciAqdXJsKQor
eworICAgIHJldHVybiAhIXN0cnN0cih1cmwsICI6Ly8iKTsKK30KKworY2hhciAqCit1cmxfZnJv
bV91c2VyX2lucHV0KGNvbnN0IGNoYXIgKmFyZykKK3sKKyAgICAvKiBJZiBpdCBpcyBhbHJlYWR5
IGEgVVJMLCByZXR1cm4gdGhlIGFyZ3VtZW50IGFzIGlzLiAqLworICAgIGlmIChoYXNfc2NoZW1l
KGFyZykpCisgICAgICAgIHJldHVybiBzdHJkdXAoYXJnKTsKKworICAgIEVpbmFfU3RyYnVmICpi
dWYgPSBlaW5hX3N0cmJ1Zl9tYW5hZ2VfbmV3KGVpbmFfZmlsZV9wYXRoX3Nhbml0aXplKGFyZykp
OworICAgIGZwcmludGYoc3RkZXJyLCAiQXJnIGFmdGVyIHNhbml0aXppbmc6ICVzXG4iLCBlaW5h
X3N0cmJ1Zl9zdHJpbmdfZ2V0KGJ1ZikpOworCisgICAgLyogQ2hlY2sgaWYgdGhlIHBhdGggZXhp
c3RzLiAqLworICAgIGlmIChlY29yZV9maWxlX2V4aXN0cyhlaW5hX3N0cmJ1Zl9zdHJpbmdfZ2V0
KGJ1ZikpKSB7CisgICAgICAgIC8qIENvbnZlcnQgbG9jYWwgcGF0aCB0byBhIFVSTC4gKi8KKyAg
ICAgICAgZWluYV9zdHJidWZfcHJlcGVuZChidWYsICJmaWxlOi8vIik7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgLyogVGhlIHBhdGggZG9lcyBub3QgZXhpc3QsIGNvbnZlcnQgaXQgdG8gYSBVUkwg
YnkKKyAgICAgICAgICAgcHJlcGVuZGluZyBodHRwOi8vIHNjaGVtZToKKyAgICAgICAgICAgd3d3
Lmdvb2dsZS5jb20gLT4gaHR0cDovL3d3dy5nb29nbGUuY29tICovCisgICAgICAgICBlaW5hX3N0
cmJ1Zl9zdHJpbmdfZnJlZShidWYpOworICAgICAgICAgZWluYV9zdHJidWZfYXBwZW5kX3ByaW50
ZihidWYsICJodHRwOi8vJXMiLCBhcmcpOworICAgIH0KKyAgICBjaGFyICp1cmwgPSBlaW5hX3N0
cmJ1Zl9zdHJpbmdfc3RlYWwoYnVmKTsKKyAgICBlaW5hX3N0cmJ1Zl9mcmVlKGJ1Zik7CisKKyAg
ICByZXR1cm4gdXJsOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF91dGls
cy5oIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF91dGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJkM2MxYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1
bmNoZXIvdXJsX3V0aWxzLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiB1cmxfdXRpbHNfaAorI2RlZmluZSB1cmxfdXRpbHNfaAorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKK0VpbmFf
Qm9vbCBoYXNfc2NoZW1lKGNvbnN0IGNoYXIgKnVybCk7CitjaGFyICp1cmxfZnJvbV91c2VyX2lu
cHV0KGNvbnN0IGNoYXIgKmFyZyk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisK
KyNlbmRpZiAvLyB1cmxfdXRpbHNfaApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZs
L0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDc5YWIzZTUuLjhlNDJmZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9D
TWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQK
QEAgLTIsNiArMiw3IEBAIFNFVChNaW5pQnJvd3Nlcl9ESVIgIiR7VE9PTFNfRElSfS9NaW5pQnJv
d3Nlci9lZmwiKQogCiBTRVQoTWluaUJyb3dzZXJfU09VUkNFUwogICAgICR7VE9PTFNfRElSfS9F
V2ViTGF1bmNoZXIvdXJsX2Jhci5jCisgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci91cmxf
dXRpbHMuYwogICAgICR7TWluaUJyb3dzZXJfRElSfS9tYWluLmMKICkKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWlu
LmMKaW5kZXggNDFhZWFlYi4uYWNiMTE3OSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIv
ZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0xOSw2ICsx
OSw3IEBACiAKICNpbmNsdWRlICJFV2ViS2l0Mi5oIgogI2luY2x1ZGUgInVybF9iYXIuaCIKKyNp
bmNsdWRlICJ1cmxfdXRpbHMuaCIKICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1ZGUgPEVjb3Jl
X0V2YXMuaD4KICNpbmNsdWRlIDxFaW5hLmg+CkBAIC0yNjksNyArMjcwLDYgQEAgc3RhdGljIE1p
bmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5n
aW5lKQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotICAgIGNvbnN0IGNo
YXIgKnVybDsKICAgICBpbnQgYXJncyA9IDE7CiAgICAgY2hhciAqZW5naW5lID0gTlVMTDsKICAg
ICB1bnNpZ25lZCBjaGFyIHF1aXRPcHRpb24gPSAwOwpAQCAtMjk1LDEyICsyOTUsMTQgQEAgaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBpZiAocXVpdE9wdGlvbikKICAgICAg
ICAgcmV0dXJuIHF1aXQoRUlOQV9UUlVFLCBOVUxMKTsKIAotICAgIGlmIChhcmdzIDwgYXJnYykK
LSAgICAgICAgdXJsID0gYXJndlthcmdzXTsKLSAgICBlbHNlCi0gICAgICAgIHVybCA9IERFRkFV
TFRfVVJMOworICAgIGlmIChhcmdzIDwgYXJnYykgeworICAgICAgICBjaGFyICp1cmwgPSB1cmxf
ZnJvbV91c2VyX2lucHV0KGFyZ3ZbYXJnc10pOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkxv
YWRpbmcgVVJMIGF0ICVzXG4iLCB1cmwpOworICAgICAgICBicm93c2VyID0gYnJvd3NlckNyZWF0
ZSh1cmwsIGVuZ2luZSk7CisgICAgICAgIGZyZWUodXJsKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
YnJvd3NlciA9IGJyb3dzZXJDcmVhdGUoREVGQVVMVF9VUkwsIGVuZ2luZSk7CiAKLSAgICBicm93
c2VyID0gYnJvd3NlckNyZWF0ZSh1cmwsIGVuZ2luZSk7CiAgICAgaWYgKCFicm93c2VyKQogICAg
ICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVhdGUgYnJv
d3Nlci5cbiIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162427</attachid>
            <date>2012-09-05 23:30:18 -0700</date>
            <delta_ts>2012-09-06 04:43:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>95849_sanitize_url_arg.patch</filename>
            <type>text/plain</type>
            <size>10272</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NDI5
M2NmLi40M2VhOTZkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBTYW5pdGl6ZSBVUkxz
IGluIEVXZWJMYXVuY2hlciAvIE1pbmlicm93c2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTg0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNhbml0aXplIFVSTHMgcGFzc2VkIGJ5IHRoZSB1c2VyIGFz
IHByb2dyYW0KKyAgICAgICAgYXJndW1lbnQgb3IgdHlwZWQgaW4gdGhlIFVSTCBiYXIgaW4gb3Jk
ZXIgdG8KKyAgICAgICAgYmUgbW9yZSB0b2xlcmFudC4KKworICAgICAgICAqIEVXZWJMYXVuY2hl
ci9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAg
ICAobWFpbik6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuYzoKKyAgICAgICAgKF91
cmxfYmFyX3VybF9nZXRfd2l0aF9wcm90b2NvbCk6CisgICAgICAgIChvbl91cmxiYXJfa2V5X2Rv
d24pOgorICAgICAgICAqIEVXZWJMYXVuY2hlci91cmxfdXRpbHMuYzogQWRkZWQuCisgICAgICAg
IChoYXNfc2NoZW1lKToKKyAgICAgICAgKHVybF9mcm9tX3VzZXJfaW5wdXQpOiBBZGQgdXRpbGl0
eSBmdW5jdGlvbiB0byBjb25zdHJ1Y3QgYQorICAgICAgICBVUkwgZnJvbSB1c2VyIGlucHV0Lgor
ICAgICAgICAqIEVXZWJMYXVuY2hlci91cmxfdXRpbHMuaDogQWRkZWQuCisgICAgICAgICogTWlu
aUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9t
YWluLmM6CisgICAgICAgIChtYWluKToKKwogMjAxMi0wOS0wNSAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGRlcGVuZGVuY3kgb24g
d2Via2l0X3VzZXJfYWdlbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxp
c3RzLnR4dCBiL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dAppbmRleCBiZDg3OWFk
Li42NWY5ODNkIDEwMDY0NAotLS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0CkBAIC0xLDUgKzEsNiBAQAog
U0VUKEVXZWJMYXVuY2hlcl9TT1VSQ0VTCiAgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci91
cmxfYmFyLmMKKyAgICAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL3VybF91dGlscy5jCiAgICAg
JHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci9tYWluLmMKICkKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
RVdlYkxhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKaW5kZXggZmZl
YTkwYy4uODE2ZTBmMiAxMDA2NDQKLS0tIGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYworKysg
Yi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
RVdlYktpdC5oIgogCiAjaW5jbHVkZSAidXJsX2Jhci5oIgorI2luY2x1ZGUgInVybF91dGlscy5o
IgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUg
PEVjb3JlX0ZpbGUuaD4KQEAgLTgxNCw3ICs4MTUsNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiAgICAgY29uc3QgY2hhciAqZGVmYXVsdF91cmwgPSAiaHR0cDovL3d3dy5nb29nbGUu
Y29tLyI7CiAKICAgICBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSA9IHswLCAwLCAwLCAwfTsKLSAg
ICBjaGFyICp1cmwgPSBOVUxMOwogICAgIGNoYXIgKnVzZXJBZ2VudCA9IE5VTEw7CiAgICAgY29u
c3QgY2hhciAqdG1wOwogICAgIGNvbnN0IGNoYXIgKnByb3h5VXJpOwpAQCAtODY5LDExICs4Njks
NiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgaWYgKHF1aXRPcHRpb24pCiAg
ICAgICAgIHJldHVybiBxdWl0KEVJTkFfVFJVRSwgTlVMTCk7CiAKLSAgICBpZiAoYXJncyA8IGFy
Z2MpCi0gICAgICAgIHVybCA9IGFyZ3ZbYXJnc107Ci0gICAgZWxzZQotICAgICAgICB1cmwgPSAo
Y2hhciopIGRlZmF1bHRfdXJsOwotCiAgICAgdGhlbWVQYXRoID0gZmluZFRoZW1lUGF0aCh0aGVt
ZSk7CiAgICAgaWYgKCF0aGVtZVBhdGgpCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0Us
ICJFUlJPUjogY291bGQgbm90IGZpbmQgdGhlbWUuXG4iKTsKQEAgLTg5Myw3ICs4ODgsMTMgQEAg
bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIGlmIChwcm94eVVyaSkKICAgICAgICAg
ZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldChwcm94eVVyaSk7CiAKLSAgICBicm93c2VyQ3JlYXRl
KHVybCwgdGhlbWVQYXRoLCB1c2VyQWdlbnQsIGdlb21ldHJ5LCBlbmdpbmUsIGJhY2tpbmdTdG9y
ZSwgaXNGbGF0dGVuaW5nLCBpc0Z1bGxzY3JlZW4sIHBhdGgpOworICAgIGlmIChhcmdzIDwgYXJn
YykgeworICAgICAgICBjaGFyICp1cmwgPSB1cmxfZnJvbV91c2VyX2lucHV0KGFyZ3ZbYXJnc10p
OworICAgICAgICBicm93c2VyQ3JlYXRlKHVybCwgdGhlbWVQYXRoLCB1c2VyQWdlbnQsIGdlb21l
dHJ5LCBlbmdpbmUsIGJhY2tpbmdTdG9yZSwgaXNGbGF0dGVuaW5nLCBpc0Z1bGxzY3JlZW4sIHBh
dGgpOworICAgICAgICBmcmVlKHVybCk7CisgICAgfSBlbHNlCisgICAgICAgIGJyb3dzZXJDcmVh
dGUoZGVmYXVsdF91cmwsIHRoZW1lUGF0aCwgdXNlckFnZW50LCBnZW9tZXRyeSwgZW5naW5lLCBi
YWNraW5nU3RvcmUsIGlzRmxhdHRlbmluZywgaXNGdWxsc2NyZWVuLCBwYXRoKTsKKwogICAgIGVj
b3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25h
bF9leGl0LCAmd2luZG93cyk7CiAKICAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIv
dXJsX2Jhci5jCmluZGV4IGUxZWNlODguLjQwOGI1YWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VXZWJM
YXVuY2hlci91cmxfYmFyLmMKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuYwpAQCAt
MjQsMjMgKzI0LDE5IEBACiAgKi8KIAogI2luY2x1ZGUgInVybF9iYXIuaCIKKyNpbmNsdWRlICJ1
cmxfdXRpbHMuaCIKIAogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+
Ci0jaW5jbHVkZSA8RWNvcmVfRmlsZS5oPgogCiAjZGVmaW5lIFBBRERJTkdfU0laRSA1CiAKLXN0
YXRpYyBjb25zdCBjaGFyICoKK3N0YXRpYyBjaGFyICoKIF91cmxfYmFyX3VybF9nZXRfd2l0aF9w
cm90b2NvbChVcmxfQmFyICp1cmxCYXIpCiB7CiAgICAgY29uc3QgY2hhciAqdXJsID0gZWRqZV9v
YmplY3RfcGFydF90ZXh0X2dldCh1cmxCYXItPmVudHJ5LCAidXJsLnRleHQiKTsKLSAgICBpZiAo
ZWNvcmVfZmlsZV9leGlzdHModXJsKSkKLSAgICAgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVf
cHJpbnRmKCJmaWxlOi8vJXMiLCB1cmwpOwogCi0gICAgaWYgKCFzdHJzdHIodXJsLCAiOi8vIikp
Ci0gICAgICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX3ByaW50ZigiaHR0cDovLyVzIiwgdXJs
KTsKLSAgICByZXR1cm4gZWluYV9zdHJpbmdzaGFyZV9hZGQodXJsKTsKKyAgICByZXR1cm4gdXJs
X2Zyb21fdXNlcl9pbnB1dCh1cmwpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNTIsMTAgKzQ4LDEw
IEBAIG9uX3VybGJhcl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAq
b2JqLCB2b2lkICpldmVudF9pbmZvKQogICAgIGlmICghZXYtPmtleSB8fCBzdHJjbXAoZXYtPmtl
eSwgIlJldHVybiIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBjaGFyICp1cmwgPSBf
dXJsX2Jhcl91cmxfZ2V0X3dpdGhfcHJvdG9jb2wodXJsQmFyKTsKKyAgICBjaGFyICp1cmwgPSBf
dXJsX2Jhcl91cmxfZ2V0X3dpdGhfcHJvdG9jb2wodXJsQmFyKTsKICAgICBpZiAodXJsKSB7CiAg
ICAgICAgIGV3a192aWV3X3VyaV9zZXQodXJsQmFyLT53ZWJWaWV3LCB1cmwpOwotICAgICAgICBl
aW5hX3N0cmluZ3NoYXJlX2RlbCh1cmwpOworICAgICAgICBmcmVlKHVybCk7CiAgICAgfQogICAg
IGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh1cmxCYXItPndlYlZpZXcsIEVJTkFfVFJVRSk7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX3V0aWxzLmMgYi9Ub29scy9FV2ViTGF1
bmNoZXIvdXJsX3V0aWxzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ5
MmYxNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfdXRpbHMuYwpA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAidXJsX3V0aWxz
LmgiCisKKyNpbmNsdWRlIDxFY29yZV9GaWxlLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5j
bHVkZSA8c3lzL3N0YXR2ZnMuaD4KKworRWluYV9Cb29sCitoYXNfc2NoZW1lKGNvbnN0IGNoYXIg
KnVybCkKK3sKKyAgICByZXR1cm4gISFzdHJzdHIodXJsLCAiOi8vIik7Cit9CisKK2NoYXIgKgor
dXJsX2Zyb21fdXNlcl9pbnB1dChjb25zdCBjaGFyICphcmcpCit7CisgICAgLyogSWYgaXQgaXMg
YWxyZWFkeSBhIFVSTCwgcmV0dXJuIHRoZSBhcmd1bWVudCBhcyBpcy4gKi8KKyAgICBpZiAoaGFz
X3NjaGVtZShhcmcpKQorICAgICAgICByZXR1cm4gc3RyZHVwKGFyZyk7CisKKyAgICBFaW5hX1N0
cmJ1ZiAqYnVmID0gZWluYV9zdHJidWZfbWFuYWdlX25ldyhlaW5hX2ZpbGVfcGF0aF9zYW5pdGl6
ZShhcmcpKTsKKworICAgIC8qIENoZWNrIGlmIHRoZSBwYXRoIGV4aXN0cy4gKi8KKyAgICBpZiAo
ZWNvcmVfZmlsZV9leGlzdHMoZWluYV9zdHJidWZfc3RyaW5nX2dldChidWYpKSkgeworICAgICAg
ICAvKiBGaWxlIGV4aXN0cywgY29udmVydCBsb2NhbCBwYXRoIHRvIGEgVVJMLiAqLworICAgICAg
ICBlaW5hX3N0cmJ1Zl9wcmVwZW5kKGJ1ZiwgImZpbGU6Ly8iKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICAvKiBUaGUgcGF0aCBkb2VzIG5vdCBleGlzdCwgY29udmVydCBpdCB0byBhIFVSTCBieQor
ICAgICAgICAgICBwcmVwZW5kaW5nIGh0dHA6Ly8gc2NoZW1lOgorICAgICAgICAgICB3d3cuZ29v
Z2xlLmNvbSAtPiBodHRwOi8vd3d3Lmdvb2dsZS5jb20gKi8KKyAgICAgICAgIGVpbmFfc3RyYnVm
X3N0cmluZ19mcmVlKGJ1Zik7CisgICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJ1
ZiwgImh0dHA6Ly8lcyIsIGFyZyk7CisgICAgfQorICAgIGNoYXIgKnVybCA9IGVpbmFfc3RyYnVm
X3N0cmluZ19zdGVhbChidWYpOworICAgIGVpbmFfc3RyYnVmX2ZyZWUoYnVmKTsKKworICAgIHJl
dHVybiB1cmw7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX3V0aWxzLmgg
Yi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX3V0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYmQzYzFhMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hl
ci91cmxfdXRpbHMuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIHVybF91dGlsc19oCisjZGVmaW5lIHVybF91dGlsc19oCisKKyNpZmRlZiBfX2NwbHVzcGx1
cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2luY2x1ZGUgPEVpbmEuaD4KKworRWluYV9Cb29s
IGhhc19zY2hlbWUoY29uc3QgY2hhciAqdXJsKTsKK2NoYXIgKnVybF9mcm9tX3VzZXJfaW5wdXQo
Y29uc3QgY2hhciAqYXJnKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2Vu
ZGlmIC8vIHVybF91dGlsc19oCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01h
a2VMaXN0cy50eHQgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NzlhYjNlNS4uOGU0MmZmMyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtl
TGlzdHMudHh0CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dApAQCAt
Miw2ICsyLDcgQEAgU0VUKE1pbmlCcm93c2VyX0RJUiAiJHtUT09MU19ESVJ9L01pbmlCcm93c2Vy
L2VmbCIpCiAKIFNFVChNaW5pQnJvd3Nlcl9TT1VSQ0VTCiAgICAgJHtUT09MU19ESVJ9L0VXZWJM
YXVuY2hlci91cmxfYmFyLmMKKyAgICAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL3VybF91dGls
cy5jCiAgICAgJHtNaW5pQnJvd3Nlcl9ESVJ9L21haW4uYwogKQogCmRpZmYgLS1naXQgYS9Ub29s
cy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwpp
bmRleCA0MWFlYWViLi5lM2MxOTI5IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwv
bWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTE5LDYgKzE5LDcg
QEAKIAogI2luY2x1ZGUgIkVXZWJLaXQyLmgiCiAjaW5jbHVkZSAidXJsX2Jhci5oIgorI2luY2x1
ZGUgInVybF91dGlscy5oIgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZh
cy5oPgogI2luY2x1ZGUgPEVpbmEuaD4KQEAgLTI2OSw3ICsyNzAsNiBAQCBzdGF0aWMgTWluaUJy
b3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUp
CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0gICAgY29uc3QgY2hhciAq
dXJsOwogICAgIGludCBhcmdzID0gMTsKICAgICBjaGFyICplbmdpbmUgPSBOVUxMOwogICAgIHVu
c2lnbmVkIGNoYXIgcXVpdE9wdGlvbiA9IDA7CkBAIC0yOTUsMTIgKzI5NSwxMyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIGlmIChxdWl0T3B0aW9uKQogICAgICAgICBy
ZXR1cm4gcXVpdChFSU5BX1RSVUUsIE5VTEwpOwogCi0gICAgaWYgKGFyZ3MgPCBhcmdjKQotICAg
ICAgICB1cmwgPSBhcmd2W2FyZ3NdOwotICAgIGVsc2UKLSAgICAgICAgdXJsID0gREVGQVVMVF9V
Ukw7CisgICAgaWYgKGFyZ3MgPCBhcmdjKSB7CisgICAgICAgIGNoYXIgKnVybCA9IHVybF9mcm9t
X3VzZXJfaW5wdXQoYXJndlthcmdzXSk7CisgICAgICAgIGJyb3dzZXIgPSBicm93c2VyQ3JlYXRl
KHVybCwgZW5naW5lKTsKKyAgICAgICAgZnJlZSh1cmwpOworICAgIH0gZWxzZQorICAgICAgICBi
cm93c2VyID0gYnJvd3NlckNyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKTsKIAotICAgIGJyb3dz
ZXIgPSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5lKTsKICAgICBpZiAoIWJyb3dzZXIpCiAgICAg
ICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBicm93
c2VyLlxuIik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>