<?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>34435</bug_id>
          
          <creation_ts>2010-02-01 09:55:05 -0800</creation_ts>
          <short_desc>[Gtk] libsoup critical warning in media player http cookies injection code</short_desc>
          <delta_ts>2010-02-04 00:33:16 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>slomo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186460</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-01 09:55:05 -0800</bug_when>
    <thetext>Trying to play a simple html file containing:

&lt;video autobuffer controls 
                      src=&quot;http://movies.apple.com/movies/paramount/ironman2/ironman2-z7r459-tlr1_480p.mov&quot;/&gt;

raises:

(GtkLauncher:3115): libsoup-CRITICAL **: soup_cookie_jar_get_cookies: assertion 
                      `SOUP_IS_COOKIE_JAR (jar)&apos; failed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186472</commentid>
    <comment_count>1</comment_count>
      <attachid>47852</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-01 10:20:57 -0800</bug_when>
    <thetext>Created attachment 47852
refactored HTTP headers injection code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186823</commentid>
    <comment_count>2</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-02-01 23:42:42 -0800</bug_when>
    <thetext>I think you should really use the GOwnPtr/GRefPtr. It will avoid you using the goto, it will avoid any leaks in the future and the text size will be exactly the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186867</commentid>
    <comment_count>3</comment_count>
      <attachid>47913</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-02 01:52:23 -0800</bug_when>
    <thetext>Created attachment 47913
refactored HTTP headers injection code

Now using GOwnPtr and avoiding goto usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186868</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-02 01:59:33 -0800</bug_when>
    <thetext>Attachment 47913 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptCore/wtf/gtk/GOwnPtr.cpp:25:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186873</commentid>
    <comment_count>5</comment_count>
      <attachid>47915</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-02 02:26:26 -0800</bug_when>
    <thetext>Created attachment 47915
refactored HTTP headers injection code

Fixed style bot warning and removed un-needed new scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186876</commentid>
    <comment_count>6</comment_count>
      <attachid>47916</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-02 02:30:25 -0800</bug_when>
    <thetext>Created attachment 47916
refactored HTTP headers injection code

updated Changelog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186905</commentid>
    <comment_count>7</comment_count>
      <attachid>47916</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-02 04:16:56 -0800</bug_when>
    <thetext>Comment on attachment 47916
refactored HTTP headers injection code

 8         * GNUmakefile.am: Added libsoup and gstreamer CFLAGS/LDFLAGS to JavascriptCore build.

This is a bad thing we want to avoid. JSC should not need to depend on those. For GRefPtr mrobinson added files to WebCore/platform/gtk. I think this is the way to go for these GOwnPtr types.

 11         not be done neither the User-Agent not Referer were injected.

s/not/nor/

 142     char* location;
 143     g_object_get(element.get(), &quot;location&quot;, &amp;location, NULL);
 144 
 145     GOwnPtr&lt;SoupURI&gt; uri(soup_uri_new(location));
 146     g_free(location);

You could use GOwnPtr for char* location, and the other char*&apos;s in this code, by the way!

r- for the addition of unneeded deps on JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186944</commentid>
    <comment_count>8</comment_count>
      <attachid>47929</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-02 06:02:42 -0800</bug_when>
    <thetext>Created attachment 47929
refactored HTTP headers injection code

As asked by Gustavo I moved the GOwnPtr added bits to a new GOwnPtrGtk module.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187177</commentid>
    <comment_count>9</comment_count>
      <attachid>47929</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-02 15:42:07 -0800</bug_when>
    <thetext>Comment on attachment 47929
refactored HTTP headers injection code

Thanks! I&apos;m going to get this in (by setting cq+) so that it is included in the release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187190</commentid>
    <comment_count>10</comment_count>
      <attachid>47929</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-02 16:03:32 -0800</bug_when>
    <thetext>Comment on attachment 47929
refactored HTTP headers injection code

Clearing flags on attachment: 47929

Committed r54261: &lt;http://trac.webkit.org/changeset/54261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187191</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-02 16:03:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187214</commentid>
    <comment_count>12</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-02 17:21:22 -0800</bug_when>
    <thetext>I had to revert the patch, because my release build started crashing, as did tests in the release bot. Reopenning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187292</commentid>
    <comment_count>13</comment_count>
      <attachid>48002</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-03 01:23:28 -0800</bug_when>
    <thetext>Created attachment 48002
refactored HTTP headers injection code

Limit injection to elements dealing with HTTP(S) uris.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187295</commentid>
    <comment_count>14</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-03 01:29:05 -0800</bug_when>
    <thetext>The build failure happened because of the new order. Before this patch we were checking if the element had a cookies property first, so in case of filesrc this was obviously failing. In the patch of last night we were directly building a SoupUri with the location value, but in case of filesrc the location is not a URI, it is an absolute filesystem path, soup_uri_new() returns NULL in that case, hence the build breakage.

In the updated patch I added checks to ensure the SoupUri is built with a valid http(s) uri. Tests pass fine here.

Sorry for the trouble :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187411</commentid>
    <comment_count>15</comment_count>
      <attachid>48002</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-03 09:49:51 -0800</bug_when>
    <thetext>Comment on attachment 48002
refactored HTTP headers injection code

 151     // Do injection only for http(s) uris.
 152     if (g_ascii_strncasecmp(uri-&gt;scheme, &quot;http&quot;, 4)
 153         || g_ascii_strncasecmp(uri-&gt;scheme, &quot;https&quot;, 5))
 154         return;

I think it&apos;s better to use SOUP_URI_VALID_FOR_HTTP() here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187663</commentid>
    <comment_count>16</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-04 00:33:16 -0800</bug_when>
    <thetext>Commited as r54330. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47852</attachid>
            <date>2010-02-01 10:20:57 -0800</date>
            <delta_ts>2010-02-02 01:52:23 -0800</delta_ts>
            <desc>refactored HTTP headers injection code</desc>
            <filename>refactored-HTTP-headers-injection-code.patch</filename>
            <type>text/plain</type>
            <size>5073</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkNjAzNTM3M2JmNjQ1OTlhN2I4MzUxZWQ0NzkwYWFjMjY2ODNhODJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMTk6MTk6NDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBy
ZWZhY3RvcmVkIEhUVFAgaGVhZGVycyBpbmplY3Rpb24gY29kZQoKLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL2dy
YXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDY4ICsrKysr
KysrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDI3IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYzFiMjdmMy4uODg3OGViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMi0wMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gbGlic291cCBjcml0aWNhbCB3
YXJuaW5nIGluIG1lZGlhIHBsYXllciBodHRwIGNvb2tpZXMgaW5qZWN0aW9uIGNvZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDM1CisKKyAgICAg
ICAgUmVmYWN0b3JlZCB0aGUgUmVmZXJlci9Vc2VyLUFnZW50L2Nvb2tpZXMgaW5qZWN0aW9uIGNv
ZGUsIGluIHRoYXQKKyAgICAgICAgb3JkZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayk6CisKIDIwMTAtMDEtMjkg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ5NmMx
ZTMuLjg4MjgzMjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM2LDQ2ICsxMzYs
NjAgQEAgdm9pZCBtZWRpYVBsYXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2soR09iamVj
dCAqb2JqZWN0LCBHUGFyYW1TcGVjICpwc3BlYywKICAgICBnX29iamVjdF9nZXQobXAtPm1fcGxh
eUJpbiwgInNvdXJjZSIsICZlbGVtZW50LCBOVUxMKTsKICAgICBnc3Rfb2JqZWN0X3JlcGxhY2Uo
KEdzdE9iamVjdCoqKSAmbXAtPm1fc291cmNlLCAoR3N0T2JqZWN0KikgZWxlbWVudCk7CiAKLSAg
ICBpZiAoZWxlbWVudCkgeworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgY2hhciogbG9jYXRpb247CisgICAgZ19vYmplY3RfZ2V0KGVsZW1lbnQsICJsb2NhdGlvbiIs
ICZsb2NhdGlvbiwgTlVMTCk7CisKKyAgICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcobG9j
YXRpb24pOworICAgIGdfZnJlZShsb2NhdGlvbik7CisKKyAgICAvLyBMZXQgQXBwbGUgd2ViIHNl
cnZlcnMga25vdyB3ZSB3YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgor
ICAgIGlmIChnX3N0cl9lcXVhbCh1cmktPmhvc3QsICJtb3ZpZXMuYXBwbGUuY29tIikpCisgICAg
ICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAidXNlci1hZ2VudCIsICJRdWlja3RpbWUvNy4yLjAi
LCBOVUxMKTsKKworICAgIC8vIFNldCB0aGUgSFRUUCByZWZlcmVyLgorICAgIEZyYW1lKiBmcmFt
ZSA9IG1wLT5tX3BsYXllci0+ZnJhbWVWaWV3KCkgPyBtcC0+bV9wbGF5ZXItPmZyYW1lVmlldygp
LT5mcmFtZSgpIDogMDsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5k
b2N1bWVudCgpIDogMDsKKyAgICBpZiAoZG9jdW1lbnQpIHsKKyAgICAgICAgR3N0U3RydWN0dXJl
KiBleHRyYUhlYWRlcnMgPSBnc3Rfc3RydWN0dXJlX25ldygiZXh0cmEtaGVhZGVycyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlZmVy
ZXIiLCBHX1RZUEVfU1RSSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVudFVSSSgpLnV0ZjgoKS5kYXRhKCks
IDApOworICAgICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgImV4dHJhLWhlYWRlcnMiLCBleHRy
YUhlYWRlcnMsIE5VTEwpOworICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUoZXh0cmFIZWFkZXJz
KTsKKyAgICB9CisKKyAgICAvLyBEZWFsIHdpdGggdGhlIGNvb2tpZXMgZnJvbSBub3cgb24uCisg
ICAgewogICAgICAgICBHUGFyYW1TcGVjKiBwc3BlYyA9IGdfb2JqZWN0X2NsYXNzX2ZpbmRfcHJv
cGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKGVsZW1lbnQpLCAiY29va2llcyIpOworICAgICAgICBT
b3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CisgICAgICAgIFNvdXBTZXNzaW9uRmVhdHVyZSogY29v
a2llSmFyRmVhdHVyZSA9IDA7CisgICAgICAgIFNvdXBDb29raWVKYXIqIGNvb2tpZUphciA9IDA7
CisgICAgICAgIGNoYXIqIGNvb2tpZXMgPSAwOworICAgICAgICBjaGFyKiBjb29raWVzU3Rydlsy
XSA9IHswLCAwfTsKIAogICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGUgc291cmNlIGVsZW1l
bnQgaGFzIGEgY29va2llcyBwcm9wZXJ0eQogICAgICAgICAvLyBvZiB0aGUgZm9ybWF0IHdlIGV4
cGVjdAogICAgICAgICBpZiAoIXBzcGVjIHx8IHBzcGVjLT52YWx1ZV90eXBlICE9IEdfVFlQRV9T
VFJWKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZ290byBjbGVhbnVwOwogCiAg
ICAgICAgIC8vIFRoZW4gZ2V0IHRoZSBjb29raWVzIGZvciB0aGUgVVJJIGFuZCBzZXQgdGhlbQot
ICAgICAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IHdlYmtpdF9nZXRfZGVmYXVsdF9zZXNzaW9u
KCk7Ci0gICAgICAgIFNvdXBDb29raWVKYXIqIGNvb2tpZUphciA9IFNPVVBfQ09PS0lFX0pBUihz
b3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0NPT0tJRV9KQVIpKTsK
LQotICAgICAgICBjaGFyKiBsb2NhdGlvbjsKLSAgICAgICAgZ19vYmplY3RfZ2V0KGVsZW1lbnQs
ICJsb2NhdGlvbiIsICZsb2NhdGlvbiwgTlVMTCk7CisgICAgICAgIHNlc3Npb24gPSB3ZWJraXRf
Z2V0X2RlZmF1bHRfc2Vzc2lvbigpOworICAgICAgICBjb29raWVKYXJGZWF0dXJlID0gc291cF9z
ZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFSKTsKKyAgICAg
ICAgaWYgKCFjb29raWVKYXJGZWF0dXJlKQorICAgICAgICAgICAgZ290byBjbGVhbnVwOwogCi0g
ICAgICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ldyhsb2NhdGlvbik7Ci0gICAgICAgIGdf
ZnJlZShsb2NhdGlvbik7CisgICAgICAgIGNvb2tpZUphciA9IFNPVVBfQ09PS0lFX0pBUihjb29r
aWVKYXJGZWF0dXJlKTsKKyAgICAgICAgY29va2llcyA9IHNvdXBfY29va2llX2phcl9nZXRfY29v
a2llcyhjb29raWVKYXIsIHVyaSwgRkFMU0UpOwogCi0gICAgICAgIC8vIExldCBBcHBsZSB3ZWIg
c2VydmVycyBrbm93IHdlIHdhbnQgdG8gYWNjZXNzIHRoZWlyIG5pY2UgbW92aWUgdHJhaWxlcnMu
Ci0gICAgICAgIGlmIChnX3N0cl9lcXVhbCh1cmktPmhvc3QsICJtb3ZpZXMuYXBwbGUuY29tIikp
Ci0gICAgICAgICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInVzZXItYWdlbnQiLCAiUXVpY2t0
aW1lLzcuMi4wIiwgTlVMTCk7Ci0KLSAgICAgICAgY2hhciogY29va2llcyA9IHNvdXBfY29va2ll
X2phcl9nZXRfY29va2llcyhjb29raWVKYXIsIHVyaSwgRkFMU0UpOwotICAgICAgICBzb3VwX3Vy
aV9mcmVlKHVyaSk7Ci0KLSAgICAgICAgY2hhciogY29va2llc1N0cnZbXSA9IHtjb29raWVzLCBO
VUxMfTsKKyAgICAgICAgY29va2llc1N0cnZbMF0gPSBjb29raWVzOwogICAgICAgICBnX29iamVj
dF9zZXQoZWxlbWVudCwgImNvb2tpZXMiLCBjb29raWVzU3RydiwgTlVMTCk7CiAgICAgICAgIGdf
ZnJlZShjb29raWVzKTsKLQotICAgICAgICBGcmFtZSogZnJhbWUgPSBtcC0+bV9wbGF5ZXItPmZy
YW1lVmlldygpID8gbXAtPm1fcGxheWVyLT5mcmFtZVZpZXcoKS0+ZnJhbWUoKSA6IDA7Ci0gICAg
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiAwOwot
ICAgICAgICBpZiAoZG9jdW1lbnQpIHsKLSAgICAgICAgICAgIEdzdFN0cnVjdHVyZSogZXh0cmFI
ZWFkZXJzID0gZ3N0X3N0cnVjdHVyZV9uZXcoImV4dHJhLWhlYWRlcnMiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVmZXJlciIs
IEdfVFlQRV9TVFJJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVudFVSSSgpLnV0ZjgoKS5kYXRhKCks
IDApOwotICAgICAgICAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJleHRyYS1oZWFkZXJzIiwg
ZXh0cmFIZWFkZXJzLCBOVUxMKTsKLSAgICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZnJlZShleHRy
YUhlYWRlcnMpOwotICAgICAgICB9CiAgICAgfQogCitjbGVhbnVwOgorICAgIHNvdXBfdXJpX2Zy
ZWUodXJpKTsKICAgICBnc3Rfb2JqZWN0X3VucmVmKGVsZW1lbnQpOwogfQogCi0tIAoxLjYuMy4z
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47913</attachid>
            <date>2010-02-02 01:52:23 -0800</date>
            <delta_ts>2010-02-02 02:26:26 -0800</delta_ts>
            <desc>refactored HTTP headers injection code</desc>
            <filename>refactored-HTTP-headers-injection-code.patch</filename>
            <type>text/plain</type>
            <size>9968</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAzODEwZTNiMjgwNmIzOWMzNTgxMmE5ZTNmNDA4MGFjOGExYTFjYmI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMTk6MTk6NDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBy
ZWZhY3RvcmVkIEhUVFAgaGVhZGVycyBpbmplY3Rpb24gY29kZQoKLS0tCiBDaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysrCiBHTlVtYWtl
ZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsr
KysKIEphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0ci5jcHAgICAgICAgICAgICAgICAgIHwg
ICAxNyArKysrLQogSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmggICAgICAgICAgICAg
ICAgICAgfCAgICA2ICsrCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwICAgfCAgIDc2ICsrKysrKysrKysrLS0tLS0tLS0tCiA3IGZpbGVzIGNo
YW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9D
aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMzU4ZTU5Ny4uMjc1ZDMyYiAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEwLTAyLTAyICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBsaWJzb3VwIGNyaXRpY2FsIHdh
cm5pbmcgaW4gbWVkaWEgcGxheWVyIGh0dHAgY29va2llcyBpbmplY3Rpb24gY29kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MzUKKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBBZGRlZCBsaWJzb3VwIGFuZCBnc3RyZWFtZXIgQ0ZMQUdTL0xE
RkxBR1MgdG8gSmF2YXNjcmlwdENvcmUgYnVpbGQuCisKIDIwMTAtMDEtMjkgIEplcmVteSBPcmxv
dyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBH
bGF6a292LgpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRl
eCBmOWFkMjFjLi4yZDM3MWQ5IDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVt
YWtlZmlsZS5hbQpAQCAtMTc5LDYgKzE3OSw4IEBAIGxpYkphdmFTY3JpcHRDb3JlX2xhX1NPVVJD
RVMgPSBcCiBsaWJKYXZhU2NyaXB0Q29yZV9sYV9MSUJBREQgPSBcCiAJJChVTklDT0RFX0xJQlMp
IFwKIAkkKEdMSUJfTElCUykgXAorCSQoR1NUUkVBTUVSX0xJQlMpIFwKKwkkKExJQlNPVVBfTElC
UykgXAogCS1scHRocmVhZAogCiBsaWJKYXZhU2NyaXB0Q29yZV9sYV9DWFhGTEFHUyA9IFwKQEAg
LTE5MCw2ICsxOTIsOCBAQCBsaWJKYXZhU2NyaXB0Q29yZV9sYV9DRkxBR1MgPSBcCiAJLU8zIFwK
IAkkKGdsb2JhbF9jZmxhZ3MpIFwKIAkkKEdMSUJfQ0ZMQUdTKSBcCisJJChHU1RSRUFNRVJfQ0ZM
QUdTKSBcCisJJChMSUJTT1VQX0NGTEFHUykgXAogCSQoVU5JQ09ERV9DRkxBR1MpCiAKIGxpYkph
dmFTY3JpcHRDb3JlX2xhX0NQUEZMQUdTID0gXApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDhjYzljZTMuLjEzNmE3
OGUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wMi0wMiAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW0d0a10gbGlic291cCBjcml0aWNhbCB3YXJuaW5nIGluIG1l
ZGlhIHBsYXllciBodHRwIGNvb2tpZXMgaW5qZWN0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDM1CisKKyAgICAgICAgQWRkZWQgc3Vw
cG9ydCBmb3IgR3N0RWxlbWVudCBhbmQgU291cFVSSSB0eXBlcyBpbiBHT3duUHRyLgorCisgICAg
ICAgICogd3RmL2d0ay9HT3duUHRyLmNwcDoKKyAgICAgICAgKFdURjo6U291cFVSSSk6CisgICAg
ICAgIChXVEY6OkdzdEVsZW1lbnQpOgorICAgICAgICAqIHd0Zi9ndGsvR093blB0ci5oOgorCiAy
MDEwLTAyLTAxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2lu
ZG93cyBidWlsZCBmaXgsIHVwZGF0ZSBleHBvcnRzIGZpbGUgKGFnYWluKQpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9n
dGsvR093blB0ci5jcHAKaW5kZXggMWExNTFiOS4uM2RjZDM0NiAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ3Rr
L0dPd25QdHIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBD
b2xsYWJvcmEgTHRkLgorICogIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICog
IENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0y
MCw2ICsyMSw4IEBACiAjaW5jbHVkZSAiR093blB0ci5oIgogCiAjaW5jbHVkZSA8Z2xpYi5oPgor
I2luY2x1ZGUgPGxpYnNvdXAvc291cC11cmkuaD4KKyNpbmNsdWRlIDxnc3QvZ3N0ZWxlbWVudC5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNTcsNCArNjAsMTYgQEAgdGVtcGxhdGUgPD4gdm9p
ZCBmcmVlT3duZWRHUHRyPEdEaXI+KEdEaXIqIHB0cikKICAgICBpZiAocHRyKQogICAgICAgICBn
X2Rpcl9jbG9zZShwdHIpOwogfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8U291
cFVSST4oU291cFVSSSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHNvdXBfdXJpX2Zy
ZWUocHRyKTsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdzdEVsZW1lbnQ+
KEdzdEVsZW1lbnQqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnc3Rfb2JqZWN0X3Vu
cmVmKHB0cik7Cit9CiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3d0Zi9ndGsvR093blB0ci5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmgK
aW5kZXggYWQyYzMwZS4uYzgzMzQyMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL2d0
ay9HT3duUHRyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmgKQEAgLTEs
NiArMSw3IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQu
CisgKiAgQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0zNSw2ICszNiw5IEBAIHR5cGVkZWYgc3RydWN0IF9HTXV0ZXggR011dGV4OwogdHlwZWRl
ZiBzdHJ1Y3QgX0dQYXR0ZXJuU3BlYyBHUGF0dGVyblNwZWM7CiB0eXBlZGVmIHN0cnVjdCBfR0Rp
ciBHRGlyOwogdHlwZWRlZiBzdHJ1Y3QgX0dIYXNoVGFibGUgR0hhc2hUYWJsZTsKK3R5cGVkZWYg
c3RydWN0IF9Tb3VwVVJJIFNvdXBVUkk7Cit0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RF
bGVtZW50OworCiBleHRlcm4gIkMiIHZvaWQgZ19mcmVlKHZvaWQqKTsKIAogbmFtZXNwYWNlIFdU
RiB7CkBAIC00Nyw2ICs1MSw4IEBAIHRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdNdXRl
eD4oR011dGV4Kik7CiB0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHUGF0dGVyblNwZWM+
KEdQYXR0ZXJuU3BlYyopOwogdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0Rpcj4oR0Rp
ciopOwogdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0hhc2hUYWJsZT4oR0hhc2hUYWJs
ZSopOwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8U291cFVSST4oU291cFVSSSogcHRy
KTsKK3RlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdzdEVsZW1lbnQ+KEdzdEVsZW1lbnQq
IHB0cik7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBHT3duUHRyIDogcHVibGljIE5v
bmNvcHlhYmxlIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzFiMjdmMy4uZGY1Y2ViZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
MC0wMi0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gbGlic291cCBj
cml0aWNhbCB3YXJuaW5nIGluIG1lZGlhIHBsYXllciBodHRwIGNvb2tpZXMgaW5qZWN0aW9uIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDM1
CisKKyAgICAgICAgUmVmYWN0b3JlZCB0aGUgUmVmZXJlci9Vc2VyLUFnZW50L2Nvb2tpZXMgaW5q
ZWN0aW9uIGNvZGUsIGluIHRoYXQKKyAgICAgICAgb3JkZXIuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayk6CisKIDIw
MTAtMDEtMjkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmlu
ZGV4IGQ5NmMxZTMuLjdlM2EzNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTMx
LDEzICsxMzEsNDMgQEAgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNr
KEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG8KIHZvaWQgbWVkaWFQbGF5ZXJQ
cml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKm9iamVjdCwgR1BhcmFtU3BlYyAq
cHNwZWMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7Ci0gICAgR3N0RWxlbWVu
dCogZWxlbWVudDsKKyAgICBHT3duUHRyPEdzdEVsZW1lbnQ+IGVsZW1lbnQ7CiAKLSAgICBnX29i
amVjdF9nZXQobXAtPm1fcGxheUJpbiwgInNvdXJjZSIsICZlbGVtZW50LCBOVUxMKTsKLSAgICBn
c3Rfb2JqZWN0X3JlcGxhY2UoKEdzdE9iamVjdCoqKSAmbXAtPm1fc291cmNlLCAoR3N0T2JqZWN0
KikgZWxlbWVudCk7CisgICAgZ19vYmplY3RfZ2V0KG1wLT5tX3BsYXlCaW4sICJzb3VyY2UiLCAm
ZWxlbWVudC5vdXRQdHIoKSwgTlVMTCk7CisgICAgZ3N0X29iamVjdF9yZXBsYWNlKChHc3RPYmpl
Y3QqKikgJm1wLT5tX3NvdXJjZSwgKEdzdE9iamVjdCopIGVsZW1lbnQuZ2V0KCkpOwogCi0gICAg
aWYgKGVsZW1lbnQpIHsKLSAgICAgICAgR1BhcmFtU3BlYyogcHNwZWMgPSBnX29iamVjdF9jbGFz
c19maW5kX3Byb3BlcnR5KEdfT0JKRUNUX0dFVF9DTEFTUyhlbGVtZW50KSwgImNvb2tpZXMiKTsK
KyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGNoYXIqIGxvY2F0aW9u
OworICAgIGdfb2JqZWN0X2dldChlbGVtZW50LmdldCgpLCAibG9jYXRpb24iLCAmbG9jYXRpb24s
IE5VTEwpOworCisgICAgR093blB0cjxTb3VwVVJJPiB1cmkoc291cF91cmlfbmV3KGxvY2F0aW9u
KSk7CisgICAgZ19mcmVlKGxvY2F0aW9uKTsKKworICAgIC8vIExldCBBcHBsZSB3ZWIgc2VydmVy
cyBrbm93IHdlIHdhbnQgdG8gYWNjZXNzIHRoZWlyIG5pY2UgbW92aWUgdHJhaWxlcnMuCisgICAg
aWYgKGdfc3RyX2VxdWFsKHVyaS0+aG9zdCwgIm1vdmllcy5hcHBsZS5jb20iKSkKKyAgICAgICAg
Z19vYmplY3Rfc2V0KGVsZW1lbnQuZ2V0KCksICJ1c2VyLWFnZW50IiwgIlF1aWNrdGltZS83LjIu
MCIsIE5VTEwpOworCisgICAgLy8gU2V0IHRoZSBIVFRQIHJlZmVyZXIuCisgICAgRnJhbWUqIGZy
YW1lID0gbXAtPm1fcGxheWVyLT5mcmFtZVZpZXcoKSA/IG1wLT5tX3BsYXllci0+ZnJhbWVWaWV3
KCktPmZyYW1lKCkgOiAwOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lID8gZnJhbWUt
PmRvY3VtZW50KCkgOiAwOworICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICBHc3RTdHJ1Y3R1
cmUqIGV4dHJhSGVhZGVycyA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJleHRyYS1oZWFkZXJzIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVm
ZXJlciIsIEdfVFlQRV9TVFJJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQtPmRvY3VtZW50VVJJKCkudXRmOCgpLmRhdGEo
KSwgMCk7CisgICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LmdldCgpLCAiZXh0cmEtaGVhZGVy
cyIsIGV4dHJhSGVhZGVycywgTlVMTCk7CisgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZnJlZShleHRy
YUhlYWRlcnMpOworICAgIH0KKworICAgIC8vIERlYWwgd2l0aCB0aGUgY29va2llcyBmcm9tIG5v
dyBvbi4KKyAgICB7CisgICAgICAgIEdQYXJhbVNwZWMqIHBzcGVjID0gZ19vYmplY3RfY2xhc3Nf
ZmluZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xBU1MoZWxlbWVudC5nZXQoKSksICJjb29raWVz
Iik7CisgICAgICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gMDsKKyAgICAgICAgU291cFNlc3Np
b25GZWF0dXJlKiBjb29raWVKYXJGZWF0dXJlID0gMDsKKyAgICAgICAgU291cENvb2tpZUphciog
Y29va2llSmFyID0gMDsKKyAgICAgICAgY2hhciogY29va2llcyA9IDA7CisgICAgICAgIGNoYXIq
IGNvb2tpZXNTdHJ2WzJdID0gezAsIDB9OwogCiAgICAgICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRo
ZSBzb3VyY2UgZWxlbWVudCBoYXMgYSBjb29raWVzIHByb3BlcnR5CiAgICAgICAgIC8vIG9mIHRo
ZSBmb3JtYXQgd2UgZXhwZWN0CkBAIC0xNDUsMzggKzE3NSwxOCBAQCB2b2lkIG1lZGlhUGxheWVy
UHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0ICpvYmplY3QsIEdQYXJhbVNwZWMg
KnBzcGVjLAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIFRoZW4gZ2V0IHRoZSBj
b29raWVzIGZvciB0aGUgVVJJIGFuZCBzZXQgdGhlbQotICAgICAgICBTb3VwU2Vzc2lvbiogc2Vz
c2lvbiA9IHdlYmtpdF9nZXRfZGVmYXVsdF9zZXNzaW9uKCk7Ci0gICAgICAgIFNvdXBDb29raWVK
YXIqIGNvb2tpZUphciA9IFNPVVBfQ09PS0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUo
c2Vzc2lvbiwgU09VUF9UWVBFX0NPT0tJRV9KQVIpKTsKLQotICAgICAgICBjaGFyKiBsb2NhdGlv
bjsKLSAgICAgICAgZ19vYmplY3RfZ2V0KGVsZW1lbnQsICJsb2NhdGlvbiIsICZsb2NhdGlvbiwg
TlVMTCk7Ci0KLSAgICAgICAgU291cFVSSSogdXJpID0gc291cF91cmlfbmV3KGxvY2F0aW9uKTsK
LSAgICAgICAgZ19mcmVlKGxvY2F0aW9uKTsKLQotICAgICAgICAvLyBMZXQgQXBwbGUgd2ViIHNl
cnZlcnMga25vdyB3ZSB3YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgot
ICAgICAgICBpZiAoZ19zdHJfZXF1YWwodXJpLT5ob3N0LCAibW92aWVzLmFwcGxlLmNvbSIpKQot
ICAgICAgICAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJ1c2VyLWFnZW50IiwgIlF1aWNrdGlt
ZS83LjIuMCIsIE5VTEwpOworICAgICAgICBzZXNzaW9uID0gd2Via2l0X2dldF9kZWZhdWx0X3Nl
c3Npb24oKTsKKyAgICAgICAgY29va2llSmFyRmVhdHVyZSA9IHNvdXBfc2Vzc2lvbl9nZXRfZmVh
dHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfQ09PS0lFX0pBUik7CisgICAgICAgIGlmICghY29va2ll
SmFyRmVhdHVyZSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBjaGFyKiBjb29raWVz
ID0gc291cF9jb29raWVfamFyX2dldF9jb29raWVzKGNvb2tpZUphciwgdXJpLCBGQUxTRSk7Ci0g
ICAgICAgIHNvdXBfdXJpX2ZyZWUodXJpKTsKKyAgICAgICAgY29va2llSmFyID0gU09VUF9DT09L
SUVfSkFSKGNvb2tpZUphckZlYXR1cmUpOworICAgICAgICBjb29raWVzID0gc291cF9jb29raWVf
amFyX2dldF9jb29raWVzKGNvb2tpZUphciwgdXJpLmdldCgpLCBGQUxTRSk7CiAKLSAgICAgICAg
Y2hhciogY29va2llc1N0cnZbXSA9IHtjb29raWVzLCBOVUxMfTsKLSAgICAgICAgZ19vYmplY3Rf
c2V0KGVsZW1lbnQsICJjb29raWVzIiwgY29va2llc1N0cnYsIE5VTEwpOworICAgICAgICBjb29r
aWVzU3RydlswXSA9IGNvb2tpZXM7CisgICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LmdldCgp
LCAiY29va2llcyIsIGNvb2tpZXNTdHJ2LCBOVUxMKTsKICAgICAgICAgZ19mcmVlKGNvb2tpZXMp
OwotCi0gICAgICAgIEZyYW1lKiBmcmFtZSA9IG1wLT5tX3BsYXllci0+ZnJhbWVWaWV3KCkgPyBt
cC0+bV9wbGF5ZXItPmZyYW1lVmlldygpLT5mcmFtZSgpIDogMDsKLSAgICAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gZnJhbWUgPyBmcmFtZS0+ZG9jdW1lbnQoKSA6IDA7Ci0gICAgICAgIGlmIChk
b2N1bWVudCkgewotICAgICAgICAgICAgR3N0U3RydWN0dXJlKiBleHRyYUhlYWRlcnMgPSBnc3Rf
c3RydWN0dXJlX25ldygiZXh0cmEtaGVhZGVycyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWZlcmVyIiwgR19UWVBFX1NUUklO
RywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQtPmRvY3VtZW50VVJJKCkudXRmOCgpLmRhdGEoKSwgMCk7Ci0gICAgICAg
ICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgImV4dHJhLWhlYWRlcnMiLCBleHRyYUhlYWRlcnMs
IE5VTEwpOwotICAgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlKGV4dHJhSGVhZGVycyk7Ci0g
ICAgICAgIH0KICAgICB9Ci0KLSAgICBnc3Rfb2JqZWN0X3VucmVmKGVsZW1lbnQpOwogfQogCiB2
b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVZvbHVtZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0ICplbGVt
ZW50LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgZGF0YSkKLS0gCjEuNi4zLjM=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47915</attachid>
            <date>2010-02-02 02:26:26 -0800</date>
            <delta_ts>2010-02-02 02:30:25 -0800</delta_ts>
            <desc>refactored HTTP headers injection code</desc>
            <filename>refactored-HTTP-headers-injection-code.patch</filename>
            <type>text/plain</type>
            <size>10021</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAwZDgyMDk5ZjkwYmUzNjc1ZTE4MzdlMDRhNDE5OWU1NGNiOTFmNmJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMTk6MTk6NDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBy
ZWZhY3RvcmVkIEhUVFAgaGVhZGVycyBpbmplY3Rpb24gY29kZQoKLS0tCiBDaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysrCiBHTlVtYWtl
ZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsr
KysKIEphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0ci5jcHAgICAgICAgICAgICAgICAgIHwg
ICAxNyArKysrLQogSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmggICAgICAgICAgICAg
ICAgICAgfCAgICA2ICsrCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwICAgfCAgIDczICsrKysrKysrKystLS0tLS0tLS0KIDcgZmlsZXMgY2hh
bmdlZCwgMTAwIGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0No
YW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzNThlNTk3Li4yNzVkMzJiIDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDItMDIgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHdGtdIGxpYnNvdXAgY3JpdGljYWwgd2Fy
bmluZyBpbiBtZWRpYSBwbGF5ZXIgaHR0cCBjb29raWVzIGluamVjdGlvbiBjb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQzNQorCisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06IEFkZGVkIGxpYnNvdXAgYW5kIGdzdHJlYW1lciBDRkxBR1MvTERG
TEFHUyB0byBKYXZhc2NyaXB0Q29yZSBidWlsZC4KKwogMjAxMC0wMS0yOSAgSmVyZW15IE9ybG93
ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEds
YXprb3YuCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4
IGY5YWQyMWMuLjJkMzcxZDkgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1h
a2VmaWxlLmFtCkBAIC0xNzksNiArMTc5LDggQEAgbGliSmF2YVNjcmlwdENvcmVfbGFfU09VUkNF
UyA9IFwKIGxpYkphdmFTY3JpcHRDb3JlX2xhX0xJQkFERCA9IFwKIAkkKFVOSUNPREVfTElCUykg
XAogCSQoR0xJQl9MSUJTKSBcCisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElCU09VUF9MSUJT
KSBcCiAJLWxwdGhyZWFkCiAKIGxpYkphdmFTY3JpcHRDb3JlX2xhX0NYWEZMQUdTID0gXApAQCAt
MTkwLDYgKzE5Miw4IEBAIGxpYkphdmFTY3JpcHRDb3JlX2xhX0NGTEFHUyA9IFwKIAktTzMgXAog
CSQoZ2xvYmFsX2NmbGFncykgXAogCSQoR0xJQl9DRkxBR1MpIFwKKwkkKEdTVFJFQU1FUl9DRkxB
R1MpIFwKKwkkKExJQlNPVVBfQ0ZMQUdTKSBcCiAJJChVTklDT0RFX0NGTEFHUykKIAogbGliSmF2
YVNjcmlwdENvcmVfbGFfQ1BQRkxBR1MgPSBcCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggOGNjOWNlMy4uMTM2YTc4
ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTAyLTAyICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbR3RrXSBsaWJzb3VwIGNyaXRpY2FsIHdhcm5pbmcgaW4gbWVk
aWEgcGxheWVyIGh0dHAgY29va2llcyBpbmplY3Rpb24gY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MzUKKworICAgICAgICBBZGRlZCBzdXBw
b3J0IGZvciBHc3RFbGVtZW50IGFuZCBTb3VwVVJJIHR5cGVzIGluIEdPd25QdHIuCisKKyAgICAg
ICAgKiB3dGYvZ3RrL0dPd25QdHIuY3BwOgorICAgICAgICAoV1RGOjpTb3VwVVJJKToKKyAgICAg
ICAgKFdURjo6R3N0RWxlbWVudCk6CisgICAgICAgICogd3RmL2d0ay9HT3duUHRyLmg6CisKIDIw
MTAtMDItMDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5k
b3dzIGJ1aWxkIGZpeCwgdXBkYXRlIGV4cG9ydHMgZmlsZSAoYWdhaW4pCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuY3BwIGIvSmF2YVNjcmlwdENvcmUvd3RmL2d0
ay9HT3duUHRyLmNwcAppbmRleCAxYTE1MWI5Li4yMjQyZjVkIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9ndGsv
R093blB0ci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IENv
bGxhYm9yYSBMdGQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIw
LDYgKzIxLDggQEAKICNpbmNsdWRlICJHT3duUHRyLmgiCiAKICNpbmNsdWRlIDxnbGliLmg+Cisj
aW5jbHVkZSA8Z3N0L2dzdGVsZW1lbnQuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtdXJpLmg+
CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC01Nyw0ICs2MCwxNiBAQCB0ZW1wbGF0ZSA8PiB2b2lk
IGZyZWVPd25lZEdQdHI8R0Rpcj4oR0RpciogcHRyKQogICAgIGlmIChwdHIpCiAgICAgICAgIGdf
ZGlyX2Nsb3NlKHB0cik7CiB9CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVkR1B0cjxTb3Vw
VVJJPihTb3VwVVJJKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgc291cF91cmlfZnJl
ZShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R3N0RWxlbWVudD4o
R3N0RWxlbWVudCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdzdF9vYmplY3RfdW5y
ZWYocHRyKTsKK30KIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvd3RmL2d0ay9HT3duUHRyLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuaApp
bmRleCBhZDJjMzBlLi5jODMzNDIyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvZ3Rr
L0dPd25QdHIuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuaApAQCAtMSw2
ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTM1LDYgKzM2LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dNdXRleCBHTXV0ZXg7CiB0eXBlZGVm
IHN0cnVjdCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKIHR5cGVkZWYgc3RydWN0IF9HRGly
IEdEaXI7CiB0eXBlZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRhYmxlOwordHlwZWRlZiBz
dHJ1Y3QgX1NvdXBVUkkgU291cFVSSTsKK3R5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50IEdzdEVs
ZW1lbnQ7CisKIGV4dGVybiAiQyIgdm9pZCBnX2ZyZWUodm9pZCopOwogCiBuYW1lc3BhY2UgV1RG
IHsKQEAgLTQ3LDYgKzUxLDggQEAgdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R011dGV4
PihHTXV0ZXgqKTsKIHRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdQYXR0ZXJuU3BlYz4o
R1BhdHRlcm5TcGVjKik7CiB0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHRGlyPihHRGly
Kik7CiB0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHSGFzaFRhYmxlPihHSGFzaFRhYmxl
Kik7Cit0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxTb3VwVVJJPihTb3VwVVJJKiBwdHIp
OwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R3N0RWxlbWVudD4oR3N0RWxlbWVudCog
cHRyKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdPd25QdHIgOiBwdWJsaWMgTm9u
Y29weWFibGUgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBjMWIyN2YzLi5kZjVjZWJkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEw
LTAyLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBsaWJzb3VwIGNy
aXRpY2FsIHdhcm5pbmcgaW4gbWVkaWEgcGxheWVyIGh0dHAgY29va2llcyBpbmplY3Rpb24gY29k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MzUK
KworICAgICAgICBSZWZhY3RvcmVkIHRoZSBSZWZlcmVyL1VzZXItQWdlbnQvY29va2llcyBpbmpl
Y3Rpb24gY29kZSwgaW4gdGhhdAorICAgICAgICBvcmRlci4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bWVkaWFQbGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKToKKwogMjAx
MC0wMS0yOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5k
ZXggZDk2YzFlMy4uNmFhMzUxOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xMzEs
NTIgKzEzMSw1NSBAQCBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNZXNzYWdlQ2FsbGJhY2so
R3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwbwogdm9pZCBtZWRpYVBsYXllclBy
aXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqb2JqZWN0LCBHUGFyYW1TcGVjICpw
c3BlYywgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBNZWRpYVBsYXllclByaXZhdGUqIG1wID0gcmVp
bnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihkYXRhKTsKLSAgICBHc3RFbGVtZW50
KiBlbGVtZW50OworICAgIEdPd25QdHI8R3N0RWxlbWVudD4gZWxlbWVudDsKIAotICAgIGdfb2Jq
ZWN0X2dldChtcC0+bV9wbGF5QmluLCAic291cmNlIiwgJmVsZW1lbnQsIE5VTEwpOwotICAgIGdz
dF9vYmplY3RfcmVwbGFjZSgoR3N0T2JqZWN0KiopICZtcC0+bV9zb3VyY2UsIChHc3RPYmplY3Qq
KSBlbGVtZW50KTsKKyAgICBnX29iamVjdF9nZXQobXAtPm1fcGxheUJpbiwgInNvdXJjZSIsICZl
bGVtZW50Lm91dFB0cigpLCBOVUxMKTsKKyAgICBnc3Rfb2JqZWN0X3JlcGxhY2UoKEdzdE9iamVj
dCoqKSAmbXAtPm1fc291cmNlLCAoR3N0T2JqZWN0KikgZWxlbWVudC5nZXQoKSk7CiAKLSAgICBp
ZiAoZWxlbWVudCkgewotICAgICAgICBHUGFyYW1TcGVjKiBwc3BlYyA9IGdfb2JqZWN0X2NsYXNz
X2ZpbmRfcHJvcGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKGVsZW1lbnQpLCAiY29va2llcyIpOwot
Ci0gICAgICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRoZSBzb3VyY2UgZWxlbWVudCBoYXMgYSBjb29r
aWVzIHByb3BlcnR5Ci0gICAgICAgIC8vIG9mIHRoZSBmb3JtYXQgd2UgZXhwZWN0Ci0gICAgICAg
IGlmICghcHNwZWMgfHwgcHNwZWMtPnZhbHVlX3R5cGUgIT0gR19UWVBFX1NUUlYpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gVGhlbiBnZXQgdGhlIGNvb2tpZXMgZm9yIHRoZSBV
UkkgYW5kIHNldCB0aGVtCi0gICAgICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gd2Via2l0X2dl
dF9kZWZhdWx0X3Nlc3Npb24oKTsKLSAgICAgICAgU291cENvb2tpZUphciogY29va2llSmFyID0g
U09VUF9DT09LSUVfSkFSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZ
UEVfQ09PS0lFX0pBUikpOwotCi0gICAgICAgIGNoYXIqIGxvY2F0aW9uOwotICAgICAgICBnX29i
amVjdF9nZXQoZWxlbWVudCwgImxvY2F0aW9uIiwgJmxvY2F0aW9uLCBOVUxMKTsKKyAgICBpZiAo
IWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICBTb3VwVVJJKiB1cmkgPSBzb3Vw
X3VyaV9uZXcobG9jYXRpb24pOwotICAgICAgICBnX2ZyZWUobG9jYXRpb24pOworICAgIGNoYXIq
IGxvY2F0aW9uOworICAgIGdfb2JqZWN0X2dldChlbGVtZW50LmdldCgpLCAibG9jYXRpb24iLCAm
bG9jYXRpb24sIE5VTEwpOworCisgICAgR093blB0cjxTb3VwVVJJPiB1cmkoc291cF91cmlfbmV3
KGxvY2F0aW9uKSk7CisgICAgZ19mcmVlKGxvY2F0aW9uKTsKKworICAgIC8vIExldCBBcHBsZSB3
ZWIgc2VydmVycyBrbm93IHdlIHdhbnQgdG8gYWNjZXNzIHRoZWlyIG5pY2UgbW92aWUgdHJhaWxl
cnMuCisgICAgaWYgKGdfc3RyX2VxdWFsKHVyaS0+aG9zdCwgIm1vdmllcy5hcHBsZS5jb20iKSkK
KyAgICAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQuZ2V0KCksICJ1c2VyLWFnZW50IiwgIlF1aWNr
dGltZS83LjIuMCIsIE5VTEwpOworCisgICAgLy8gU2V0IHRoZSBIVFRQIHJlZmVyZXIuCisgICAg
RnJhbWUqIGZyYW1lID0gbXAtPm1fcGxheWVyLT5mcmFtZVZpZXcoKSA/IG1wLT5tX3BsYXllci0+
ZnJhbWVWaWV3KCktPmZyYW1lKCkgOiAwOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1l
ID8gZnJhbWUtPmRvY3VtZW50KCkgOiAwOworICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICBH
c3RTdHJ1Y3R1cmUqIGV4dHJhSGVhZGVycyA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJleHRyYS1oZWFk
ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiUmVmZXJlciIsIEdfVFlQRV9TVFJJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQtPmRvY3VtZW50VVJJKCkudXRm
OCgpLmRhdGEoKSwgMCk7CisgICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LmdldCgpLCAiZXh0
cmEtaGVhZGVycyIsIGV4dHJhSGVhZGVycywgTlVMTCk7CisgICAgICAgIGdzdF9zdHJ1Y3R1cmVf
ZnJlZShleHRyYUhlYWRlcnMpOworICAgIH0KIAotICAgICAgICAvLyBMZXQgQXBwbGUgd2ViIHNl
cnZlcnMga25vdyB3ZSB3YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgot
ICAgICAgICBpZiAoZ19zdHJfZXF1YWwodXJpLT5ob3N0LCAibW92aWVzLmFwcGxlLmNvbSIpKQot
ICAgICAgICAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJ1c2VyLWFnZW50IiwgIlF1aWNrdGlt
ZS83LjIuMCIsIE5VTEwpOworICAgIC8vIERlYWwgd2l0aCB0aGUgY29va2llcyBmcm9tIG5vdyBv
bi4KKyAgICBHUGFyYW1TcGVjKiBjb29raWVzUGFyYW1TcGVjID0gZ19vYmplY3RfY2xhc3NfZmlu
ZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xBU1MoZWxlbWVudC5nZXQoKSksICJjb29raWVzIik7
CiAKLSAgICAgICAgY2hhciogY29va2llcyA9IHNvdXBfY29va2llX2phcl9nZXRfY29va2llcyhj
b29raWVKYXIsIHVyaSwgRkFMU0UpOwotICAgICAgICBzb3VwX3VyaV9mcmVlKHVyaSk7CisgICAg
Ly8gRmlyc3QgY2hlY2sgaWYgdGhlIHNvdXJjZSBlbGVtZW50IGhhcyBhIGNvb2tpZXMgcHJvcGVy
dHkKKyAgICAvLyBvZiB0aGUgZm9ybWF0IHdlIGV4cGVjdAorICAgIGlmICghY29va2llc1BhcmFt
U3BlYyB8fCBjb29raWVzUGFyYW1TcGVjLT52YWx1ZV90eXBlICE9IEdfVFlQRV9TVFJWKQorICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgY2hhciogY29va2llc1N0cnZbXSA9IHtjb29raWVzLCBO
VUxMfTsKLSAgICAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJjb29raWVzIiwgY29va2llc1N0
cnYsIE5VTEwpOwotICAgICAgICBnX2ZyZWUoY29va2llcyk7CisgICAgLy8gVGhlbiBnZXQgdGhl
IGNvb2tpZXMgZm9yIHRoZSBVUkkgYW5kIHNldCB0aGVtCisgICAgU291cFNlc3Npb24qIHNlc3Np
b24gPSB3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpOworICAgIFNvdXBTZXNzaW9uRmVhdHVy
ZSogY29va2llSmFyRmVhdHVyZSA9IHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBT
T1VQX1RZUEVfQ09PS0lFX0pBUik7CisgICAgaWYgKCFjb29raWVKYXJGZWF0dXJlKQorICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgRnJhbWUqIGZyYW1lID0gbXAtPm1fcGxheWVyLT5mcmFtZVZp
ZXcoKSA/IG1wLT5tX3BsYXllci0+ZnJhbWVWaWV3KCktPmZyYW1lKCkgOiAwOwotICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5kb2N1bWVudCgpIDogMDsKLSAgICAg
ICAgaWYgKGRvY3VtZW50KSB7Ci0gICAgICAgICAgICBHc3RTdHJ1Y3R1cmUqIGV4dHJhSGVhZGVy
cyA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJleHRyYS1oZWFkZXJzIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlZmVyZXIiLCBHX1RZ
UEVfU1RSSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC0+ZG9jdW1lbnRVUkkoKS51dGY4KCkuZGF0YSgpLCAwKTsK
LSAgICAgICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAiZXh0cmEtaGVhZGVycyIsIGV4dHJh
SGVhZGVycywgTlVMTCk7Ci0gICAgICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUoZXh0cmFIZWFk
ZXJzKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBTb3VwQ29va2llSmFyKiBjb29raWVKYXIgPSBT
T1VQX0NPT0tJRV9KQVIoY29va2llSmFyRmVhdHVyZSk7CisgICAgY2hhciogY29va2llcyA9IHNv
dXBfY29va2llX2phcl9nZXRfY29va2llcyhjb29raWVKYXIsIHVyaS5nZXQoKSwgRkFMU0UpOwog
Ci0gICAgZ3N0X29iamVjdF91bnJlZihlbGVtZW50KTsKKyAgICBjaGFyKiBjb29raWVzU3Rydltd
ID0ge2Nvb2tpZXMsIDB9OworICAgIGdfb2JqZWN0X3NldChlbGVtZW50LmdldCgpLCAiY29va2ll
cyIsIGNvb2tpZXNTdHJ2LCBOVUxMKTsKKyAgICBnX2ZyZWUoY29va2llcyk7CiB9CiAKIHZvaWQg
bWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQs
IEdQYXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQotLSAKMS42LjMuMw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47916</attachid>
            <date>2010-02-02 02:30:25 -0800</date>
            <delta_ts>2010-02-02 06:02:42 -0800</delta_ts>
            <desc>refactored HTTP headers injection code</desc>
            <filename>refactored-HTTP-headers-injection-code.patch</filename>
            <type>text/plain</type>
            <size>10208</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3NmNkNGRjMDMwZGVhYzc0OGQ0ZmNhZmY5Mzg5OWIzZjlmYWY5NzBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMTk6MTk6NDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBy
ZWZhY3RvcmVkIEhUVFAgaGVhZGVycyBpbmplY3Rpb24gY29kZQoKLS0tCiBDaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysrCiBHTlVtYWtl
ZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsr
KysKIEphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0ci5jcHAgICAgICAgICAgICAgICAgIHwg
ICAxNyArKysrLQogSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmggICAgICAgICAgICAg
ICAgICAgfCAgICA2ICsrCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTUgKysrKwogLi4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwICAgfCAgIDczICsrKysrKysrKystLS0tLS0tLS0KIDcgZmlsZXMgY2hh
bmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0No
YW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzNThlNTk3Li4yNzVkMzJiIDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDItMDIgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHdGtdIGxpYnNvdXAgY3JpdGljYWwgd2Fy
bmluZyBpbiBtZWRpYSBwbGF5ZXIgaHR0cCBjb29raWVzIGluamVjdGlvbiBjb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQzNQorCisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06IEFkZGVkIGxpYnNvdXAgYW5kIGdzdHJlYW1lciBDRkxBR1MvTERG
TEFHUyB0byBKYXZhc2NyaXB0Q29yZSBidWlsZC4KKwogMjAxMC0wMS0yOSAgSmVyZW15IE9ybG93
ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEds
YXprb3YuCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4
IGY5YWQyMWMuLjJkMzcxZDkgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1h
a2VmaWxlLmFtCkBAIC0xNzksNiArMTc5LDggQEAgbGliSmF2YVNjcmlwdENvcmVfbGFfU09VUkNF
UyA9IFwKIGxpYkphdmFTY3JpcHRDb3JlX2xhX0xJQkFERCA9IFwKIAkkKFVOSUNPREVfTElCUykg
XAogCSQoR0xJQl9MSUJTKSBcCisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElCU09VUF9MSUJT
KSBcCiAJLWxwdGhyZWFkCiAKIGxpYkphdmFTY3JpcHRDb3JlX2xhX0NYWEZMQUdTID0gXApAQCAt
MTkwLDYgKzE5Miw4IEBAIGxpYkphdmFTY3JpcHRDb3JlX2xhX0NGTEFHUyA9IFwKIAktTzMgXAog
CSQoZ2xvYmFsX2NmbGFncykgXAogCSQoR0xJQl9DRkxBR1MpIFwKKwkkKEdTVFJFQU1FUl9DRkxB
R1MpIFwKKwkkKExJQlNPVVBfQ0ZMQUdTKSBcCiAJJChVTklDT0RFX0NGTEFHUykKIAogbGliSmF2
YVNjcmlwdENvcmVfbGFfQ1BQRkxBR1MgPSBcCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggOGNjOWNlMy4uMTM2YTc4
ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTAyLTAyICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbR3RrXSBsaWJzb3VwIGNyaXRpY2FsIHdhcm5pbmcgaW4gbWVk
aWEgcGxheWVyIGh0dHAgY29va2llcyBpbmplY3Rpb24gY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MzUKKworICAgICAgICBBZGRlZCBzdXBw
b3J0IGZvciBHc3RFbGVtZW50IGFuZCBTb3VwVVJJIHR5cGVzIGluIEdPd25QdHIuCisKKyAgICAg
ICAgKiB3dGYvZ3RrL0dPd25QdHIuY3BwOgorICAgICAgICAoV1RGOjpTb3VwVVJJKToKKyAgICAg
ICAgKFdURjo6R3N0RWxlbWVudCk6CisgICAgICAgICogd3RmL2d0ay9HT3duUHRyLmg6CisKIDIw
MTAtMDItMDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5k
b3dzIGJ1aWxkIGZpeCwgdXBkYXRlIGV4cG9ydHMgZmlsZSAoYWdhaW4pCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuY3BwIGIvSmF2YVNjcmlwdENvcmUvd3RmL2d0
ay9HT3duUHRyLmNwcAppbmRleCAxYTE1MWI5Li4yMjQyZjVkIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9ndGsv
R093blB0ci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IENv
bGxhYm9yYSBMdGQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIw
LDYgKzIxLDggQEAKICNpbmNsdWRlICJHT3duUHRyLmgiCiAKICNpbmNsdWRlIDxnbGliLmg+Cisj
aW5jbHVkZSA8Z3N0L2dzdGVsZW1lbnQuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtdXJpLmg+
CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC01Nyw0ICs2MCwxNiBAQCB0ZW1wbGF0ZSA8PiB2b2lk
IGZyZWVPd25lZEdQdHI8R0Rpcj4oR0RpciogcHRyKQogICAgIGlmIChwdHIpCiAgICAgICAgIGdf
ZGlyX2Nsb3NlKHB0cik7CiB9CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVkR1B0cjxTb3Vw
VVJJPihTb3VwVVJJKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgc291cF91cmlfZnJl
ZShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R3N0RWxlbWVudD4o
R3N0RWxlbWVudCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdzdF9vYmplY3RfdW5y
ZWYocHRyKTsKK30KIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvd3RmL2d0ay9HT3duUHRyLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuaApp
bmRleCBhZDJjMzBlLi5jODMzNDIyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvZ3Rr
L0dPd25QdHIuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuaApAQCAtMSw2
ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTM1LDYgKzM2LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dNdXRleCBHTXV0ZXg7CiB0eXBlZGVm
IHN0cnVjdCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKIHR5cGVkZWYgc3RydWN0IF9HRGly
IEdEaXI7CiB0eXBlZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRhYmxlOwordHlwZWRlZiBz
dHJ1Y3QgX1NvdXBVUkkgU291cFVSSTsKK3R5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50IEdzdEVs
ZW1lbnQ7CisKIGV4dGVybiAiQyIgdm9pZCBnX2ZyZWUodm9pZCopOwogCiBuYW1lc3BhY2UgV1RG
IHsKQEAgLTQ3LDYgKzUxLDggQEAgdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R011dGV4
PihHTXV0ZXgqKTsKIHRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdQYXR0ZXJuU3BlYz4o
R1BhdHRlcm5TcGVjKik7CiB0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHRGlyPihHRGly
Kik7CiB0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHSGFzaFRhYmxlPihHSGFzaFRhYmxl
Kik7Cit0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxTb3VwVVJJPihTb3VwVVJJKiBwdHIp
OwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R3N0RWxlbWVudD4oR3N0RWxlbWVudCog
cHRyKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdPd25QdHIgOiBwdWJsaWMgTm9u
Y29weWFibGUgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBjMWIyN2YzLi43ODg1NWJlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEw
LTAyLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBsaWJzb3VwIGNy
aXRpY2FsIHdhcm5pbmcgaW4gbWVkaWEgcGxheWVyIGh0dHAgY29va2llcyBpbmplY3Rpb24gY29k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MzUK
KworICAgICAgICBGaXhlZCB0aGUgY3JpdGljYWwgd2FybmluZyBhbmQgcmVmYWN0b3JlZCB0aGUK
KyAgICAgICAgVXNlci1BZ2VudC9SZWZlcmVyL2Nvb2tpZXMgaW5qZWN0aW9uIGNvZGUsIGluIHRo
YXQgb3JkZXIuIFByZXZpb3VzCisgICAgICAgIG9yZGVyIChjb29raWVzIGZpcnN0KSB3YXMgd3Jv
bmcgYmVjYXVzZSBpZiBjb29raWVzIGluamVjdGlvbiBjb3VsZAorICAgICAgICBub3QgYmUgZG9u
ZSBuZWl0aGVyIHRoZSBVc2VyLUFnZW50IG5vdCBSZWZlcmVyIHdlcmUgaW5qZWN0ZWQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRD
YWxsYmFjayk6CisKIDIwMTAtMDEtMjkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCmluZGV4IGQ5NmMxZTMuLjZhYTM1MTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTMxLDUyICsxMzEsNTUgQEAgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRl
TWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG8KIHZv
aWQgbWVkaWFQbGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKm9iamVj
dCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7
Ci0gICAgR3N0RWxlbWVudCogZWxlbWVudDsKKyAgICBHT3duUHRyPEdzdEVsZW1lbnQ+IGVsZW1l
bnQ7CiAKLSAgICBnX29iamVjdF9nZXQobXAtPm1fcGxheUJpbiwgInNvdXJjZSIsICZlbGVtZW50
LCBOVUxMKTsKLSAgICBnc3Rfb2JqZWN0X3JlcGxhY2UoKEdzdE9iamVjdCoqKSAmbXAtPm1fc291
cmNlLCAoR3N0T2JqZWN0KikgZWxlbWVudCk7CisgICAgZ19vYmplY3RfZ2V0KG1wLT5tX3BsYXlC
aW4sICJzb3VyY2UiLCAmZWxlbWVudC5vdXRQdHIoKSwgTlVMTCk7CisgICAgZ3N0X29iamVjdF9y
ZXBsYWNlKChHc3RPYmplY3QqKikgJm1wLT5tX3NvdXJjZSwgKEdzdE9iamVjdCopIGVsZW1lbnQu
Z2V0KCkpOwogCi0gICAgaWYgKGVsZW1lbnQpIHsKLSAgICAgICAgR1BhcmFtU3BlYyogcHNwZWMg
PSBnX29iamVjdF9jbGFzc19maW5kX3Byb3BlcnR5KEdfT0JKRUNUX0dFVF9DTEFTUyhlbGVtZW50
KSwgImNvb2tpZXMiKTsKLQotICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGUgc291cmNlIGVs
ZW1lbnQgaGFzIGEgY29va2llcyBwcm9wZXJ0eQotICAgICAgICAvLyBvZiB0aGUgZm9ybWF0IHdl
IGV4cGVjdAotICAgICAgICBpZiAoIXBzcGVjIHx8IHBzcGVjLT52YWx1ZV90eXBlICE9IEdfVFlQ
RV9TVFJWKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIFRoZW4gZ2V0IHRoZSBj
b29raWVzIGZvciB0aGUgVVJJIGFuZCBzZXQgdGhlbQotICAgICAgICBTb3VwU2Vzc2lvbiogc2Vz
c2lvbiA9IHdlYmtpdF9nZXRfZGVmYXVsdF9zZXNzaW9uKCk7Ci0gICAgICAgIFNvdXBDb29raWVK
YXIqIGNvb2tpZUphciA9IFNPVVBfQ09PS0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUo
c2Vzc2lvbiwgU09VUF9UWVBFX0NPT0tJRV9KQVIpKTsKLQotICAgICAgICBjaGFyKiBsb2NhdGlv
bjsKLSAgICAgICAgZ19vYmplY3RfZ2V0KGVsZW1lbnQsICJsb2NhdGlvbiIsICZsb2NhdGlvbiwg
TlVMTCk7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgU291
cFVSSSogdXJpID0gc291cF91cmlfbmV3KGxvY2F0aW9uKTsKLSAgICAgICAgZ19mcmVlKGxvY2F0
aW9uKTsKKyAgICBjaGFyKiBsb2NhdGlvbjsKKyAgICBnX29iamVjdF9nZXQoZWxlbWVudC5nZXQo
KSwgImxvY2F0aW9uIiwgJmxvY2F0aW9uLCBOVUxMKTsKKworICAgIEdPd25QdHI8U291cFVSST4g
dXJpKHNvdXBfdXJpX25ldyhsb2NhdGlvbikpOworICAgIGdfZnJlZShsb2NhdGlvbik7CisKKyAg
ICAvLyBMZXQgQXBwbGUgd2ViIHNlcnZlcnMga25vdyB3ZSB3YW50IHRvIGFjY2VzcyB0aGVpciBu
aWNlIG1vdmllIHRyYWlsZXJzLgorICAgIGlmIChnX3N0cl9lcXVhbCh1cmktPmhvc3QsICJtb3Zp
ZXMuYXBwbGUuY29tIikpCisgICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LmdldCgpLCAidXNl
ci1hZ2VudCIsICJRdWlja3RpbWUvNy4yLjAiLCBOVUxMKTsKKworICAgIC8vIFNldCB0aGUgSFRU
UCByZWZlcmVyLgorICAgIEZyYW1lKiBmcmFtZSA9IG1wLT5tX3BsYXllci0+ZnJhbWVWaWV3KCkg
PyBtcC0+bV9wbGF5ZXItPmZyYW1lVmlldygpLT5mcmFtZSgpIDogMDsKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5kb2N1bWVudCgpIDogMDsKKyAgICBpZiAoZG9jdW1l
bnQpIHsKKyAgICAgICAgR3N0U3RydWN0dXJlKiBleHRyYUhlYWRlcnMgPSBnc3Rfc3RydWN0dXJl
X25ldygiZXh0cmEtaGVhZGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlJlZmVyZXIiLCBHX1RZUEVfU1RSSU5HLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LT5k
b2N1bWVudFVSSSgpLnV0ZjgoKS5kYXRhKCksIDApOworICAgICAgICBnX29iamVjdF9zZXQoZWxl
bWVudC5nZXQoKSwgImV4dHJhLWhlYWRlcnMiLCBleHRyYUhlYWRlcnMsIE5VTEwpOworICAgICAg
ICBnc3Rfc3RydWN0dXJlX2ZyZWUoZXh0cmFIZWFkZXJzKTsKKyAgICB9CiAKLSAgICAgICAgLy8g
TGV0IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cgd2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBt
b3ZpZSB0cmFpbGVycy4KLSAgICAgICAgaWYgKGdfc3RyX2VxdWFsKHVyaS0+aG9zdCwgIm1vdmll
cy5hcHBsZS5jb20iKSkKLSAgICAgICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAidXNlci1h
Z2VudCIsICJRdWlja3RpbWUvNy4yLjAiLCBOVUxMKTsKKyAgICAvLyBEZWFsIHdpdGggdGhlIGNv
b2tpZXMgZnJvbSBub3cgb24uCisgICAgR1BhcmFtU3BlYyogY29va2llc1BhcmFtU3BlYyA9IGdf
b2JqZWN0X2NsYXNzX2ZpbmRfcHJvcGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKGVsZW1lbnQuZ2V0
KCkpLCAiY29va2llcyIpOwogCi0gICAgICAgIGNoYXIqIGNvb2tpZXMgPSBzb3VwX2Nvb2tpZV9q
YXJfZ2V0X2Nvb2tpZXMoY29va2llSmFyLCB1cmksIEZBTFNFKTsKLSAgICAgICAgc291cF91cmlf
ZnJlZSh1cmkpOworICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRoZSBzb3VyY2UgZWxlbWVudCBoYXMg
YSBjb29raWVzIHByb3BlcnR5CisgICAgLy8gb2YgdGhlIGZvcm1hdCB3ZSBleHBlY3QKKyAgICBp
ZiAoIWNvb2tpZXNQYXJhbVNwZWMgfHwgY29va2llc1BhcmFtU3BlYy0+dmFsdWVfdHlwZSAhPSBH
X1RZUEVfU1RSVikKKyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGNoYXIqIGNvb2tpZXNTdHJ2
W10gPSB7Y29va2llcywgTlVMTH07Ci0gICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAiY29v
a2llcyIsIGNvb2tpZXNTdHJ2LCBOVUxMKTsKLSAgICAgICAgZ19mcmVlKGNvb2tpZXMpOworICAg
IC8vIFRoZW4gZ2V0IHRoZSBjb29raWVzIGZvciB0aGUgVVJJIGFuZCBzZXQgdGhlbQorICAgIFNv
dXBTZXNzaW9uKiBzZXNzaW9uID0gd2Via2l0X2dldF9kZWZhdWx0X3Nlc3Npb24oKTsKKyAgICBT
b3VwU2Vzc2lvbkZlYXR1cmUqIGNvb2tpZUphckZlYXR1cmUgPSBzb3VwX3Nlc3Npb25fZ2V0X2Zl
YXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0NPT0tJRV9KQVIpOworICAgIGlmICghY29va2llSmFy
RmVhdHVyZSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIEZyYW1lKiBmcmFtZSA9IG1wLT5t
X3BsYXllci0+ZnJhbWVWaWV3KCkgPyBtcC0+bV9wbGF5ZXItPmZyYW1lVmlldygpLT5mcmFtZSgp
IDogMDsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUgPyBmcmFtZS0+ZG9jdW1l
bnQoKSA6IDA7Ci0gICAgICAgIGlmIChkb2N1bWVudCkgewotICAgICAgICAgICAgR3N0U3RydWN0
dXJlKiBleHRyYUhlYWRlcnMgPSBnc3Rfc3RydWN0dXJlX25ldygiZXh0cmEtaGVhZGVycyIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJSZWZlcmVyIiwgR19UWVBFX1NUUklORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQtPmRvY3VtZW50VVJJKCkudXRm
OCgpLmRhdGEoKSwgMCk7Ci0gICAgICAgICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgImV4dHJh
LWhlYWRlcnMiLCBleHRyYUhlYWRlcnMsIE5VTEwpOwotICAgICAgICAgICAgZ3N0X3N0cnVjdHVy
ZV9mcmVlKGV4dHJhSGVhZGVycyk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgU291cENvb2tpZUph
ciogY29va2llSmFyID0gU09VUF9DT09LSUVfSkFSKGNvb2tpZUphckZlYXR1cmUpOworICAgIGNo
YXIqIGNvb2tpZXMgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZXMoY29va2llSmFyLCB1cmku
Z2V0KCksIEZBTFNFKTsKIAotICAgIGdzdF9vYmplY3RfdW5yZWYoZWxlbWVudCk7CisgICAgY2hh
ciogY29va2llc1N0cnZbXSA9IHtjb29raWVzLCAwfTsKKyAgICBnX29iamVjdF9zZXQoZWxlbWVu
dC5nZXQoKSwgImNvb2tpZXMiLCBjb29raWVzU3RydiwgTlVMTCk7CisgICAgZ19mcmVlKGNvb2tp
ZXMpOwogfQogCiB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVZvbHVtZUNoYW5nZWRDYWxsYmFjayhH
T2JqZWN0ICplbGVtZW50LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgZGF0YSkKLS0gCjEu
Ni4zLjM=
</data>
<flag name="review"
          id="30490"
          type_id="1"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47929</attachid>
            <date>2010-02-02 06:02:42 -0800</date>
            <delta_ts>2010-02-03 01:23:28 -0800</delta_ts>
            <desc>refactored HTTP headers injection code</desc>
            <filename>refactored-HTTP-headers-injection-code.patch</filename>
            <type>text/plain</type>
            <size>9758</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5YmM4N2NmYjFiZmQwYTY2Mzk5ZTRhZTgyYTY5ZjZjYmZlZjJlYmU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMTk6MTk6NDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBy
ZWZhY3RvcmVkIEhUVFAgaGVhZGVycyBpbmplY3Rpb24gY29kZQoKLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrCiBXZWJD
b3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
Li4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDcy
ICsrKysrKysrKystLS0tLS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNw
cCAgICAgICAgICAgICAgICB8ICAgNDAgKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0dPd25QdHJHdGsuaCAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrKysrCiA1IGZpbGVz
IGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuaAoKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFiMjdmMy4uMDFkZjhk
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMi0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0d0a10gbGlic291cCBjcml0aWNhbCB3YXJuaW5nIGluIG1lZGlhIHBsYXllciBodHRw
IGNvb2tpZXMgaW5qZWN0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0NDM1CisKKyAgICAgICAgRml4ZWQgdGhlIGNyaXRpY2FsIHdhcm5p
bmcgYW5kIHJlZmFjdG9yZWQgdGhlCisgICAgICAgIFVzZXItQWdlbnQvUmVmZXJlci9jb29raWVz
IGluamVjdGlvbiBjb2RlLCBpbiB0aGF0IG9yZGVyLiBQcmV2aW91cworICAgICAgICBvcmRlciAo
Y29va2llcyBmaXJzdCkgd2FzIHdyb25nIGJlY2F1c2UgaWYgY29va2llcyBpbmplY3Rpb24gY291
bGQKKyAgICAgICAgbm90IGJlIGRvbmUgbmVpdGhlciB0aGUgVXNlci1BZ2VudCBub3QgUmVmZXJl
ciB3ZXJlIGluamVjdGVkLiBBbHNvCisgICAgICAgIHN0YXJ0ZWQgYSBub24tSlNDLXNwZWNpZmlj
LCBndGstc3BlY2lmaWMgR093blB0ciBtb2R1bGUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNo
YW5nZWRDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6U291cFVSSSk6CisgICAgICAgIChXVEY6OkdzdEVsZW1lbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmg6IEFkZGVkLgorCiAyMDEwLTAx
LTI5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3YWZlOGQ4Li4zMGZkOTIzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KQEAgLTIwMDQsNiArMjAwNCw4IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0dSZWZQdHJHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmggXAor
CVdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuY3BwIFwKKwlXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HT3duUHRyR3RrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdl
dC5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5oIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL2d0ay9LVVJMR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApp
bmRleCBkOTZjMWUzLi5jZDJmNWNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEz
MSw1MiArMTMxLDUyIEBAIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU1lc3NhZ2VDYWxsYmFj
ayhHc3RCdXMqIGJ1cywgR3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvCiB2b2lkIG1lZGlhUGxheWVy
UHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0ICpvYmplY3QsIEdQYXJhbVNwZWMg
KnBzcGVjLCBncG9pbnRlciBkYXRhKQogewogICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAgPSBy
ZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOwotICAgIEdzdEVsZW1l
bnQqIGVsZW1lbnQ7CisgICAgR093blB0cjxHc3RFbGVtZW50PiBlbGVtZW50OwogCi0gICAgZ19v
YmplY3RfZ2V0KG1wLT5tX3BsYXlCaW4sICJzb3VyY2UiLCAmZWxlbWVudCwgTlVMTCk7Ci0gICAg
Z3N0X29iamVjdF9yZXBsYWNlKChHc3RPYmplY3QqKikgJm1wLT5tX3NvdXJjZSwgKEdzdE9iamVj
dCopIGVsZW1lbnQpOworICAgIGdfb2JqZWN0X2dldChtcC0+bV9wbGF5QmluLCAic291cmNlIiwg
JmVsZW1lbnQub3V0UHRyKCksIE5VTEwpOworICAgIGdzdF9vYmplY3RfcmVwbGFjZSgoR3N0T2Jq
ZWN0KiopICZtcC0+bV9zb3VyY2UsIChHc3RPYmplY3QqKSBlbGVtZW50LmdldCgpKTsKIAotICAg
IGlmIChlbGVtZW50KSB7Ci0gICAgICAgIEdQYXJhbVNwZWMqIHBzcGVjID0gZ19vYmplY3RfY2xh
c3NfZmluZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xBU1MoZWxlbWVudCksICJjb29raWVzIik7
Ci0KLSAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhlIHNvdXJjZSBlbGVtZW50IGhhcyBhIGNv
b2tpZXMgcHJvcGVydHkKLSAgICAgICAgLy8gb2YgdGhlIGZvcm1hdCB3ZSBleHBlY3QKLSAgICAg
ICAgaWYgKCFwc3BlYyB8fCBwc3BlYy0+dmFsdWVfdHlwZSAhPSBHX1RZUEVfU1RSVikKLSAgICAg
ICAgICAgIHJldHVybjsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKIAotICAg
ICAgICAvLyBUaGVuIGdldCB0aGUgY29va2llcyBmb3IgdGhlIFVSSSBhbmQgc2V0IHRoZW0KLSAg
ICAgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSB3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbigp
OwotICAgICAgICBTb3VwQ29va2llSmFyKiBjb29raWVKYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291
cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7Cisg
ICAgR093blB0cjxjaGFyPiBsb2NhdGlvbjsKKyAgICBnX29iamVjdF9nZXQoZWxlbWVudC5nZXQo
KSwgImxvY2F0aW9uIiwgJmxvY2F0aW9uLm91dFB0cigpLCBOVUxMKTsKIAotICAgICAgICBjaGFy
KiBsb2NhdGlvbjsKLSAgICAgICAgZ19vYmplY3RfZ2V0KGVsZW1lbnQsICJsb2NhdGlvbiIsICZs
b2NhdGlvbiwgTlVMTCk7CisgICAgR093blB0cjxTb3VwVVJJPiB1cmkoc291cF91cmlfbmV3KGxv
Y2F0aW9uLmdldCgpKSk7CiAKLSAgICAgICAgU291cFVSSSogdXJpID0gc291cF91cmlfbmV3KGxv
Y2F0aW9uKTsKLSAgICAgICAgZ19mcmVlKGxvY2F0aW9uKTsKKyAgICAvLyBMZXQgQXBwbGUgd2Vi
IHNlcnZlcnMga25vdyB3ZSB3YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJz
LgorICAgIGlmIChnX3N0cl9lcXVhbCh1cmktPmhvc3QsICJtb3ZpZXMuYXBwbGUuY29tIikpCisg
ICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LmdldCgpLCAidXNlci1hZ2VudCIsICJRdWlja3Rp
bWUvNy4yLjAiLCBOVUxMKTsKIAotICAgICAgICAvLyBMZXQgQXBwbGUgd2ViIHNlcnZlcnMga25v
dyB3ZSB3YW50IHRvIGFjY2VzcyB0aGVpciBuaWNlIG1vdmllIHRyYWlsZXJzLgotICAgICAgICBp
ZiAoZ19zdHJfZXF1YWwodXJpLT5ob3N0LCAibW92aWVzLmFwcGxlLmNvbSIpKQotICAgICAgICAg
ICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJ1c2VyLWFnZW50IiwgIlF1aWNrdGltZS83LjIuMCIs
IE5VTEwpOworICAgIC8vIFNldCB0aGUgSFRUUCByZWZlcmVyLgorICAgIEZyYW1lKiBmcmFtZSA9
IG1wLT5tX3BsYXllci0+ZnJhbWVWaWV3KCkgPyBtcC0+bV9wbGF5ZXItPmZyYW1lVmlldygpLT5m
cmFtZSgpIDogMDsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5kb2N1
bWVudCgpIDogMDsKKyAgICBpZiAoZG9jdW1lbnQpIHsKKyAgICAgICAgR3N0U3RydWN0dXJlKiBl
eHRyYUhlYWRlcnMgPSBnc3Rfc3RydWN0dXJlX25ldygiZXh0cmEtaGVhZGVycyIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlZmVyZXIi
LCBHX1RZUEVfU1RSSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVudFVSSSgpLnV0ZjgoKS5kYXRhKCksIDAp
OworICAgICAgICBnX29iamVjdF9zZXQoZWxlbWVudC5nZXQoKSwgImV4dHJhLWhlYWRlcnMiLCBl
eHRyYUhlYWRlcnMsIE5VTEwpOworICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUoZXh0cmFIZWFk
ZXJzKTsKKyAgICB9CiAKLSAgICAgICAgY2hhciogY29va2llcyA9IHNvdXBfY29va2llX2phcl9n
ZXRfY29va2llcyhjb29raWVKYXIsIHVyaSwgRkFMU0UpOwotICAgICAgICBzb3VwX3VyaV9mcmVl
KHVyaSk7CisgICAgLy8gRGVhbCB3aXRoIHRoZSBjb29raWVzIGZyb20gbm93IG9uLgorICAgIEdQ
YXJhbVNwZWMqIGNvb2tpZXNQYXJhbVNwZWMgPSBnX29iamVjdF9jbGFzc19maW5kX3Byb3BlcnR5
KEdfT0JKRUNUX0dFVF9DTEFTUyhlbGVtZW50LmdldCgpKSwgImNvb2tpZXMiKTsKIAotICAgICAg
ICBjaGFyKiBjb29raWVzU3RydltdID0ge2Nvb2tpZXMsIE5VTEx9OwotICAgICAgICBnX29iamVj
dF9zZXQoZWxlbWVudCwgImNvb2tpZXMiLCBjb29raWVzU3RydiwgTlVMTCk7Ci0gICAgICAgIGdf
ZnJlZShjb29raWVzKTsKKyAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGUgc291cmNlIGVsZW1lbnQg
aGFzIGEgY29va2llcyBwcm9wZXJ0eQorICAgIC8vIG9mIHRoZSBmb3JtYXQgd2UgZXhwZWN0Cisg
ICAgaWYgKCFjb29raWVzUGFyYW1TcGVjIHx8IGNvb2tpZXNQYXJhbVNwZWMtPnZhbHVlX3R5cGUg
IT0gR19UWVBFX1NUUlYpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICBGcmFtZSogZnJhbWUg
PSBtcC0+bV9wbGF5ZXItPmZyYW1lVmlldygpID8gbXAtPm1fcGxheWVyLT5mcmFtZVZpZXcoKS0+
ZnJhbWUoKSA6IDA7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lID8gZnJhbWUt
PmRvY3VtZW50KCkgOiAwOwotICAgICAgICBpZiAoZG9jdW1lbnQpIHsKLSAgICAgICAgICAgIEdz
dFN0cnVjdHVyZSogZXh0cmFIZWFkZXJzID0gZ3N0X3N0cnVjdHVyZV9uZXcoImV4dHJhLWhlYWRl
cnMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiUmVmZXJlciIsIEdfVFlQRV9TVFJJTkcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVudFVS
SSgpLnV0ZjgoKS5kYXRhKCksIDApOwotICAgICAgICAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQs
ICJleHRyYS1oZWFkZXJzIiwgZXh0cmFIZWFkZXJzLCBOVUxMKTsKLSAgICAgICAgICAgIGdzdF9z
dHJ1Y3R1cmVfZnJlZShleHRyYUhlYWRlcnMpOwotICAgICAgICB9Ci0gICAgfQorICAgIC8vIFRo
ZW4gZ2V0IHRoZSBjb29raWVzIGZvciB0aGUgVVJJIGFuZCBzZXQgdGhlbQorICAgIFNvdXBTZXNz
aW9uKiBzZXNzaW9uID0gd2Via2l0X2dldF9kZWZhdWx0X3Nlc3Npb24oKTsKKyAgICBTb3VwU2Vz
c2lvbkZlYXR1cmUqIGNvb2tpZUphckZlYXR1cmUgPSBzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUo
c2Vzc2lvbiwgU09VUF9UWVBFX0NPT0tJRV9KQVIpOworICAgIGlmICghY29va2llSmFyRmVhdHVy
ZSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgZ3N0X29iamVjdF91bnJlZihlbGVtZW50KTsKKyAg
ICBTb3VwQ29va2llSmFyKiBjb29raWVKYXIgPSBTT1VQX0NPT0tJRV9KQVIoY29va2llSmFyRmVh
dHVyZSk7CisgICAgR093blB0cjxjaGFyPiBjb29raWVzKHNvdXBfY29va2llX2phcl9nZXRfY29v
a2llcyhjb29raWVKYXIsIHVyaS5nZXQoKSwgRkFMU0UpKTsKKyAgICBjaGFyKiBjb29raWVzU3Ry
dltdID0ge2Nvb2tpZXMuZ2V0KCksIDB9OworICAgIGdfb2JqZWN0X3NldChlbGVtZW50LmdldCgp
LCAiY29va2llcyIsIGNvb2tpZXNTdHJ2LCBOVUxMKTsKIH0KIAogdm9pZCBtZWRpYVBsYXllclBy
aXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqZWxlbWVudCwgR1BhcmFtU3BlYyAq
cHNwZWMsIGdwb2ludGVyIGRhdGEpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
T3duUHRyR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiYjEzMzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNwcApAQCAtMCwwICsxLDQwIEBACisv
KgorICogIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHT3duUHRyR3Rr
LmgiCisKKyNpbmNsdWRlIDxnc3QvZ3N0ZWxlbWVudC5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291
cC11cmkuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVk
R1B0cjxTb3VwVVJJPihTb3VwVVJJKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgc291
cF91cmlfZnJlZShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R3N0
RWxlbWVudD4oR3N0RWxlbWVudCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdzdF9v
YmplY3RfdW5yZWYocHRyKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvR093blB0ckd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR093blB0ckd0ay5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1ODUwMDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmgKQEAgLTAsMCArMSwzNSBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdP
d25QdHJHdGtfaAorI2RlZmluZSBHT3duUHRyR3RrX2gKKworI2luY2x1ZGUgIkdPd25QdHIuaCIK
KwordHlwZWRlZiBzdHJ1Y3QgX1NvdXBVUkkgU291cFVSSTsKK3R5cGVkZWYgc3RydWN0IF9Hc3RF
bGVtZW50IEdzdEVsZW1lbnQ7CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHZvaWQg
ZnJlZU93bmVkR1B0cjxTb3VwVVJJPihTb3VwVVJJKiBwdHIpOwordGVtcGxhdGU8PiB2b2lkIGZy
ZWVPd25lZEdQdHI8R3N0RWxlbWVudD4oR3N0RWxlbWVudCogcHRyKTsKKworfQorCisjZW5kaWYK
LS0gCjEuNi4zLjM=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48002</attachid>
            <date>2010-02-03 01:23:28 -0800</date>
            <delta_ts>2010-02-03 09:49:50 -0800</delta_ts>
            <desc>refactored HTTP headers injection code</desc>
            <filename>refactored-HTTP-headers-injection-code.patch</filename>
            <type>text/plain</type>
            <size>10041</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAxOWI4M2I5ZGZjMmZkNDcwZDllNWIzYzAyYTQ4MWJlZjlhYWJkMGQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMTk6MTk6NDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBy
ZWZhY3RvcmVkIEhUVFAgaGVhZGVycyBpbmplY3Rpb24gY29kZQoKLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysKIFdlYkNv
cmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiAu
Li4vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICB8ICAgNzkg
KysrKysrKysrKystLS0tLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuY3Bw
ICAgICAgICAgICAgICAgIHwgICA0MCArKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9H
T3duUHRyR3RrLmggICAgICAgICAgICAgICAgICB8ICAgMzUgKysrKysrKysrCiA1IGZpbGVzIGNo
YW5nZWQsIDE0MiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuaAoKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFhZTU5MS4uZjMxZWM0OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMC0wMi0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW0d0a10gbGlic291cCBjcml0aWNhbCB3YXJuaW5nIGluIG1lZGlhIHBsYXllciBodHRwIGNv
b2tpZXMgaW5qZWN0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0NDM1CisKKyAgICAgICAgRml4ZWQgdGhlIGNyaXRpY2FsIHdhcm5pbmcg
YW5kIHJlZmFjdG9yZWQgdGhlCisgICAgICAgIFVzZXItQWdlbnQvUmVmZXJlci9jb29raWVzIGlu
amVjdGlvbiBjb2RlLCBpbiB0aGF0IG9yZGVyLiBQcmV2aW91cworICAgICAgICBvcmRlciAoY29v
a2llcyBmaXJzdCkgd2FzIHdyb25nIGJlY2F1c2UgaWYgY29va2llcyBpbmplY3Rpb24gY291bGQK
KyAgICAgICAgbm90IGJlIGRvbmUgbmVpdGhlciB0aGUgVXNlci1BZ2VudCBub3IgUmVmZXJlciB3
ZXJlIGluamVjdGVkLiBBbHNvCisgICAgICAgIHN0YXJ0ZWQgYSBub24tSlNDLXNwZWNpZmljLCBn
dGstc3BlY2lmaWMgR093blB0ciBtb2R1bGUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5n
ZWRDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdURjo6U291cFVSSSk6CisgICAgICAgIChXVEY6OkdzdEVsZW1lbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmg6IEFkZGVkLgorCiAyMDEwLTAyLTAy
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDI2ODBhODAuLjg5NjQ3OWIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjAw
Niw2ICsyMDA2LDggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9GaWxlU3lzdGVtR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0
ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaCBcCisJV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR093blB0ckd0ay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dPd25Q
dHJHdGsuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNwcCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmggXAogCVdlYkNvcmUvcGxhdGZv
cm0vZ3RrL0tVUkxHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ5NmMx
ZTMuLjQ2NDhjM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTMxLDUyICsxMzEs
NjEgQEAgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyog
YnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG8KIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlU291
cmNlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKm9iamVjdCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdw
b2ludGVyIGRhdGEpCiB7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7Ci0gICAgR3N0RWxlbWVudCogZWxlbWVu
dDsKKyAgICBHT3duUHRyPEdzdEVsZW1lbnQ+IGVsZW1lbnQ7CiAKLSAgICBnX29iamVjdF9nZXQo
bXAtPm1fcGxheUJpbiwgInNvdXJjZSIsICZlbGVtZW50LCBOVUxMKTsKLSAgICBnc3Rfb2JqZWN0
X3JlcGxhY2UoKEdzdE9iamVjdCoqKSAmbXAtPm1fc291cmNlLCAoR3N0T2JqZWN0KikgZWxlbWVu
dCk7CisgICAgZ19vYmplY3RfZ2V0KG1wLT5tX3BsYXlCaW4sICJzb3VyY2UiLCAmZWxlbWVudC5v
dXRQdHIoKSwgTlVMTCk7CisgICAgZ3N0X29iamVjdF9yZXBsYWNlKChHc3RPYmplY3QqKikgJm1w
LT5tX3NvdXJjZSwgKEdzdE9iamVjdCopIGVsZW1lbnQuZ2V0KCkpOwogCi0gICAgaWYgKGVsZW1l
bnQpIHsKLSAgICAgICAgR1BhcmFtU3BlYyogcHNwZWMgPSBnX29iamVjdF9jbGFzc19maW5kX3By
b3BlcnR5KEdfT0JKRUNUX0dFVF9DTEFTUyhlbGVtZW50KSwgImNvb2tpZXMiKTsKKyAgICBpZiAo
IWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB0
aGUgc291cmNlIGVsZW1lbnQgaGFzIGEgY29va2llcyBwcm9wZXJ0eQotICAgICAgICAvLyBvZiB0
aGUgZm9ybWF0IHdlIGV4cGVjdAotICAgICAgICBpZiAoIXBzcGVjIHx8IHBzcGVjLT52YWx1ZV90
eXBlICE9IEdfVFlQRV9TVFJWKQotICAgICAgICAgICAgcmV0dXJuOworICAgIEdPd25QdHI8Y2hh
cj4gbG9jYXRpb247CisgICAgZ19vYmplY3RfZ2V0KGVsZW1lbnQuZ2V0KCksICJsb2NhdGlvbiIs
ICZsb2NhdGlvbi5vdXRQdHIoKSwgTlVMTCk7CiAKLSAgICAgICAgLy8gVGhlbiBnZXQgdGhlIGNv
b2tpZXMgZm9yIHRoZSBVUkkgYW5kIHNldCB0aGVtCi0gICAgICAgIFNvdXBTZXNzaW9uKiBzZXNz
aW9uID0gd2Via2l0X2dldF9kZWZhdWx0X3Nlc3Npb24oKTsKLSAgICAgICAgU291cENvb2tpZUph
ciogY29va2llSmFyID0gU09VUF9DT09LSUVfSkFSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShz
ZXNzaW9uLCBTT1VQX1RZUEVfQ09PS0lFX0pBUikpOworICAgIC8vIERvIGluamVjdGlvbiBvbmx5
IGZvciBlbGVtZW50cyBkZWFsaW5nIHdpdGggdXJpcy4KKyAgICBpZiAoIWdzdF91cmlfaXNfdmFs
aWQobG9jYXRpb24uZ2V0KCkpKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgY2hhciogbG9j
YXRpb247Ci0gICAgICAgIGdfb2JqZWN0X2dldChlbGVtZW50LCAibG9jYXRpb24iLCAmbG9jYXRp
b24sIE5VTEwpOworICAgIEdPd25QdHI8U291cFVSST4gdXJpKHNvdXBfdXJpX25ldyhsb2NhdGlv
bi5nZXQoKSkpOwogCi0gICAgICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ldyhsb2NhdGlv
bik7Ci0gICAgICAgIGdfZnJlZShsb2NhdGlvbik7CisgICAgLy8gRG8gaW5qZWN0aW9uIG9ubHkg
Zm9yIGh0dHAocykgdXJpcy4KKyAgICBpZiAoZ19hc2NpaV9zdHJuY2FzZWNtcCh1cmktPnNjaGVt
ZSwgImh0dHAiLCA0KQorICAgICAgICB8fCBnX2FzY2lpX3N0cm5jYXNlY21wKHVyaS0+c2NoZW1l
LCAiaHR0cHMiLCA1KSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIExldCBBcHBsZSB3
ZWIgc2VydmVycyBrbm93IHdlIHdhbnQgdG8gYWNjZXNzIHRoZWlyIG5pY2UgbW92aWUgdHJhaWxl
cnMuCi0gICAgICAgIGlmIChnX3N0cl9lcXVhbCh1cmktPmhvc3QsICJtb3ZpZXMuYXBwbGUuY29t
IikpCi0gICAgICAgICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInVzZXItYWdlbnQiLCAiUXVp
Y2t0aW1lLzcuMi4wIiwgTlVMTCk7CisgICAgLy8gTGV0IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cg
d2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBtb3ZpZSB0cmFpbGVycy4KKyAgICBpZiAoZ19z
dHJfZXF1YWwodXJpLT5ob3N0LCAibW92aWVzLmFwcGxlLmNvbSIpKQorICAgICAgICBnX29iamVj
dF9zZXQoZWxlbWVudC5nZXQoKSwgInVzZXItYWdlbnQiLCAiUXVpY2t0aW1lLzcuMi4wIiwgTlVM
TCk7CisKKyAgICAvLyBTZXQgdGhlIEhUVFAgcmVmZXJlci4KKyAgICBGcmFtZSogZnJhbWUgPSBt
cC0+bV9wbGF5ZXItPmZyYW1lVmlldygpID8gbXAtPm1fcGxheWVyLT5mcmFtZVZpZXcoKS0+ZnJh
bWUoKSA6IDA7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUgPyBmcmFtZS0+ZG9jdW1l
bnQoKSA6IDA7CisgICAgaWYgKGRvY3VtZW50KSB7CisgICAgICAgIEdzdFN0cnVjdHVyZSogZXh0
cmFIZWFkZXJzID0gZ3N0X3N0cnVjdHVyZV9uZXcoImV4dHJhLWhlYWRlcnMiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWZlcmVyIiwg
R19UWVBFX1NUUklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC0+ZG9jdW1lbnRVUkkoKS51dGY4KCkuZGF0YSgpLCAwKTsK
KyAgICAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQuZ2V0KCksICJleHRyYS1oZWFkZXJzIiwgZXh0
cmFIZWFkZXJzLCBOVUxMKTsKKyAgICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlKGV4dHJhSGVhZGVy
cyk7CisgICAgfQogCi0gICAgICAgIGNoYXIqIGNvb2tpZXMgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0
X2Nvb2tpZXMoY29va2llSmFyLCB1cmksIEZBTFNFKTsKLSAgICAgICAgc291cF91cmlfZnJlZSh1
cmkpOworICAgIC8vIERlYWwgd2l0aCB0aGUgY29va2llcyBmcm9tIG5vdyBvbi4KKyAgICBHUGFy
YW1TcGVjKiBjb29raWVzUGFyYW1TcGVjID0gZ19vYmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eShH
X09CSkVDVF9HRVRfQ0xBU1MoZWxlbWVudC5nZXQoKSksICJjb29raWVzIik7CiAKLSAgICAgICAg
Y2hhciogY29va2llc1N0cnZbXSA9IHtjb29raWVzLCBOVUxMfTsKLSAgICAgICAgZ19vYmplY3Rf
c2V0KGVsZW1lbnQsICJjb29raWVzIiwgY29va2llc1N0cnYsIE5VTEwpOwotICAgICAgICBnX2Zy
ZWUoY29va2llcyk7CisgICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhlIHNvdXJjZSBlbGVtZW50IGhh
cyBhIGNvb2tpZXMgcHJvcGVydHkKKyAgICAvLyBvZiB0aGUgZm9ybWF0IHdlIGV4cGVjdAorICAg
IGlmICghY29va2llc1BhcmFtU3BlYyB8fCBjb29raWVzUGFyYW1TcGVjLT52YWx1ZV90eXBlICE9
IEdfVFlQRV9TVFJWKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgRnJhbWUqIGZyYW1lID0g
bXAtPm1fcGxheWVyLT5mcmFtZVZpZXcoKSA/IG1wLT5tX3BsYXllci0+ZnJhbWVWaWV3KCktPmZy
YW1lKCkgOiAwOwotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5k
b2N1bWVudCgpIDogMDsKLSAgICAgICAgaWYgKGRvY3VtZW50KSB7Ci0gICAgICAgICAgICBHc3RT
dHJ1Y3R1cmUqIGV4dHJhSGVhZGVycyA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJleHRyYS1oZWFkZXJz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlJlZmVyZXIiLCBHX1RZUEVfU1RSSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC0+ZG9jdW1lbnRVUkko
KS51dGY4KCkuZGF0YSgpLCAwKTsKLSAgICAgICAgICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAi
ZXh0cmEtaGVhZGVycyIsIGV4dHJhSGVhZGVycywgTlVMTCk7Ci0gICAgICAgICAgICBnc3Rfc3Ry
dWN0dXJlX2ZyZWUoZXh0cmFIZWFkZXJzKTsKLSAgICAgICAgfQotICAgIH0KKyAgICAvLyBUaGVu
IGdldCB0aGUgY29va2llcyBmb3IgdGhlIFVSSSBhbmQgc2V0IHRoZW0KKyAgICBTb3VwU2Vzc2lv
biogc2Vzc2lvbiA9IHdlYmtpdF9nZXRfZGVmYXVsdF9zZXNzaW9uKCk7CisgICAgU291cFNlc3Np
b25GZWF0dXJlKiBjb29raWVKYXJGZWF0dXJlID0gc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNl
c3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFSKTsKKyAgICBpZiAoIWNvb2tpZUphckZlYXR1cmUp
CisgICAgICAgIHJldHVybjsKIAotICAgIGdzdF9vYmplY3RfdW5yZWYoZWxlbWVudCk7CisgICAg
U291cENvb2tpZUphciogY29va2llSmFyID0gU09VUF9DT09LSUVfSkFSKGNvb2tpZUphckZlYXR1
cmUpOworICAgIEdPd25QdHI8Y2hhcj4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tp
ZXMoY29va2llSmFyLCB1cmkuZ2V0KCksIEZBTFNFKSk7CisgICAgY2hhciogY29va2llc1N0cnZb
XSA9IHtjb29raWVzLmdldCgpLCAwfTsKKyAgICBnX29iamVjdF9zZXQoZWxlbWVudC5nZXQoKSwg
ImNvb2tpZXMiLCBjb29raWVzU3RydiwgTlVMTCk7CiB9CiAKIHZvaWQgbWVkaWFQbGF5ZXJQcml2
YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJhbVNwZWMgKnBz
cGVjLCBncG9pbnRlciBkYXRhKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR093
blB0ckd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmIxMzM1Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR093blB0ckd0ay5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR093blB0ckd0ay5o
IgorCisjaW5jbHVkZSA8Z3N0L2dzdGVsZW1lbnQuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAt
dXJpLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQ
dHI8U291cFVSST4oU291cFVSSSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHNvdXBf
dXJpX2ZyZWUocHRyKTsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdzdEVs
ZW1lbnQ+KEdzdEVsZW1lbnQqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnc3Rfb2Jq
ZWN0X3VucmVmKHB0cik7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0dPd25QdHJHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTg1MDAyCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR093blB0ckd0ay5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBHT3du
UHRyR3RrX2gKKyNkZWZpbmUgR093blB0ckd0a19oCisKKyNpbmNsdWRlICJHT3duUHRyLmgiCisK
K3R5cGVkZWYgc3RydWN0IF9Tb3VwVVJJIFNvdXBVUkk7Cit0eXBlZGVmIHN0cnVjdCBfR3N0RWxl
bWVudCBHc3RFbGVtZW50OworCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiB2b2lkIGZy
ZWVPd25lZEdQdHI8U291cFVSST4oU291cFVSSSogcHRyKTsKK3RlbXBsYXRlPD4gdm9pZCBmcmVl
T3duZWRHUHRyPEdzdEVsZW1lbnQ+KEdzdEVsZW1lbnQqIHB0cik7CisKK30KKworI2VuZGlmCi0t
IAoxLjYuMy4z
</data>
<flag name="review"
          id="30603"
          type_id="1"
          status="+"
          setter="gustavo"
    />
    <flag name="commit-queue"
          id="30660"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>