Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w84V6-000BTq-0m for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 22:57:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w84V3-002gEy-2e for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 22:57:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w84V3-002gEq-0p for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 22:57:25 +0000 Received: from mail-qv1-xf2a.google.com ([2607:f8b0:4864:20::f2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w84V1-000000005RI-04MT for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 22:57:24 +0000 Received: by mail-qv1-xf2a.google.com with SMTP id 6a1803df08f44-89cda8de641so3499696d6.0 for ; Wed, 01 Apr 2026 15:57:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775084242; cv=none; d=google.com; s=arc-20240605; b=EXnl8ApdB4a/BNlPIC9lbLJ1HK7pdMFFnV1/HxeHQkz2QgNkdyu3KBCAEKmESTMK4H bg7W0ATOZ+PH2qghn5WOcI00lzQDf7LSu+R/cs/g0lW/WZmEvL3O3daVAE75MfkUpVx4 dW/6meMjCydyGJIpAtCUkv2rBLutOp11Rvimf7w+2HRkqmdtqtJ+orSNd9hiSWQBbjzA pWDOxK/pIo0Qb7j325ffTdRn/hI80b5EinoZvjQiBtvOJlm6hvp5poKOkGVlB1aUNFCv d7qXLYeEAfMcJ7HCUDokLJyqM30YzRm9l2cIAbA4W8ZmApSCvIawNxMU3wGtJlGZbZ4K 2NTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=c/kJWTAf347ktbV5/rV0RBH8gjWHBVYmgqg8VhnCt9U=; fh=U3vPz6JIpnkqn0gVsCLEVeXxlAtrx4MCaZqnarXXWCM=; b=hc73zvjmp2vz9wkhNWkX/YO0UJ6Ge0fcLZY0Ai+cos4+YBnEnLtAAd8O3IvP/X6BrH 0gqSg/Gfz3mo59LlVf+loDuZIn0hDWzhY3LhpJcU7pJ2ojODBLxWyg9viclazNH6aa/a F55Z8xP9dJ+bjVoP1meBv5qY40S4txVHCJd/fNlgi//PDFbdHSVa9aGM/wJVME+z3rLo hlRoPZPSIJV7WkmrVNXLXKtLO8jgNXzDrVK0N+8KihyAja5fgu3o4J3mTZlJtNzlqAfn 4J4IFPKggeV00WfxtcWBMyq0bvkNK0Y7pIRTJexoZs42XhFJh+zoQKpuZg1LZ0z75c/q ulbg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1775084242; x=1775689042; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=c/kJWTAf347ktbV5/rV0RBH8gjWHBVYmgqg8VhnCt9U=; b=WuMd3LDGTaL29vi5NJStAFZuZeJV5vo2EZP11OjxB1BVrf12PnTkE9wzpo1/Yl79GY fbHA4Jm6q/sDFH+awJPjIF3fQxAXFooEjnIEQMkNksk9lGFpSP9LEX1QxSabHgueP+l1 VoobAEkKdw1jT0a2TXRkRMEvlKdGxTsZ26Dr7htf+Olz7L2e5DPNPY+oc/7vvRAJvP+A 2b2Zno+iJb/JbbfgBoRgDP76L5GYnFekdCZCHi3dLG9WDnHxC6xLlKo8SAKBexnPOOby 9Kv0a9G2lJgzeSHtx8p39A0viy2IZG9gKexz2xW0ld0pj4YJCy8PMSU3nxuZ3s7t1c9g 5nOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775084242; x=1775689042; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=c/kJWTAf347ktbV5/rV0RBH8gjWHBVYmgqg8VhnCt9U=; b=K94hF9mKdZGMf5dWkwhYN4en4+sP6pAoOkNxjPBke5ohxIPi6frU/l4eaQgrPQNmwc 4lz8ifMV39joH0FErFLb0BwT7jaNX6dWXK4f0x7hY05w3u92sk7h8lstNlqd27AMocT5 j8uRmHX4aM+5kCrV1kcDR/Dikk1UdJpHox7E0ixP4GZ6Mx/apL/3db39DsL0E/wRHJz+ OmMrGumVm1piQUfyjFQjCIlN1OPTCWa9jAO9IjgoPo9DYGONstjvmUf9P3f+T7rZaND7 yp1h0l/zuemt0CmzKiV4piB74+H78XIVvmP6pvTXdnkBw0AHrjcAGt27uaHBQYRGYKaM mzUw== X-Forwarded-Encrypted: i=1; AJvYcCWAvBJep4sGeUTLBUE7FglPKPcLcCRp48ErwuZUyuHQBcM9wp1kNblvhEOQTegwpUD9zL3Mo+PZ8mAuNQO9@lists.postgresql.org X-Gm-Message-State: AOJu0YzTpjJWv3WkRvGgnNKIsRQlqrofkazqBXANEhMAqxR0vwo7hoWr 8vChxokFm60Mwzx68i/rpBefTMfplpdfJ7b+SeyITXOR+b9wzxhm6B/X8ZTP5rMXutD80s0ZCyB j2stPr1RBtA79rwLNikWAbfgYcmmxNaIGQr/SaVhI X-Gm-Gg: ATEYQzyJpwznih3LT5qMHNjv8iCMr3ffDPB0pdhHH3GhqZwggpkHPQPB+4hXEXXth26 3c2CUh48/ucI75tVqGT4mlIKXj9AoUw2GXyGWn47Lz5ypAPrCShR599gYYSbxDr80TJbFdwjOyR IhlhIzLjSuEWSPFRNjMqIj9bLItnjq4Jn7F4YWd/gFFxcag2Elusn8k2slMocgLNLqh2wCVFIud A+JaGSHGOH1I90HY09dpOVvig4TawwAnZFrj8L9SaJm6wM23Uv7Dl8K4Pa0NqYbFHT2swBnqrao LsGKB8MEeQ== X-Received: by 2002:a05:6214:4607:b0:89c:e592:2550 with SMTP id 6a1803df08f44-8a4392ba70cmr92412996d6.38.1775084242048; Wed, 01 Apr 2026 15:57:22 -0700 (PDT) MIME-Version: 1.0 References: <202601241015.y5uvxd7oxnfs@alvherre.pgsql> In-Reply-To: From: Jacob Champion Date: Wed, 1 Apr 2026 15:57:10 -0700 X-Gm-Features: AQROBzDn-qY8OtYUpt59jjwsbq55IHJy60RW_JKYO2e80k0yj8hp4bb5TdCu2Z4 Message-ID: Subject: Re: unclear OAuth error message To: Daniel Gustafsson Cc: Zsolt Parragi , =?UTF-8?Q?=C3=81lvaro_Herrera?= , Pg Hackers , Chao Li Content-Type: multipart/mixed; boundary="000000000000b238e0064e6e01e1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b238e0064e6e01e1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 27, 2026 at 4:20=E2=80=AFPM Jacob Champion wrote: > I don't think I can enforce either choice, though: I pass the > error_detail into the ereport(FATAL), so the process is about to go > down, and I'm never going to pfree() it. (I also think it's reasonable to do something like res->error_detail =3D "Help! it's again."; if there's nothing to format, without mandating a superfluous pstrdup().) v4 rebases, incorporates Chao Li's feedback, rewrites the surrounding paragraph a bit, and fixes a silly misuse of when I meant . --Jacob --000000000000b238e0064e6e01e1 Content-Type: application/octet-stream; name="v4-0001-oauth-Let-validators-provide-failure-DETAILs.patch" Content-Disposition: attachment; filename="v4-0001-oauth-Let-validators-provide-failure-DETAILs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mngna3vu0 RnJvbSBhOWE1MDc2MDRjNTc5YWMxYmYzYzA3Y2Q4MzUzYWRhMmZiYWMxZmI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVGh1LCAxOSBNYXIgMjAyNiAwOTozNzoyMCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjRdIG9hdXRoOiBMZXQgdmFsaWRhdG9ycyBwcm92aWRlIGZhaWx1cmUgREVUQUlM cwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKQXQgdGhlIG1vbWVudCwgdGhlIG9u bHkgd2F5IGZvciBhIHZhbGlkYXRvciBtb2R1bGUgdG8gcmVwb3J0IGVycm9yCmRldGFpbHMgb24g ZmFpbHVyZSBpcyB0byBsb2cgdGhlbSBzZXBhcmF0ZWx5IGJlZm9yZSByZXR1cm5pbmcgZnJvbQp2 YWxpZGF0ZV9jYi4gSW5kZXBlbmRlbnRseSBvZiB0aGF0IHByb2JsZW0sIHRoZSBlcmVwb3J0KCkg Y2FsbHMgdGhhdCB3ZQptYWtlIGR1cmluZyB2YWxpZGF0aW9uIGZhaWx1cmUgcGFydGlhbGx5IGR1 cGxpY2F0ZSBzb21lIG9mIHRoZSB3b3JrIG9mCmF1dGhfZmFpbGVkKCkuCgpUaGUgZW5kIHJlc3Vs dCBpcyBvdmVybHkgdmVyYm9zZSBhbmQgY29uZnVzaW5nIGZvciByZWFkZXJzIG9mIHRoZSBsb2dz OgoKICAgIFs3NjgyMzNdIExPRzogIFtteV92YWxpZGF0b3JdIGJhZCBzaWduYXR1cmUgaW4gYmVh cmVyIHRva2VuCiAgICBbNzY4MjMzXSBMT0c6ICBPQXV0aCBiZWFyZXIgYXV0aGVudGljYXRpb24g ZmFpbGVkIGZvciB1c2VyICJqYWNvYiIKICAgIFs3NjgyMzNdIERFVEFJTDogIFZhbGlkYXRvciBm YWlsZWQgdG8gYXV0aG9yaXplIHRoZSBwcm92aWRlZCB0b2tlbi4KICAgIFs3NjgyMzNdIEZBVEFM OiAgT0F1dGggYmVhcmVyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciAiamFjb2IiCiAg ICBbNzY4MjMzXSBERVRBSUw6ICBDb25uZWN0aW9uIG1hdGNoZWQgZmlsZSAiLi4uL3BnX2hiYS5j b25mIiBsaW5lIC4uLgoKU29sdmUgYm90aCBwcm9ibGVtcyBieSBtYWtpbmcgdXNlIG9mIHRoZSBl eGlzdGluZyBsb2dkZXRhaWwgcG9pbnRlcgp0aGF0J3MgcHJvdmlkZWQgYnkgQ2xpZW50QXV0aGVu dGljYXRpb24uIFZhbGlkYXRvciBtb2R1bGVzIG1heSBzZXQKVmFsaWRhdG9yTW9kdWxlUmVzdWx0 LT5lcnJvcl9kZXRhaWwgdG8gb3ZlcnJpZGUgb3VyIGRlZmF1bHQgZ2VuZXJpYwptZXNzYWdlLgoK VGhlIGVuZCByZXN1bHQgbG9va3Mgc29tZXRoaW5nIGxpa2UKCiAgICBbMjQyMjg0XSBGQVRBTDog IE9BdXRoIGJlYXJlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIgImphY29iIgogICAg WzI0MjI4NF0gREVUQUlMOiAgW215X3ZhbGlkYXRvcl0gYmFkIHNpZ25hdHVyZSBpbiBiZWFyZXIg dG9rZW4KICAgICAgICBDb25uZWN0aW9uIG1hdGNoZWQgZmlsZSAiLi4uL3BnX2hiYS5jb25mIiBs aW5lIC4uLgoKUmVwb3J0ZWQtYnk6IMOBbHZhcm8gSGVycmVyYSA8YWx2aGVycmVAa3VyaWxlbXUu ZGU+ClJlcG9ydGVkLWJ5OiBac29sdCBQYXJyYWdpIDx6c29sdC5wYXJyYWdpQHBlcmNvbmEuY29t PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQt Ynk6IERhbmllbCBHdXN0YWZzc29uIDxkYW5pZWxAeWVzcWwuc2U+ClJldmlld2VkLWJ5OiBac29s dCBQYXJyYWdpIDx6c29sdC5wYXJyYWdpQHBlcmNvbmEuY29tPgpEaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tLzIwMjYwMTI0MTAxNS55NXV2eGQ3b3huZnMlNDBhbHZoZXJyZS5wZ3NxbAot LS0KIGRvYy9zcmMvc2dtbC9vYXV0aC12YWxpZGF0b3JzLnNnbWwgICAgICAgICAgICB8IDIzICsr KysrKysrKystCiBzcmMvaW5jbHVkZS9saWJwcS9vYXV0aC5oICAgICAgICAgICAgICAgICAgICAg fCAxNCArKysrKysrCiBzcmMvYmFja2VuZC9saWJwcS9hdXRoLW9hdXRoLmMgICAgICAgICAgICAg ICAgfCAyNCArKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvbGlicHEvYXV0aC5jICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIC4uLi9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2 ZXIucGwgICB8IDQwICsrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L21vZHVsZXMvb2F1dGhf dmFsaWRhdG9yL3ZhbGlkYXRvci5jICB8IDI5ICsrKysrKysrKysrKysrCiA2IGZpbGVzIGNoYW5n ZWQsIDExNiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvb2F1dGgtdmFsaWRhdG9ycy5zZ21sIGIvZG9jL3NyYy9zZ21sL29hdXRoLXZhbGlk YXRvcnMuc2dtbAppbmRleCA3MDQwODlkZDdiMy4uNWYyOWYyYmUxODYgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9vYXV0aC12YWxpZGF0b3JzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL29hdXRo LXZhbGlkYXRvcnMuc2dtbApAQCAtMTkyLDExICsxOTIsMjAgQEAKICAgICAgPHRlcm0+TG9nZ2lu ZzwvdGVybT4KICAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+Ci0gICAgICAgTW9kdWxlcyBt YXkgdXNlIHRoZSBzYW1lIDxsaW5rIGxpbmtlbmQ9ImVycm9yLW1lc3NhZ2UtcmVwb3J0aW5nIj5s b2dnaW5nCisgICAgICAgVG8gc2ltcGx5IGxvZyB0aGUgcmVhc29uIGZvciBhIHZhbGlkYXRpb24g ZmFpbHVyZSwgbW9kdWxlcyBtYXkgc2V0IHRoZQorICAgICAgIGZyZWVmb3JtIDxzdHJ1Y3RmaWVs ZD5lcnJvcl9kZXRhaWw8L3N0cnVjdGZpZWxkPiBmaWVsZCBkdXJpbmcgdGhlCisgICAgICAgPGxp bmsgbGlua2VuZD0ib2F1dGgtdmFsaWRhdG9yLWNhbGxiYWNrLXZhbGlkYXRlIj52YWxpZGF0ZSBj YWxsYmFjazwvbGluaz4uCisgICAgICAgKDx4cmVmIGxpbmtlbmQ9ImVycm9yLXN0eWxlLWd1aWRl Ii8+IGhhcyBndWlkZWxpbmVzIGZvciB3cml0aW5nIGdvb2QKKyAgICAgICA8bGl0ZXJhbD5ERVRB SUw8L2xpdGVyYWw+IG1lc3NhZ2VzLikgPHN0cnVjdGZpZWxkPmVycm9yX2RldGFpbDwvc3RydWN0 ZmllbGQ+CisgICAgICAgaXMgcHJpbnRlZCBvbmx5IHRvIHRoZSBzZXJ2ZXIgbG9nLCBhcyBwYXJ0 IG9mIHRoZSBmaW5hbCBhdXRoZW50aWNhdGlvbgorICAgICAgIGZhaWx1cmUgbWVzc2FnZSwgYW5k IGl0IGlzIG5vdCBzaGFyZWQgd2l0aCB0aGUgY2xpZW50LgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTW9kdWxlcyBtYXkgYWxzbyB1c2UgdGhlIHNhbWUgPGxpbmsgbGlua2Vu ZD0iZXJyb3ItbWVzc2FnZS1yZXBvcnRpbmciPmxvZ2dpbmcKICAgICAgICBmYWNpbGl0aWVzPC9s aW5rPiBhcyBzdGFuZGFyZCBleHRlbnNpb25zOyBob3dldmVyLCB0aGUgcnVsZXMgZm9yIGVtaXR0 aW5nCiAgICAgICAgbG9nIGVudHJpZXMgdG8gdGhlIGNsaWVudCBhcmUgc3VidGx5IGRpZmZlcmVu dCBkdXJpbmcgdGhlIGF1dGhlbnRpY2F0aW9uCiAgICAgICAgcGhhc2Ugb2YgdGhlIGNvbm5lY3Rp b24uIEdlbmVyYWxseSBzcGVha2luZywgbW9kdWxlcyBzaG91bGQgbG9nCi0gICAgICAgdmVyaWZp Y2F0aW9uIHByb2JsZW1zIGF0IHRoZSA8c3ltYm9sPkNPTU1FUlJPUjwvc3ltYm9sPiBsZXZlbCBh bmQgcmV0dXJuCisgICAgICAgcHJvYmxlbXMgYXQgdGhlIDxzeW1ib2w+Q09NTUVSUk9SPC9zeW1i b2w+IGxldmVsIGFuZCByZXR1cm4KICAgICAgICBub3JtYWxseSwgaW5zdGVhZCBvZiB1c2luZyA8 c3ltYm9sPkVSUk9SPC9zeW1ib2w+LzxzeW1ib2w+RkFUQUw8L3N5bWJvbD4KICAgICAgICB0byB1 bndpbmQgdGhlIHN0YWNrLCB0byBhdm9pZCBsZWFraW5nIGluZm9ybWF0aW9uIHRvIHVuYXV0aGVu dGljYXRlZAogICAgICAgIGNsaWVudHMuCkBAIC0zNzAsNiArMzc5LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgVmFsaWRhdG9yTW9kdWxlUmVzdWx0CiB7CiAgICAgYm9vbCAgICAgICAgYXV0aG9yaXplZDsK ICAgICBjaGFyICAgICAgICphdXRobl9pZDsKKyAgICBjaGFyICAgICAgICplcnJvcl9kZXRhaWw7 CiB9IFZhbGlkYXRvck1vZHVsZVJlc3VsdDsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAKQEAgLTM4Nyw2 ICszOTcsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgVmFsaWRhdG9yTW9kdWxlUmVzdWx0CiAgICAgT3Ro ZXJ3aXNlIHRoZSB2YWxpZGF0b3Igc2hvdWxkIHJldHVybiA8bGl0ZXJhbD50cnVlPC9saXRlcmFs PiB0byBpbmRpY2F0ZQogICAgIHRoYXQgaXQgaGFzIHByb2Nlc3NlZCB0aGUgdG9rZW4gYW5kIG1h ZGUgYW4gYXV0aG9yaXphdGlvbiBkZWNpc2lvbi4KICAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAg IEluIGVpdGhlciBmYWlsdXJlIGNhc2UgKHZhbGlkYXRpb24gZXJyb3Igb3IgaW50ZXJuYWwgZXJy b3IpIHRoZSBtb2R1bGUgbWF5CisgICAgc3RvcmUgYSB1c2VyLXJlYWRhYmxlIHJlYXNvbiBmb3Ig dGhlIGZhaWx1cmUgaW4gPHN0cnVjdGZpZWxkPnJlc3VsdC0+ZXJyb3JfZGV0YWlsPC9zdHJ1Y3Rm aWVsZD4uCisgICAgVGhpcyB3aWxsIGJlIHByaW50ZWQgdG8gdGhlIHNlcnZlciBsb2dzIChub3Qg c2VudCB0byB0aGUgY2xpZW50KSBhcyBhCisgICAgPGxpdGVyYWw+REVUQUlMPC9saXRlcmFsPiBl bnRyeSBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUuIFRoZSBtZW1vcnkKKyAgICBwb2lu dGVkIHRvIGJ5IDxzdHJ1Y3RmaWVsZD5lcnJvcl9kZXRhaWw8L3N0cnVjdGZpZWxkPiBtYXkgYmUg ZWl0aGVyIHBhbGxvYydkCisgICAgb3Igb2Ygc3RhdGljIGR1cmF0aW9uLiA8c3RydWN0ZmllbGQ+ ZXJyb3JfZGV0YWlsPC9zdHJ1Y3RmaWVsZD4gaXMgaWdub3JlZAorICAgIG9uIHN1Y2Nlc3MuCisg ICA8L3BhcmE+CiAgICA8cGFyYT4KICAgICBUaGUgYmVoYXZpb3IgYWZ0ZXIgPGZ1bmN0aW9uPnZh bGlkYXRlX2NiPC9mdW5jdGlvbj4gcmV0dXJucyBkZXBlbmRzIG9uIHRoZQogICAgIHNwZWNpZmlj IEhCQSBzZXR1cC4gIE5vcm1hbGx5LCB0aGUgPHN0cnVjdGZpZWxkPnJlc3VsdC0+YXV0aG5faWQ8 L3N0cnVjdGZpZWxkPiB1c2VyCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9saWJwcS9vYXV0aC5o IGIvc3JjL2luY2x1ZGUvbGlicHEvb2F1dGguaAppbmRleCA0YTgyMmU5YTFmMi4uNjBmNDkzYWNk ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xpYnBxL29hdXRoLmgKKysrIGIvc3JjL2luY2x1 ZGUvbGlicHEvb2F1dGguaApAQCAtNDksNiArNDksMjAgQEAgdHlwZWRlZiBzdHJ1Y3QgVmFsaWRh dG9yTW9kdWxlUmVzdWx0CiAJICogZGVsZWdhdGlvbi4gU2VlIHRoZSB2YWxpZGF0b3IgbW9kdWxl IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCiAJICovCiAJY2hhcgkgICAqYXV0aG5faWQ7CisK KwkvKgorCSAqIFdoZW4gdmFsaWRhdGlvbiBmYWlscywgdGhpcyBtYXkgb3B0aW9uYWxseSBiZSBz ZXQgdG8gYSBzdHJpbmcKKwkgKiBjb250YWluaW5nIGFuIGV4cGxhbmF0aW9uIGZvciB0aGUgZmFp bHVyZS4gSXQgd2lsbCBiZSBzZW50IHRvIHRoZQorCSAqIHNlcnZlciBsb2cgb25seTsgaXQgaXMg bm90IHByb3ZpZGVkIHRvIHRoZSBjbGllbnQsIGFuZCBpdCdzIGlnbm9yZWQgaWYKKwkgKiB2YWxp ZGF0aW9uIHN1Y2NlZWRzLgorCSAqCisJICogVGhpcyBkZXNjcmlwdGlvbiB3aWxsIGJlIGF0dGFj aGVkIHRvIHRoZSBmaW5hbCBhdXRoZW50aWNhdGlvbiBmYWlsdXJlCisJICogbWVzc2FnZSBpbiB0 aGUgbG9ncywgYXMgYSBERVRBSUwsIHdoaWNoIG1heSBiZSBwcmVmZXJhYmxlIHRvIHNlcGFyYXRl CisJICogZXJlcG9ydCgpIGNhbGxzIHRoYXQgaGF2ZSB0byBiZSBjb3JyZWxhdGVkIGJ5IHRoZSBy ZWFkZXIuCisJICoKKwkgKiBUaGlzIHN0cmluZyBtYXkgYmUgZWl0aGVyIG9mIHN0YXRpYyBkdXJh dGlvbiBvciBwYWxsb2MnZC4KKwkgKi8KKwljaGFyCSAgICplcnJvcl9kZXRhaWw7CiB9IFZhbGlk YXRvck1vZHVsZVJlc3VsdDsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1 dGgtb2F1dGguYyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtb2F1dGguYwppbmRleCA4OTRlZmUz YzkwNC4uNmE3NWI3OWVmYmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtb2F1 dGguYworKysgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRoLW9hdXRoLmMKQEAgLTc0LDcgKzc0LDcg QEAgc3RydWN0IG9hdXRoX2N0eAogc3RhdGljIGNoYXIgKnNhbml0aXplX2NoYXIoY2hhciBjKTsK IHN0YXRpYyBjaGFyICpwYXJzZV9rdnBhaXJzX2Zvcl9hdXRoKGNoYXIgKippbnB1dCk7CiBzdGF0 aWMgdm9pZCBnZW5lcmF0ZV9lcnJvcl9yZXNwb25zZShzdHJ1Y3Qgb2F1dGhfY3R4ICpjdHgsIGNo YXIgKipvdXRwdXQsIGludCAqb3V0cHV0bGVuKTsKLXN0YXRpYyBib29sIHZhbGlkYXRlKFBvcnQg KnBvcnQsIGNvbnN0IGNoYXIgKmF1dGgpOworc3RhdGljIGJvb2wgdmFsaWRhdGUoUG9ydCAqcG9y dCwgY29uc3QgY2hhciAqYXV0aCwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCk7CiAKIC8qIENvbnN0 YW50cyBzZWVuIGluIGFuIE9BVVRIQkVBUkVSIGNsaWVudCBpbml0aWFsIHJlc3BvbnNlLiAqLwog I2RlZmluZSBLVlNFUCAweDAxCQkJCS8qIHNlcGFyYXRvciBieXRlIGZvciBrZXkvdmFsdWUgcGFp cnMgKi8KQEAgLTMwNSw3ICszMDUsNyBAQCBvYXV0aF9leGNoYW5nZSh2b2lkICpvcGFxLCBjb25z dCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVuLAogCQljdHgtPnN0YXRlID0gT0FVVEhfU1RBVEVf RVJST1JfRElTQ09WRVJZOwogCQlzdGF0dXMgPSBQR19TQVNMX0VYQ0hBTkdFX0NPTlRJTlVFOwog CX0KLQllbHNlIGlmICghdmFsaWRhdGUoY3R4LT5wb3J0LCBhdXRoKSkKKwllbHNlIGlmICghdmFs aWRhdGUoY3R4LT5wb3J0LCBhdXRoLCBsb2dkZXRhaWwpKQogCXsKIAkJZ2VuZXJhdGVfZXJyb3Jf cmVzcG9uc2UoY3R4LCBvdXRwdXQsIG91dHB1dGxlbik7CiAKQEAgLTY1MCw3ICs2NTAsNyBAQCB2 YWxpZGF0ZV90b2tlbl9mb3JtYXQoY29uc3QgY2hhciAqaGVhZGVyKQogICogYXV0aG9yaXphdGlv bi4gUmV0dXJucyB0cnVlIGlmIHZhbGlkYXRpb24gc3VjY2VlZHMuCiAgKi8KIHN0YXRpYyBib29s Ci12YWxpZGF0ZShQb3J0ICpwb3J0LCBjb25zdCBjaGFyICphdXRoKQordmFsaWRhdGUoUG9ydCAq cG9ydCwgY29uc3QgY2hhciAqYXV0aCwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCkKIHsKIAlpbnQJ CQltYXBfc3RhdHVzOwogCVZhbGlkYXRvck1vZHVsZVJlc3VsdCAqcmV0OwpAQCAtNjc3LDcgKzY3 NywxMCBAQCB2YWxpZGF0ZShQb3J0ICpwb3J0LCBjb25zdCBjaGFyICphdXRoKQogCXsKIAkJZXJl cG9ydChXQVJOSU5HLAogCQkJCWVycmNvZGUoRVJSQ09ERV9JTlRFUk5BTF9FUlJPUiksCi0JCQkJ ZXJybXNnKCJpbnRlcm5hbCBlcnJvciBpbiBPQXV0aCB2YWxpZGF0b3IgbW9kdWxlIikpOworCQkJ CWVycm1zZygiaW50ZXJuYWwgZXJyb3IgaW4gT0F1dGggdmFsaWRhdG9yIG1vZHVsZSIpLAorCQkJ CXJldC0+ZXJyb3JfZGV0YWlsID8gZXJyZGV0YWlsX2xvZygiJXMiLCByZXQtPmVycm9yX2RldGFp bCkgOiAwKTsKKworCQkqbG9nZGV0YWlsID0gcmV0LT5lcnJvcl9kZXRhaWw7CiAJCXJldHVybiBm YWxzZTsKIAl9CiAKQEAgLTY5MCwxMCArNjkzLDEwIEBAIHZhbGlkYXRlKFBvcnQgKnBvcnQsIGNv bnN0IGNoYXIgKmF1dGgpCiAKIAlpZiAoIXJldC0+YXV0aG9yaXplZCkKIAl7Ci0JCWVyZXBvcnQo TE9HLAotCQkJCWVycm1zZygiT0F1dGggYmVhcmVyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3Ig dXNlciBcIiVzXCIiLAotCQkJCQkgICBwb3J0LT51c2VyX25hbWUpLAotCQkJCWVycmRldGFpbF9s b2coIlZhbGlkYXRvciBmYWlsZWQgdG8gYXV0aG9yaXplIHRoZSBwcm92aWRlZCB0b2tlbi4iKSk7 CisJCWlmIChyZXQtPmVycm9yX2RldGFpbCkKKwkJCSpsb2dkZXRhaWwgPSByZXQtPmVycm9yX2Rl dGFpbDsKKwkJZWxzZQorCQkJKmxvZ2RldGFpbCA9IF8oIlZhbGlkYXRvciBmYWlsZWQgdG8gYXV0 aG9yaXplIHRoZSBwcm92aWRlZCB0b2tlbi4iKTsKIAogCQlzdGF0dXMgPSBmYWxzZTsKIAkJZ290 byBjbGVhbnVwOwpAQCAtNzE0LDEwICs3MTcsNyBAQCB2YWxpZGF0ZShQb3J0ICpwb3J0LCBjb25z dCBjaGFyICphdXRoKQogCS8qIE1ha2Ugc3VyZSB0aGUgdmFsaWRhdG9yIGF1dGhlbnRpY2F0ZWQg dGhlIHVzZXIuICovCiAJaWYgKHJldC0+YXV0aG5faWQgPT0gTlVMTCB8fCByZXQtPmF1dGhuX2lk WzBdID09ICdcMCcpCiAJewotCQllcmVwb3J0KExPRywKLQkJCQllcnJtc2coIk9BdXRoIGJlYXJl ciBhdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIgXCIlc1wiIiwKLQkJCQkJICAgcG9ydC0+ dXNlcl9uYW1lKSwKLQkJCQllcnJkZXRhaWxfbG9nKCJWYWxpZGF0b3IgcHJvdmlkZWQgbm8gaWRl bnRpdHkuIikpOworCQkqbG9nZGV0YWlsID0gXygiVmFsaWRhdG9yIHByb3ZpZGVkIG5vIGlkZW50 aXR5LiIpOwogCiAJCXN0YXR1cyA9IGZhbHNlOwogCQlnb3RvIGNsZWFudXA7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9saWJwcS9hdXRoLmMgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRoLmMKaW5k ZXggZmRhY2MwNjAzODEuLjQ3YjVlZWI4ZjIyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9saWJw cS9hdXRoLmMKKysrIGIvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC5jCkBAIC02MzksNyArNjM5LDcg QEAgQ2xpZW50QXV0aGVudGljYXRpb24oUG9ydCAqcG9ydCkKIAkJCXN0YXR1cyA9IFNUQVRVU19P SzsKIAkJCWJyZWFrOwogCQljYXNlIHVhT0F1dGg6Ci0JCQlzdGF0dXMgPSBDaGVja1NBU0xBdXRo KCZwZ19iZV9vYXV0aF9tZWNoLCBwb3J0LCBOVUxMLCBOVUxMLAorCQkJc3RhdHVzID0gQ2hlY2tT QVNMQXV0aCgmcGdfYmVfb2F1dGhfbWVjaCwgcG9ydCwgTlVMTCwgJmxvZ2RldGFpbCwKIAkJCQkJ CQkJICAgJmFiYW5kb25lZCk7CiAJCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwgYi9zcmMvdGVzdC9tb2R1bGVz L29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwKaW5kZXggYzljNDZlNjM1MzkuLmFjNjI1 NTU2NzVhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAw MV9zZXJ2ZXIucGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9vYXV0aF92YWxpZGF0b3IvdC8wMDFf c2VydmVyLnBsCkBAIC01NDQsOCArNTQ0LDggQEAgJG5vZGUtPmNvbm5lY3RfZmFpbHMoCiAJZXhw ZWN0ZWRfc3RkZXJyID0+IHFyL09BdXRoIGJlYXJlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQvLAog CWxvZ19saWtlID0+IFsKIAkJcXIvY29ubmVjdGlvbiBhdXRoZW50aWNhdGVkOiBpZGVudGl0eT0i Ii8sCi0JCXFyL0RFVEFJTDpccytWYWxpZGF0b3IgcHJvdmlkZWQgbm8gaWRlbnRpdHkvLAogCQlx ci9GQVRBTDpccytPQXV0aCBiZWFyZXIgYXV0aGVudGljYXRpb24gZmFpbGVkLywKKwkJcXIvREVU QUlMOlxzK1ZhbGlkYXRvciBwcm92aWRlZCBubyBpZGVudGl0eS8sCiAJXSk7CiAKICMgRXZlbiBp ZiBhIHZhbGlkYXRvciBhdXRoZW50aWNhdGVzIHRoZSB1c2VyLCBpZiB0aGUgdG9rZW4gaXNuJ3Qg Y29uc2lkZXJlZApAQCAtNTY0LDEwICs1NjQsNDggQEAgJG5vZGUtPmNvbm5lY3RfZmFpbHMoCiAJ ZXhwZWN0ZWRfc3RkZXJyID0+IHFyL09BdXRoIGJlYXJlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQv LAogCWxvZ19saWtlID0+IFsKIAkJcXIvY29ubmVjdGlvbiBhdXRoZW50aWNhdGVkOiBpZGVudGl0 eT0idGVzdFxAZXhhbXBsZVwub3JnIi8sCisJCXFyL0ZBVEFMOlxzK09BdXRoIGJlYXJlciBhdXRo ZW50aWNhdGlvbiBmYWlsZWQvLAogCQlxci9ERVRBSUw6XHMrVmFsaWRhdG9yIGZhaWxlZCB0byBh dXRob3JpemUgdGhlIHByb3ZpZGVkIHRva2VuLywKKwldKTsKKworIyBWYWxpZGF0b3JzIGNhbiBw cm92aWRlIHRoZWlyIG93biBleHBsYW5hdGlvbnMuCiskYmdjb25uLT5xdWVyeV9zYWZlKAorCSJB TFRFUiBTWVNURU0gU0VUIG9hdXRoX3ZhbGlkYXRvci5lcnJvcl9kZXRhaWwgVE8gJ3NvbWV0aGlu ZyBmYWlsZWQnIik7Ciskbm9kZS0+cmVsb2FkOworJGxvZ19zdGFydCA9CisgICRub2RlLT53YWl0 X2Zvcl9sb2cocXIvcmVsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZmlsZXMvLCAkbG9nX3N0YXJ0KTsK KworJG5vZGUtPmNvbm5lY3RfZmFpbHMoCisJIiRjb21tb25fY29ubnN0ciB1c2VyPXRlc3QiLAor CSJ2YWxpZGF0b3IgbXVzdCBhdXRob3JpemUgdG9rZW4gZXhwbGljaXRseSAoY3VzdG9tIGxvZ2Rl dGFpbCkiLAorCWV4cGVjdGVkX3N0ZGVyciA9PiBxci9PQXV0aCBiZWFyZXIgYXV0aGVudGljYXRp b24gZmFpbGVkLywKKwlsb2dfbGlrZSA9PiBbCisJCXFyL2Nvbm5lY3Rpb24gYXV0aGVudGljYXRl ZDogaWRlbnRpdHk9InRlc3RcQGV4YW1wbGVcLm9yZyIvLAogCQlxci9GQVRBTDpccytPQXV0aCBi ZWFyZXIgYXV0aGVudGljYXRpb24gZmFpbGVkLywKKwkJcXIvREVUQUlMOlxzK3NvbWV0aGluZyBm YWlsZWQvLAogCV0pOwogCiskYmdjb25uLT5xdWVyeV9zYWZlKAorCSJBTFRFUiBTWVNURU0gU0VU IG9hdXRoX3ZhbGlkYXRvci5pbnRlcm5hbF9lcnJvciBUTyB0cnVlIik7Ciskbm9kZS0+cmVsb2Fk OworJGxvZ19zdGFydCA9CisgICRub2RlLT53YWl0X2Zvcl9sb2cocXIvcmVsb2FkaW5nIGNvbmZp Z3VyYXRpb24gZmlsZXMvLCAkbG9nX3N0YXJ0KTsKKworJG5vZGUtPmNvbm5lY3RfZmFpbHMoCisJ IiRjb21tb25fY29ubnN0ciB1c2VyPXRlc3QiLAorCSJ2YWxpZGF0b3IgaW50ZXJuYWwgZXJyb3Ig KGN1c3RvbSBsb2dkZXRhaWwpIiwKKwlleHBlY3RlZF9zdGRlcnIgPT4gcXIvT0F1dGggYmVhcmVy IGF1dGhlbnRpY2F0aW9uIGZhaWxlZC8sCisJbG9nX2xpa2UgPT4gWworCQlxci9XQVJOSU5HOlxz K2ludGVybmFsIGVycm9yIGluIE9BdXRoIHZhbGlkYXRvciBtb2R1bGUvLAorCQlxci9ERVRBSUw6 XHMrc29tZXRoaW5nIGZhaWxlZC8sCisJXSk7CisKKyRiZ2Nvbm4tPnF1ZXJ5X3NhZmUoIkFMVEVS IFNZU1RFTSBSRVNFVCBvYXV0aF92YWxpZGF0b3IuZXJyb3JfZGV0YWlsIik7CiskYmdjb25uLT5x dWVyeV9zYWZlKCJBTFRFUiBTWVNURU0gUkVTRVQgb2F1dGhfdmFsaWRhdG9yLmludGVybmFsX2Vy cm9yIik7Ciskbm9kZS0+cmVsb2FkOworJGxvZ19zdGFydCA9CisgICRub2RlLT53YWl0X2Zvcl9s b2cocXIvcmVsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZmlsZXMvLCAkbG9nX3N0YXJ0KTsKKwogIwog IyBUZXN0IHVzZXIgbWFwcGluZy4KICMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvb2F1 dGhfdmFsaWRhdG9yL3ZhbGlkYXRvci5jIGIvc3JjL3Rlc3QvbW9kdWxlcy9vYXV0aF92YWxpZGF0 b3IvdmFsaWRhdG9yLmMKaW5kZXggMGI5ODNhOWRjOGYuLjM1M2UwZTBkMzJhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci92YWxpZGF0b3IuYworKysgYi9zcmMv dGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci92YWxpZGF0b3IuYwpAQCAtNDAsNiArNDAsOCBA QCBzdGF0aWMgY29uc3QgT0F1dGhWYWxpZGF0b3JDYWxsYmFja3MgdmFsaWRhdG9yX2NhbGxiYWNr cyA9IHsKIC8qIEdVQ3MgKi8KIHN0YXRpYyBjaGFyICphdXRobl9pZCA9IE5VTEw7CiBzdGF0aWMg Ym9vbCBhdXRob3JpemVfdG9rZW5zID0gdHJ1ZTsKK3N0YXRpYyBjaGFyICplcnJvcl9kZXRhaWwg PSBOVUxMOworc3RhdGljIGJvb2wgaW50ZXJuYWxfZXJyb3IgPSBmYWxzZTsKIAogLyotLS0KICAq IEV4dGVuc2lvbiBlbnRyeSBwb2ludC4gU2V0cyB1cCBHVUNzIGZvciB1c2UgYnkgdGVzdHM6CkBA IC01MSw2ICs1MywxMyBAQCBzdGF0aWMgYm9vbCBhdXRob3JpemVfdG9rZW5zID0gdHJ1ZTsKICAq IC0gb2F1dGhfdmFsaWRhdG9yLmF1dGhvcml6ZV90b2tlbnMKICAqCQkJCQkJCQlTZXRzIHdoZXRo ZXIgdG8gc3VjY2Vzc2Z1bGx5IHZhbGlkYXRlIGluY29taW5nCiAgKgkJCQkJCQkJdG9rZW5zLiBE ZWZhdWx0cyB0byB0cnVlLgorICoKKyAqIC0gb2F1dGhfdmFsaWRhdG9yLmVycm9yX2RldGFpbAor ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXRzIGFuIGVycm9yIG1lc3NhZ2UgdG8g YmUgaW5jbHVkZWQgYXMgYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVRBSUwg b24gZmFpbHVyZS4KKyAqCisgKiAtIG9hdXRoX3ZhbGlkYXRvci5pbnRlcm5hbF9lcnJvcgorICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBvcnRzIGFuIGludGVybmFsIGVycm9yIHRv IHRoZSBzZXJ2ZXIuCiAgKi8KIHZvaWQKIF9QR19pbml0KHZvaWQpCkBAIC03MSw2ICs4MCwyMiBA QCBfUEdfaW5pdCh2b2lkKQogCQkJCQkJCSBQR0NfU0lHSFVQLAogCQkJCQkJCSAwLAogCQkJCQkJ CSBOVUxMLCBOVUxMLCBOVUxMKTsKKwlEZWZpbmVDdXN0b21TdHJpbmdWYXJpYWJsZSgib2F1dGhf dmFsaWRhdG9yLmVycm9yX2RldGFpbCIsCisJCQkJCQkJICAgIkVycm9yIG1lc3NhZ2UgdG8gcHJp bnQgZHVyaW5nIGZhaWx1cmVzIiwKKwkJCQkJCQkgICBOVUxMLAorCQkJCQkJCSAgICZlcnJvcl9k ZXRhaWwsCisJCQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICBQR0NfU0lHSFVQLAorCQkJCQkJCSAg IDAsCisJCQkJCQkJICAgTlVMTCwgTlVMTCwgTlVMTCk7CisJRGVmaW5lQ3VzdG9tQm9vbFZhcmlh YmxlKCJvYXV0aF92YWxpZGF0b3IuaW50ZXJuYWxfZXJyb3IiLAorCQkJCQkJCSAiU2hvdWxkIHRo ZSB2YWxpZGF0b3IgcmVwb3J0IGFuIGludGVybmFsIGVycm9yPyIsCisJCQkJCQkJIE5VTEwsCisJ CQkJCQkJICZpbnRlcm5hbF9lcnJvciwKKwkJCQkJCQkgZmFsc2UsCisJCQkJCQkJIFBHQ19TSUdI VVAsCisJCQkJCQkJIDAsCisJCQkJCQkJIE5VTEwsIE5VTEwsIE5VTEwpOwogCiAJTWFya0dVQ1By ZWZpeFJlc2VydmVkKCJvYXV0aF92YWxpZGF0b3IiKTsKIH0KQEAgLTEzMyw2ICsxNTgsMTAgQEAg dmFsaWRhdGVfdG9rZW4oY29uc3QgVmFsaWRhdG9yTW9kdWxlU3RhdGUgKnN0YXRlLAogCQkgTXlQ cm9jUG9ydC0+aGJhLT5vYXV0aF9pc3N1ZXIsCiAJCSBNeVByb2NQb3J0LT5oYmEtPm9hdXRoX3Nj b3BlKTsKIAorCXJlcy0+ZXJyb3JfZGV0YWlsID0gZXJyb3JfZGV0YWlsOwkvKiBvbmx5IHJlbGV2 YW50IGZvciBmYWlsdXJlcyAqLworCWlmIChpbnRlcm5hbF9lcnJvcikKKwkJcmV0dXJuIGZhbHNl OworCiAJcmVzLT5hdXRob3JpemVkID0gYXV0aG9yaXplX3Rva2VuczsKIAlpZiAoYXV0aG5faWQp CiAJCXJlcy0+YXV0aG5faWQgPSBwc3RyZHVwKGF1dGhuX2lkKTsKLS0gCjIuMzQuMQoK --000000000000b238e0064e6e01e1 Content-Type: application/octet-stream; name="since-v3.nocfbot.diff" Content-Disposition: attachment; filename="since-v3.nocfbot.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mngna6pm1 MTogIGYzNmU2YmVjYzM0ICEgMTogIGE5YTUwNzYwNGM1IG9hdXRoOiBMZXQgdmFsaWRhdG9ycyBw cm92aWRlIGZhaWx1cmUgREVUQUlMcwogICAgQEAgQ29tbWl0IG1lc3NhZ2UKICAgICAKICAgICAg ICAgUmVwb3J0ZWQtYnk6IMOBbHZhcm8gSGVycmVyYSA8YWx2aGVycmVAa3VyaWxlbXUuZGU+CiAg ICAgICAgIFJlcG9ydGVkLWJ5OiBac29sdCBQYXJyYWdpIDx6c29sdC5wYXJyYWdpQHBlcmNvbmEu Y29tPgogICAgKyAgICBSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNv bT4KICAgICsgICAgUmV2aWV3ZWQtYnk6IERhbmllbCBHdXN0YWZzc29uIDxkYW5pZWxAeWVzcWwu c2U+CiAgICArICAgIFJldmlld2VkLWJ5OiBac29sdCBQYXJyYWdpIDx6c29sdC5wYXJyYWdpQHBl cmNvbmEuY29tPgogICAgICAgICBEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzIwMjYw MTI0MTAxNS55NXV2eGQ3b3huZnMlNDBhbHZoZXJyZS5wZ3NxbAogICAgLSAgICBEaXNjdXNzaW9u OiBUT0RPCiAgICAgCiAgICAgICMjIGRvYy9zcmMvc2dtbC9vYXV0aC12YWxpZGF0b3JzLnNnbWwg IyMKICAgICBAQAogICAgQEAgZG9jL3NyYy9zZ21sL29hdXRoLXZhbGlkYXRvcnMuc2dtbAogICAg ICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgLSAgICAgICBNb2R1bGVz IG1heSB1c2UgdGhlIHNhbWUgPGxpbmsgbGlua2VuZD0iZXJyb3ItbWVzc2FnZS1yZXBvcnRpbmci PmxvZ2dpbmcKICAgIC0rICAgICAgIFRvIHNpbXBseSBsb2cgdGhlIHJlYXNvbiBmb3IgYSB2YWxp ZGF0aW9uIGZhaWx1cmUsIHZhbGlkYXRvcnMgbWF5IHNldAogICAgLSsgICAgICAgdGhlIGZyZWVm b3JtIDxzdHJ1Y3RmaWVsZD5lcnJvcl9kZXRhaWw8L3N0cnVjdGZpZWxkPiBmaWVsZCBkdXJpbmcg dGhlCiAgICAtKyAgICAgICA8eHJlZiBsaW5rZW5kPSJvYXV0aC12YWxpZGF0b3ItY2FsbGJhY2st dmFsaWRhdGUiLz4uIFRoaXMgaXMgcHJpbnRlZCBvbmx5CiAgICAtKyAgICAgICB0byB0aGUgc2Vy dmVyIGxvZywgYXMgcGFydCBvZiB0aGUgZmluYWwgYXV0aGVudGljYXRpb24gZmFpbHVyZSBtZXNz YWdlLAogICAgLSsgICAgICAgYW5kIGl0IGlzIG5vdCBzaGFyZWQgd2l0aCB0aGUgY2xpZW50Lgog ICAgKysgICAgICAgVG8gc2ltcGx5IGxvZyB0aGUgcmVhc29uIGZvciBhIHZhbGlkYXRpb24gZmFp bHVyZSwgbW9kdWxlcyBtYXkgc2V0IHRoZQogICAgKysgICAgICAgZnJlZWZvcm0gPHN0cnVjdGZp ZWxkPmVycm9yX2RldGFpbDwvc3RydWN0ZmllbGQ+IGZpZWxkIGR1cmluZyB0aGUKICAgICsrICAg ICAgIDxsaW5rIGxpbmtlbmQ9Im9hdXRoLXZhbGlkYXRvci1jYWxsYmFjay12YWxpZGF0ZSI+dmFs aWRhdGUgY2FsbGJhY2s8L2xpbms+LgogICAgKysgICAgICAgKDx4cmVmIGxpbmtlbmQ9ImVycm9y LXN0eWxlLWd1aWRlIi8+IGhhcyBndWlkZWxpbmVzIGZvciB3cml0aW5nIGdvb2QKICAgICsrICAg ICAgIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbWVzc2FnZXMuKSA8c3RydWN0ZmllbGQ+ZXJy b3JfZGV0YWlsPC9zdHJ1Y3RmaWVsZD4KICAgICsrICAgICAgIGlzIHByaW50ZWQgb25seSB0byB0 aGUgc2VydmVyIGxvZywgYXMgcGFydCBvZiB0aGUgZmluYWwgYXV0aGVudGljYXRpb24KICAgICsr ICAgICAgIGZhaWx1cmUgbWVzc2FnZSwgYW5kIGl0IGlzIG5vdCBzaGFyZWQgd2l0aCB0aGUgY2xp ZW50LgogICAgICsgICAgICA8L3BhcmE+CiAgICAgKyAgICAgIDxwYXJhPgogICAgICsgICAgICAg TW9kdWxlcyBtYXkgYWxzbyB1c2UgdGhlIHNhbWUgPGxpbmsgbGlua2VuZD0iZXJyb3ItbWVzc2Fn ZS1yZXBvcnRpbmciPmxvZ2dpbmcKICAgIEBAIHNyYy9iYWNrZW5kL2xpYnBxL2F1dGgtb2F1dGgu Yzogc3RydWN0IG9hdXRoX2N0eAogICAgICAvKiBDb25zdGFudHMgc2VlbiBpbiBhbiBPQVVUSEJF QVJFUiBjbGllbnQgaW5pdGlhbCByZXNwb25zZS4gKi8KICAgICAgI2RlZmluZSBLVlNFUCAweDAx CQkJCS8qIHNlcGFyYXRvciBieXRlIGZvciBrZXkvdmFsdWUgcGFpcnMgKi8KICAgICBAQCBzcmMv YmFja2VuZC9saWJwcS9hdXRoLW9hdXRoLmM6IG9hdXRoX2V4Y2hhbmdlKHZvaWQgKm9wYXEsIGNv bnN0IGNoYXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sCiAgICAtIAkJCQllcnJtc2coIm1hbGZvcm1l ZCBPQVVUSEJFQVJFUiBtZXNzYWdlIiksCiAgICAtIAkJCQllcnJkZXRhaWwoIk1lc3NhZ2UgY29u dGFpbnMgYWRkaXRpb25hbCBkYXRhIGFmdGVyIHRoZSBmaW5hbCB0ZXJtaW5hdG9yLiIpKTsKICAg IC0gCiAgICAtLQlpZiAoIXZhbGlkYXRlKGN0eC0+cG9ydCwgYXV0aCkpCiAgICAtKwlpZiAoIXZh bGlkYXRlKGN0eC0+cG9ydCwgYXV0aCwgbG9nZGV0YWlsKSkKICAgICsgCQljdHgtPnN0YXRlID0g T0FVVEhfU1RBVEVfRVJST1JfRElTQ09WRVJZOwogICAgKyAJCXN0YXR1cyA9IFBHX1NBU0xfRVhD SEFOR0VfQ09OVElOVUU7CiAgICArIAl9CiAgICArLQllbHNlIGlmICghdmFsaWRhdGUoY3R4LT5w b3J0LCBhdXRoKSkKICAgICsrCWVsc2UgaWYgKCF2YWxpZGF0ZShjdHgtPnBvcnQsIGF1dGgsIGxv Z2RldGFpbCkpCiAgICAgIAl7CiAgICAgIAkJZ2VuZXJhdGVfZXJyb3JfcmVzcG9uc2UoY3R4LCBv dXRwdXQsIG91dHB1dGxlbik7CiAgICAgIAogICAgQEAgc3JjL2JhY2tlbmQvbGlicHEvYXV0aC5j OiBDbGllbnRBdXRoZW50aWNhdGlvbihQb3J0ICpwb3J0KQogICAgICAJCQlzdGF0dXMgPSBTVEFU VVNfT0s7CiAgICAgIAkJCWJyZWFrOwogICAgICAJCWNhc2UgdWFPQXV0aDoKICAgIC0tCQkJc3Rh dHVzID0gQ2hlY2tTQVNMQXV0aCgmcGdfYmVfb2F1dGhfbWVjaCwgcG9ydCwgTlVMTCwgTlVMTCk7 CiAgICAtKwkJCXN0YXR1cyA9IENoZWNrU0FTTEF1dGgoJnBnX2JlX29hdXRoX21lY2gsIHBvcnQs IE5VTEwsICZsb2dkZXRhaWwpOwogICAgKy0JCQlzdGF0dXMgPSBDaGVja1NBU0xBdXRoKCZwZ19i ZV9vYXV0aF9tZWNoLCBwb3J0LCBOVUxMLCBOVUxMLAogICAgKysJCQlzdGF0dXMgPSBDaGVja1NB U0xBdXRoKCZwZ19iZV9vYXV0aF9tZWNoLCBwb3J0LCBOVUxMLCAmbG9nZGV0YWlsLAogICAgKyAJ CQkJCQkJCSAgICZhYmFuZG9uZWQpOwogICAgICAJCQlicmVhazsKICAgICAgCX0KICAgIC0gCiAg ICAgCiAgICAgICMjIHNyYy90ZXN0L21vZHVsZXMvb2F1dGhfdmFsaWRhdG9yL3QvMDAxX3NlcnZl ci5wbCAjIwogICAgIEBAIHNyYy90ZXN0L21vZHVsZXMvb2F1dGhfdmFsaWRhdG9yL3QvMDAxX3Nl cnZlci5wbDogJG5vZGUtPmNvbm5lY3RfZmFpbHMoCg== --000000000000b238e0064e6e01e1--