Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AE05311176 for ; Mon, 12 May 2014 19:50:44 +0000 (UTC) Received: (qmail 8181 invoked by uid 500); 12 May 2014 17:03:59 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 8009 invoked by uid 500); 12 May 2014 17:03:59 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 7893 invoked by uid 99); 12 May 2014 17:03:59 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 May 2014 17:03:59 +0000 X-ASF-Spam-Status: No, hits=1.7 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of chaosed0@gmail.com designates 209.85.219.44 as permitted sender) Received: from [209.85.219.44] (HELO mail-oa0-f44.google.com) (209.85.219.44) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 May 2014 17:03:52 +0000 Received: by mail-oa0-f44.google.com with SMTP id o6so1602882oag.3 for ; Mon, 12 May 2014 10:03:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=2aVCE/LBT4lqs0SxA28eaUdvyfVu77c4I/lBdmHxLwQ=; b=rETN2njYuVrs1DHq/53qsNJZNTcS4PUavFNas9xsrG3r89rtM80MjVJds063vitgMa AXDRD9OHvepepfizOoNGt4fCVkjBUr/GZM9Sz7zgnTDKB9mq/zcBJBPTBkh9eaqUj2np KMq5jN6oJ6RD9Mb+slVoKlPXfo4h3HVYs7h3Wsi821nc6zhQPl4UY881W2F8Q4SUWpnX 9ZpSmEzqbwXEDYgGrmtR8wKyVfVda9YFbXcqs4D+dLn0pZeTLkD0mGzh3/NUizES8PhM 0gMC8MpTF5NzpTPqHQk2N7AFV65pW5tgL71b0o/N/xRz8yLHl0wmRD0/EY1+HuHq/eQU j9Cw== MIME-Version: 1.0 X-Received: by 10.60.78.165 with SMTP id c5mr5210235oex.83.1399914209015; Mon, 12 May 2014 10:03:29 -0700 (PDT) Received: by 10.182.84.133 with HTTP; Mon, 12 May 2014 10:03:28 -0700 (PDT) In-Reply-To: References: Date: Mon, 12 May 2014 13:03:28 -0400 Message-ID: Subject: Re: stop copying footers to r->headers_in? From: Edward Lu To: dev@httpd.apache.org Content-Type: multipart/mixed; boundary=089e0111de622513c004f936edda X-Virus-Checked: Checked by ClamAV on apache.org --089e0111de622513c004f936edda Content-Type: multipart/alternative; boundary=089e0111de622513b604f936edd8 --089e0111de622513b604f936edd8 Content-Type: text/plain; charset=UTF-8 Both the things you caught were probably just errors I made in manually merging the patch into 2.2.x; here's a revised version, just in case. Thanks for the review. I'm not really clear on the error-notes discussion. It makes sense that we wouldn't care too much if we don't save the ones from reading the headers, since we would have errored earlier if they were set. What happens currently if there's an error reading the trailers and we are not merging the trailers? Seems like the error-notes would just get overwritten with nothing, in the general case, and they wouldn't be able to be used anywhere. On Sun, May 11, 2014 at 3:55 PM, Yann Ylavic wrote: > On Sun, May 11, 2014 at 6:35 PM, Yann Ylavic wrote: > > Restoring the status and notes (set before the body is read) seems > > unconditional to me. > > Well, actually I'm not really sure whether we should preserve or > overwritte the "error-notes" here. > > In most cases (but PROXYREQ_RESPONSE discussed below), we are still > reading the request. > If an error is raised by ap_get_mime_headers(), we probably want to > respond with a 4xx status and the corresponding error-notes (from this > call). > Moreover, the original "error-notes" (from the headers' parsing) is > very likely to be unset here (or we would have responded with that > error at that time). > > However, when ap_http_filter() is called in PROXYREQ_RESPONSE mode, we > probably need to discard the forwarded response's trailers' > "error-notes", since the client is not the culprit. > > Maybe we should distinguish (at least) these 2 "modes" in the final patch. > --089e0111de622513b604f936edd8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Both the things you caught were probably just errors I mad= e in manually merging the patch into 2.2.x; here's a revised version, j= ust in case. Thanks for the review.

I'm not really clear on the = error-notes discussion. It makes sense that we wouldn't care too much i= f we don't save the ones from reading the headers, since we would have = errored earlier if they were set. What happens currently if there's an = error reading the trailers and we are not merging the trailers? Seems like = the error-notes would just get overwritten with nothing, in the general cas= e, and they wouldn't be able to be used anywhere.


On Sun, May 1= 1, 2014 at 3:55 PM, Yann Ylavic <ylavic.dev@gmail.com> wr= ote:
On Sun, May 11, 2014 at 6:35 PM, Yann Y= lavic <ylavic.= dev@gmail.com> wrote:
> Restoring the status and notes (set before the body is read) seems
> unconditional to me.

Well, actually I'm not really sure whether we should preserve or<= br> overwritte the "error-notes" here.

In most cases (but PROXYREQ_RESPONSE discussed below), we are still
reading the request.
If an error is raised by ap_get_mime_headers(), we probably want to
respond with a 4xx status and the corresponding error-notes (from this
call).
Moreover, the original "error-notes" (from the headers' parsi= ng) is
very likely to be unset here (or we would have responded with that
error at that time).

However, when ap_http_filter() is called in PROXYREQ_RESPONSE mode, we
probably need to discard the forwarded response's trailers'
"error-notes", since the client is not the culprit.

Maybe we should distinguish (at least) these 2 "modes" in the fin= al patch.

--089e0111de622513b604f936edd8-- --089e0111de622513c004f936edda Content-Type: text/x-diff; charset=US-ASCII; name="merge_trailers.patch" Content-Disposition: attachment; filename="merge_trailers.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hv40b3cv0 SW5kZXg6IGluY2x1ZGUvaHR0cF9jb3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaW5jbHVkZS9odHRwX2Nv cmUuaAkocmV2aXNpb24gMTU5MzU0MCkKKysrIGluY2x1ZGUvaHR0cF9jb3JlLmgJKHdvcmtpbmcg Y29weSkKQEAgLTYxMyw2ICs2MTMsMTAgQEAKICNkZWZpbmUgQVBfVFJBQ0VfRU5BQkxFICAgIDEK ICNkZWZpbmUgQVBfVFJBQ0VfRVhURU5ERUQgIDIKICAgICBpbnQgdHJhY2VfZW5hYmxlOworI2Rl ZmluZSBBUF9NRVJHRV9UUkFJTEVSU19VTlNFVCAgICAwCisjZGVmaW5lIEFQX01FUkdFX1RSQUlM RVJTX0VOQUJMRSAgIDEKKyNkZWZpbmUgQVBfTUVSR0VfVFJBSUxFUlNfRElTQUJMRSAgMgorICAg IGludCBtZXJnZV90cmFpbGVyczsKIAogfSBjb3JlX3NlcnZlcl9jb25maWc7CiAKSW5kZXg6IGlu Y2x1ZGUvaHR0cGQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpbmNsdWRlL2h0dHBkLmgJKHJldmlzaW9uIDE1 OTM1NDApCisrKyBpbmNsdWRlL2h0dHBkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMDYsNiArMTAw NiwxMSBAQAogICogcmVjb3JkIHRvIGltcHJvdmUgNjRiaXQgYWxpZ25tZW50IHRoZSBuZXh0IHRp bWUgd2UgbmVlZCB0byBicmVhawogICogYmluYXJ5IGNvbXBhdGliaWxpdHkgZm9yIHNvbWUgb3Ro ZXIgcmVhc29uLgogICovCisKKyAgICAvKiogTUlNRSB0cmFpbGVyIGVudmlyb25tZW50IGZyb20g dGhlIHJlcXVlc3QgKi8KKyAgICBhcHJfdGFibGVfdCAqdHJhaWxlcnNfaW47CisgICAgLyoqIE1J TUUgdHJhaWxlciBlbnZpcm9ubWVudCBmcm9tIHRoZSByZXNwb25zZSAqLworICAgIGFwcl90YWJs ZV90ICp0cmFpbGVyc19vdXQ7CiB9OwogCiAvKioKSW5kZXg6IG1vZHVsZXMvaHR0cC9odHRwX2Zp bHRlcnMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBtb2R1bGVzL2h0dHAvaHR0cF9maWx0ZXJzLmMJKHJldmlz aW9uIDE1OTM1NDApCisrKyBtb2R1bGVzL2h0dHAvaHR0cF9maWx0ZXJzLmMJKHdvcmtpbmcgY29w eSkKQEAgLTIxNSw2ICsyMTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX2lu cHV0X21vZGVfdCBtb2RlLCBhcHJfcmVhZF90eXBlX2UgYmxvY2ssCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXByX29mZl90IHJlYWRieXRlcykKIHsKKyAgICBjb3JlX3NlcnZlcl9jb25m aWcgKmNvbmY7CiAgICAgYXByX2J1Y2tldCAqZTsKICAgICBodHRwX2N0eF90ICpjdHggPSBmLT5j dHg7CiAgICAgYXByX3N0YXR1c190IHJ2OwpAQCAtMjIyLDYgKzIyMyw5IEBACiAgICAgaW50IGh0 dHBfZXJyb3IgPSBIVFRQX1JFUVVFU1RfRU5USVRZX1RPT19MQVJHRTsKICAgICBhcHJfYnVja2V0 X2JyaWdhZGUgKmJiOwogCisgICAgY29uZiA9IChjb3JlX3NlcnZlcl9jb25maWcgKikKKyAgICAg ICAgYXBfZ2V0X21vZHVsZV9jb25maWcoZi0+ci0+c2VydmVyLT5tb2R1bGVfY29uZmlnLCAmY29y ZV9tb2R1bGUpOworCiAgICAgLyoganVzdCBnZXQgb3V0IG9mIHRoZSB3YXkgb2YgdGhpbmdzIHdl IGRvbid0IHdhbnQuICovCiAgICAgaWYgKG1vZGUgIT0gQVBfTU9ERV9SRUFEQllURVMgJiYgbW9k ZSAhPSBBUF9NT0RFX0dFVExJTkUpIHsKICAgICAgICAgcmV0dXJuIGFwX2dldF9icmlnYWRlKGYt Pm5leHQsIGIsIG1vZGUsIGJsb2NrLCByZWFkYnl0ZXMpOwpAQCAtNDAzLDEzICs0MDcsNTAgQEAK ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCFjdHgtPnJlbWFpbmluZykgewotICAg ICAgICAgICAgICAgIC8qIEhhbmRsZSB0cmFpbGVycyBieSBjYWxsaW5nIGFwX2dldF9taW1lX2hl YWRlcnMgYWdhaW4hICovCisgICAgICAgICAgICAgICAgaW50IHNhdmVkX3N0YXR1cyA9IGYtPnIt PnN0YXR1czsKKyAgICAgICAgICAgICAgICBhcHJfdGFibGVfdCAqc2F2ZWRfaGVhZGVyc19pbiA9 IGYtPnItPmhlYWRlcnNfaW47CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc2F2ZWRfZXJy b3Jfbm90ZXMgPSBhcHJfdGFibGVfZ2V0KGYtPnItPm5vdGVzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXJyb3Itbm90ZXMi KTsKKworICAgICAgICAgICAgICAgIC8qIEJ5IGRlZmF1bHQsIGRvbid0IG1lcmdlIGluIHRoZSB0 cmFpbGVycworICAgICAgICAgICAgICAgICAqICh0cmVhdCBVTlNFVCBhcyBESVNBQkxFKSAqLwor ICAgICAgICAgICAgICAgIGlmIChjb25mLT5tZXJnZV90cmFpbGVycyAhPSBBUF9NRVJHRV9UUkFJ TEVSU19FTkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgZi0+ci0+c3RhdHVzID0gSFRUUF9P SzsKKyAgICAgICAgICAgICAgICAgICAgZi0+ci0+aGVhZGVyc19pbiA9IGYtPnItPnRyYWlsZXJz X2luOworICAgICAgICAgICAgICAgICAgICBhcHJfdGFibGVfY2xlYXIoZi0+ci0+aGVhZGVyc19p bik7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgY3R4LT5zdGF0ZSA9IEJP RFlfTk9ORTsKICAgICAgICAgICAgICAgICBhcF9nZXRfbWltZV9oZWFkZXJzKGYtPnIpOwotICAg ICAgICAgICAgICAgIGUgPSBhcHJfYnVja2V0X2Vvc19jcmVhdGUoZi0+Yy0+YnVja2V0X2FsbG9j KTsKLSAgICAgICAgICAgICAgICBBUFJfQlJJR0FERV9JTlNFUlRfVEFJTChiLCBlKTsKLSAgICAg ICAgICAgICAgICBjdHgtPmVvc19zZW50ID0gMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gQVBS X1NVQ0NFU1M7CisgICAgICAgICAgICAgICAgaWYgKGYtPnItPnN0YXR1cyA9PSBIVFRQX09LKSB7 CisgICAgICAgICAgICAgICAgICAgIGUgPSBhcHJfYnVja2V0X2Vvc19jcmVhdGUoZi0+Yy0+YnVj a2V0X2FsbG9jKTsKKyAgICAgICAgICAgICAgICAgICAgQVBSX0JSSUdBREVfSU5TRVJUX1RBSUwo YiwgZSk7CisgICAgICAgICAgICAgICAgICAgIGN0eC0+ZW9zX3NlbnQgPSAxOworICAgICAgICAg ICAgICAgICAgICBydiA9IEFQUl9TVUNDRVNTOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3Jfbm90 ZXMgPSBhcHJfdGFibGVfZ2V0KGYtPnItPm5vdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVycm9yLW5vdGVzIik7CisgICAg ICAgICAgICAgICAgICAgIGFwX2xvZ19yZXJyb3IoQVBMT0dfTUFSSywgQVBMT0dfSU5GTywgMCwg Zi0+ciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIHJl YWRpbmcgSFRUUCB0cmFpbGVyOiAlaSVzJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGYtPnItPnN0YXR1cywgZXJyb3Jfbm90ZXMgPyAiOiAiIDogIiIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jfbm90ZXMgPyBlcnJvcl9ub3RlcyA6ICIiKTsK KyAgICAgICAgICAgICAgICAgICAgcnYgPSBBUFJfRUlOVkFMOworICAgICAgICAgICAgICAgIH0K KworICAgICAgICAgICAgICAgIGlmIChjb25mLT5tZXJnZV90cmFpbGVycyAhPSBBUF9NRVJHRV9U UkFJTEVSU19FTkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgZi0+ci0+c3RhdHVzID0gc2F2 ZWRfc3RhdHVzOworICAgICAgICAgICAgICAgICAgICBmLT5yLT5oZWFkZXJzX2luID0gc2F2ZWRf aGVhZGVyc19pbjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNhdmVkX2Vycm9yX25vdGVzKSB7 CisgICAgICAgICAgICAgICAgICAgICAgICBhcHJfdGFibGVfc2V0bihmLT5yLT5ub3RlcywgImVy cm9yLW5vdGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVk X2Vycm9yX25vdGVzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcl90YWJsZV91bnNldChmLT5yLT5u b3RlcywgImVycm9yLW5vdGVzIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gcnY7CiAgICAgICAgICAgICB9CiAgICAg ICAgIH0KICAgICB9CkluZGV4OiBtb2R1bGVzL2h0dHAvaHR0cF9yZXF1ZXN0LmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gbW9kdWxlcy9odHRwL2h0dHBfcmVxdWVzdC5jCShyZXZpc2lvbiAxNTkzNTQwKQorKysg bW9kdWxlcy9odHRwL2h0dHBfcmVxdWVzdC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zODQsOCArMzg0 LDEwIEBACiAgICAgbmV3LT5tYWluICAgICAgICAgICAgPSByLT5tYWluOwogCiAgICAgbmV3LT5o ZWFkZXJzX2luICAgICAgPSByLT5oZWFkZXJzX2luOworICAgIG5ldy0+dHJhaWxlcnNfaW4gICAg ID0gci0+dHJhaWxlcnNfaW47CiAgICAgbmV3LT5oZWFkZXJzX291dCAgICAgPSBhcHJfdGFibGVf bWFrZShyLT5wb29sLCAxMik7CiAgICAgbmV3LT5lcnJfaGVhZGVyc19vdXQgPSByLT5lcnJfaGVh ZGVyc19vdXQ7CisgICAgbmV3LT50cmFpbGVyc19vdXQgICAgPSBhcHJfdGFibGVfbWFrZShyLT5w b29sLCA1KTsKICAgICBuZXctPnN1YnByb2Nlc3NfZW52ICA9IHJlbmFtZV9vcmlnaW5hbF9lbnYo ci0+cG9vbCwgci0+c3VicHJvY2Vzc19lbnYpOwogICAgIG5ldy0+bm90ZXMgICAgICAgICAgID0g YXByX3RhYmxlX21ha2Uoci0+cG9vbCwgNSk7CiAKQEAgLTQ5NSw2ICs0OTcsOCBAQAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+aGVhZGVyc19vdXQpOwogICAgIHIt PmVycl9oZWFkZXJzX291dCA9IGFwcl90YWJsZV9vdmVybGF5KHItPnBvb2wsIHJyLT5lcnJfaGVh ZGVyc19vdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+ ZXJyX2hlYWRlcnNfb3V0KTsKKyAgICByLT50cmFpbGVyc19vdXQgPSBhcHJfdGFibGVfb3Zlcmxh eShyLT5wb29sLCByci0+dHJhaWxlcnNfb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHItPnRyYWlsZXJzX291dCk7CiAgICAgci0+c3VicHJvY2Vzc19lbnYg PSBhcHJfdGFibGVfb3ZlcmxheShyLT5wb29sLCByci0+c3VicHJvY2Vzc19lbnYsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLT5zdWJwcm9jZXNzX2Vudik7CiAK SW5kZXg6IG1vZHVsZXMvbG9nZ2Vycy9tb2RfbG9nX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIG1v ZHVsZXMvbG9nZ2Vycy9tb2RfbG9nX2NvbmZpZy5jCShyZXZpc2lvbiAxNTkzNTQwKQorKysgbW9k dWxlcy9sb2dnZXJzL21vZF9sb2dfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTQxMiw2ICs0 MTIsMTIgQEAKICAgICByZXR1cm4gYXBfZXNjYXBlX2xvZ2l0ZW0oci0+cG9vbCwgYXByX3RhYmxl X2dldChyLT5oZWFkZXJzX2luLCBhKSk7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyICpsb2dfdHJh aWxlcl9pbihyZXF1ZXN0X3JlYyAqciwgY2hhciAqYSkKK3sKKyAgICByZXR1cm4gYXBfZXNjYXBl X2xvZ2l0ZW0oci0+cG9vbCwgYXByX3RhYmxlX2dldChyLT50cmFpbGVyc19pbiwgYSkpOworfQor CisKIHN0YXRpYyBBUFJfSU5MSU5FIGNoYXIgKmZpbmRfbXVsdGlwbGVfaGVhZGVycyhhcHJfcG9v bF90ICpwb29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGFwcl90YWJsZV90ICp0YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXkpCkBAIC00OTUsNiArNTAxLDExIEBACiAg ICAgcmV0dXJuIGFwX2VzY2FwZV9sb2dpdGVtKHItPnBvb2wsIGNwKTsKIH0KIAorc3RhdGljIGNv bnN0IGNoYXIgKmxvZ190cmFpbGVyX291dChyZXF1ZXN0X3JlYyAqciwgY2hhciAqYSkKK3sKKyAg ICByZXR1cm4gYXBfZXNjYXBlX2xvZ2l0ZW0oci0+cG9vbCwgYXByX3RhYmxlX2dldChyLT50cmFp bGVyc19vdXQsIGEpKTsKK30KKwogc3RhdGljIGNvbnN0IGNoYXIgKmxvZ19ub3RlKHJlcXVlc3Rf cmVjICpyLCBjaGFyICphKQogewogICAgIHJldHVybiBhcF9lc2NhcGVfbG9naXRlbShyLT5wb29s LCBhcHJfdGFibGVfZ2V0KHItPm5vdGVzLCBhKSk7CkBAIC0xNTQwLDYgKzE1NTEsOCBAQAogICAg ICAgICBsb2dfcGZuX3JlZ2lzdGVyKHAsICJCIiwgbG9nX2J5dGVzX3NlbnQsIDApOwogICAgICAg ICBsb2dfcGZuX3JlZ2lzdGVyKHAsICJpIiwgbG9nX2hlYWRlcl9pbiwgMCk7CiAgICAgICAgIGxv Z19wZm5fcmVnaXN0ZXIocCwgIm8iLCBsb2dfaGVhZGVyX291dCwgMCk7CisgICAgICAgIGxvZ19w Zm5fcmVnaXN0ZXIocCwgIkkiLCBsb2dfdHJhaWxlcl9pbiwgMCk7CisgICAgICAgIGxvZ19wZm5f cmVnaXN0ZXIocCwgIk8iLCBsb2dfdHJhaWxlcl9vdXQsIDApOwogICAgICAgICBsb2dfcGZuX3Jl Z2lzdGVyKHAsICJuIiwgbG9nX25vdGUsIDApOwogICAgICAgICBsb2dfcGZuX3JlZ2lzdGVyKHAs ICJlIiwgbG9nX2Vudl92YXIsIDApOwogICAgICAgICBsb2dfcGZuX3JlZ2lzdGVyKHAsICJWIiwg bG9nX3NlcnZlcl9uYW1lLCAwKTsKSW5kZXg6IG1vZHVsZXMvcHJveHkvbW9kX3Byb3h5X2h0dHAu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBtb2R1bGVzL3Byb3h5L21vZF9wcm94eV9odHRwLmMJKHJldmlzaW9u IDE1OTM1NDApCisrKyBtb2R1bGVzL3Byb3h5L21vZF9wcm94eV9odHRwLmMJKHdvcmtpbmcgY29w eSkKQEAgLTEyMjksNiArMTIyOSw3IEBACiAgICAgcHNjID0gKHByb3h5X3NlcnZlcl9jb25mICop IGFwX2dldF9tb2R1bGVfY29uZmlnKHNjb25mLCAmcHJveHlfbW9kdWxlKTsKIAogICAgIHItPmhl YWRlcnNfb3V0ID0gYXByX3RhYmxlX21ha2Uoci0+cG9vbCwgMjApOworICAgIHItPnRyYWlsZXJz X291dCA9IGFwcl90YWJsZV9tYWtlKHItPnBvb2wsIDUpOwogICAgICpwcmVhZF9sZW4gPSAwOwog CiAgICAgLyoKQEAgLTEzNTUsNiArMTM1NiwxNCBAQAogI2RlZmluZSBBUF9NQVhfSU5URVJJTV9S RVNQT05TRVMgMTAKICNlbmRpZgogCitzdGF0aWMgaW50IGFkZF90cmFpbGVycyh2b2lkICpkYXRh LCBjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnZhbCkKK3sKKyAgICBpZiAodmFsKSB7Cisg ICAgICAgIGFwcl90YWJsZV9hZGQoKGFwcl90YWJsZV90KilkYXRhLCBrZXksIHZhbCk7CisgICAg fQorICAgIHJldHVybiAxOworfQorCiBzdGF0aWMKIGFwcl9zdGF0dXNfdCBhcF9wcm94eV9odHRw X3Byb2Nlc3NfcmVzcG9uc2UoYXByX3Bvb2xfdCAqIHAsIHJlcXVlc3RfcmVjICpyLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm94eV9jb25uX3JlYyAqYmFj a2VuZCwKQEAgLTE4MDksNiArMTgxOCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAvKiBuZXh0 IHRpbWUgdHJ5IGEgbm9uLWJsb2NraW5nIHJlYWQgKi8KICAgICAgICAgICAgICAgICAgICAgbW9k ZSA9IEFQUl9OT05CTE9DS19SRUFEOwogCisgICAgICAgICAgICAgICAgICAgIGlmICghYXByX2lz X2VtcHR5X3RhYmxlKGJhY2tlbmQtPnItPnRyYWlsZXJzX2luKSkgeworICAgICAgICAgICAgICAg ICAgICAgICAgYXByX3RhYmxlX2RvKGFkZF90cmFpbGVycywgci0+dHJhaWxlcnNfb3V0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZW5kLT5yLT50cmFpbGVyc19pbiwgTlVM TCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHJfdGFibGVfY2xlYXIoYmFja2VuZC0+ci0+ dHJhaWxlcnNfaW4pOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAg ICAgYXByX2JyaWdhZGVfbGVuZ3RoKGJiLCAwLCAmcmVhZGJ5dGVzKTsKICAgICAgICAgICAgICAg ICAgICAgYmFja2VuZC0+d29ya2VyLT5zLT5yZWFkICs9IHJlYWRieXRlczsKICNpZiBERUJVR0dJ TkcKSW5kZXg6IHNlcnZlci9jb3JlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc2VydmVyL2NvcmUuYwkocmV2 aXNpb24gMTU5MzU0MCkKKysrIHNlcnZlci9jb3JlLmMJKHdvcmtpbmcgY29weSkKQEAgLTU0Miw2 ICs1NDIsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZpcnQtPnRyYWNlX2VuYWJs ZQogICAgICAgICAgICAgICAgICAgICAgICAgIDogYmFzZS0+dHJhY2VfZW5hYmxlOwogCisgICAg Y29uZi0+bWVyZ2VfdHJhaWxlcnMgPSAodmlydC0+dHJhY2VfZW5hYmxlICE9IEFQX01FUkdFX1RS QUlMRVJTX1VOU0VUKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2aXJ0LT5tZXJnZV90 cmFpbGVycworICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBiYXNlLT5tZXJnZV90cmFpbGVy czsKKwogICAgIHJldHVybiBjb25mOwogfQogCkBAIC0zMjk1LDYgKzMyOTksMTYgQEAKICAgICBy ZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIgKnNldF9tZXJnZV90cmFpbGVycyhj bWRfcGFybXMgKmNtZCwgdm9pZCAqZHVtbXksIGludCBhcmcpCit7CisgICAgY29yZV9zZXJ2ZXJf Y29uZmlnICpjb25mID0gYXBfZ2V0X21vZHVsZV9jb25maWcoY21kLT5zZXJ2ZXItPm1vZHVsZV9j b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmNvcmVfbW9kdWxlKTsKKyAgICBjb25mLT5tZXJnZV90cmFpbGVycyA9IChhcmcgPyBBUF9N RVJHRV9UUkFJTEVSU19FTkFCTEUgOgorICAgICAgICAgICAgQVBfTUVSR0VfVFJBSUxFUlNfRElT QUJMRSk7CisKKyAgICByZXR1cm4gTlVMTDsKK30KKwogLyogTm90ZSAtLS0gRXJyb3JEb2N1bWVu dCB3aWxsIG5vdyB3b3JrIGZyb20gLmh0YWNjZXNzIGZpbGVzLgogICogVGhlIEFsbG93T3ZlcnJp ZGUgb2YgRmlsZWluZm8gYWxsb3dzIHdlYm1hc3RlcnMgdG8gdHVybiBpdCBvZmYKICAqLwpAQCAt MzUzMCw2ICszNTQ0LDggQEAKICNlbmRpZgogQVBfSU5JVF9UQUtFMSgiVHJhY2VFbmFibGUiLCBz ZXRfdHJhY2VfZW5hYmxlLCBOVUxMLCBSU1JDX0NPTkYsCiAgICAgICAgICAgICAgICInb24nIChk ZWZhdWx0KSwgJ29mZicgb3IgJ2V4dGVuZGVkJyB0byB0cmFjZSByZXF1ZXN0IGJvZHkgY29udGVu dCIpLAorQVBfSU5JVF9GTEFHKCJNZXJnZVRyYWlsZXJzIiwgc2V0X21lcmdlX3RyYWlsZXJzLCBO VUxMLCBSU1JDX0NPTkYsCisgICAgICAgICAgICAgICJtZXJnZSByZXF1ZXN0IHRyYWlsZXJzIGlu dG8gcmVxdWVzdCBoZWFkZXJzIG9yIG5vdCIpLAogI2lmZGVmIFNVRVhFQ19CSU4KIEFQX0lOSVRf RkxBRygiU3VleGVjIiwgdW5peGRfc2V0X3N1ZXhlYywgTlVMTCwgUlNSQ19DT05GLAogICAgICAg ICAgICAgICJFbmFibGUgb3IgZGlzYWJsZSBzdUVYRUMgc3VwcG9ydCIpLApAQCAtMzYzMiw3ICsz NjQ4LDYgQEAKIAogc3RhdGljIGludCBkb19ub3RoaW5nKHJlcXVlc3RfcmVjICpyKSB7IHJldHVy biBPSzsgfQogCi0KIHN0YXRpYyBpbnQgY29yZV9vdmVycmlkZV90eXBlKHJlcXVlc3RfcmVjICpy KQogewogICAgIGNvcmVfZGlyX2NvbmZpZyAqY29uZiA9CkluZGV4OiBzZXJ2ZXIvcHJvdG9jb2wu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBzZXJ2ZXIvcHJvdG9jb2wuYwkocmV2aXNpb24gMTU5MzU0MCkKKysr IHNlcnZlci9wcm90b2NvbC5jCSh3b3JraW5nIGNvcHkpCkBAIC04ODcsOSArODg3LDExIEBACiAg ICAgci0+YWxsb3dlZF9tZXRob2RzID0gYXBfbWFrZV9tZXRob2RfbGlzdChwLCAyKTsKIAogICAg IHItPmhlYWRlcnNfaW4gICAgICA9IGFwcl90YWJsZV9tYWtlKHItPnBvb2wsIDI1KTsKKyAgICBy LT50cmFpbGVyc19pbiAgICAgPSBhcHJfdGFibGVfbWFrZShyLT5wb29sLCA1KTsKICAgICByLT5z dWJwcm9jZXNzX2VudiAgPSBhcHJfdGFibGVfbWFrZShyLT5wb29sLCAyNSk7CiAgICAgci0+aGVh ZGVyc19vdXQgICAgID0gYXByX3RhYmxlX21ha2Uoci0+cG9vbCwgMTIpOwogICAgIHItPmVycl9o ZWFkZXJzX291dCA9IGFwcl90YWJsZV9tYWtlKHItPnBvb2wsIDUpOworICAgIHItPnRyYWlsZXJz X291dCAgICA9IGFwcl90YWJsZV9tYWtlKHItPnBvb2wsIDUpOwogICAgIHItPm5vdGVzICAgICAg ICAgICA9IGFwcl90YWJsZV9tYWtlKHItPnBvb2wsIDUpOwogCiAgICAgci0+cmVxdWVzdF9jb25m aWcgID0gYXBfY3JlYXRlX3JlcXVlc3RfY29uZmlnKHItPnBvb2wpOwpAQCAtMTE0MSw3ICsxMTQz LDggQEAKIAogICAgIHJuZXctPnN0YXR1cyAgICAgICAgICA9IEhUVFBfT0s7CiAKLSAgICBybmV3 LT5oZWFkZXJzX2luID0gYXByX3RhYmxlX2NvcHkocm5ldy0+cG9vbCwgci0+aGVhZGVyc19pbik7 CisgICAgcm5ldy0+aGVhZGVyc19pbiAgICAgID0gYXByX3RhYmxlX2NvcHkocm5ldy0+cG9vbCwg ci0+aGVhZGVyc19pbik7CisgICAgcm5ldy0+dHJhaWxlcnNfaW4gICAgID0gYXByX3RhYmxlX2Nv cHkocm5ldy0+cG9vbCwgci0+dHJhaWxlcnNfaW4pOwogCiAgICAgLyogZGlkIHRoZSBvcmlnaW5h bCByZXF1ZXN0IGhhdmUgYSBib2R5PyAgKGUuZy4gUE9TVCB3L1NTSSB0YWdzKQogICAgICAqIGlm IHNvLCBtYWtlIHN1cmUgdGhlIHN1YnJlcXVlc3QgZG9lc24ndCBpbmhlcml0IGJvZHkgaGVhZGVy cwpAQCAtMTE1Myw2ICsxMTU2LDcgQEAKICAgICBybmV3LT5zdWJwcm9jZXNzX2VudiAgPSBhcHJf dGFibGVfY29weShybmV3LT5wb29sLCByLT5zdWJwcm9jZXNzX2Vudik7CiAgICAgcm5ldy0+aGVh ZGVyc19vdXQgICAgID0gYXByX3RhYmxlX21ha2Uocm5ldy0+cG9vbCwgNSk7CiAgICAgcm5ldy0+ ZXJyX2hlYWRlcnNfb3V0ID0gYXByX3RhYmxlX21ha2Uocm5ldy0+cG9vbCwgNSk7CisgICAgcm5l dy0+dHJhaWxlcnNfb3V0ICAgID0gYXByX3RhYmxlX21ha2Uocm5ldy0+cG9vbCwgNSk7CiAgICAg cm5ldy0+bm90ZXMgICAgICAgICAgID0gYXByX3RhYmxlX21ha2Uocm5ldy0+cG9vbCwgNSk7CiAK ICAgICBybmV3LT5leHBlY3RpbmdfMTAwICAgPSByLT5leHBlY3RpbmdfMTAwOwo= --089e0111de622513c004f936edda--