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 1w1PnZ-000HYf-3D for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Mar 2026 14:17:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w1PnZ-001wyy-05 for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Mar 2026 14:17:01 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w1PnY-001wyN-2A for pgsql-hackers@lists.postgresql.org; Sat, 14 Mar 2026 14:17:01 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1PnW-000000008Fi-26K3 for pgsql-hackers@postgresql.org; Sat, 14 Mar 2026 14:17:01 +0000 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-b9789425fc5so88730666b.1 for ; Sat, 14 Mar 2026 07:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1773497817; x=1774102617; darn=postgresql.org; h=in-reply-to:references:to:subject:cc:from:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=tBWQTdFFR2G8gv3nf7MTeb96C0A+8mt75VnJoNOwg8Q=; b=kGBVk44ppH3dbSIvGMaEvf5Vba/HtE657vOSz+RIoKsSbjVblBMZj/L5bn6UgvLYor jKkKclxJfuuZtswd49iIGlie+4wu2MSclmBE+Yph0BpEov0s4EEVgIsWLh2q76V+iXw0 2he1TY22ksWFWB4EalcivB5CxqdgMG15nd402thhtt8rfB9nveyAPRJTo+NP4g0MN5J6 P0Kojciiuw4IchCFFFRcG+IZvnILvb5CrImRixzJSLmGD6WGNVxP9zuPZAa6TxhkerWk utSvciCcBuKYaSzZ/3laJBij5rD1vKMEcapNBOK7yHpmt88UAf/I1rYNXczzzPNEe9XF rM6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773497817; x=1774102617; h=in-reply-to:references:to:subject:cc:from:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tBWQTdFFR2G8gv3nf7MTeb96C0A+8mt75VnJoNOwg8Q=; b=TgPkyy/HhEVShhfIQcWWmsHGuftsgZkqGBg8N7i6tLQdiQS5muepBz9BwVducnyuJ7 wAaZiG8rFkCRm0a8opUuU382zGL12oRRTvIjC1g1Dmzr9iTwhpkdRa8vUzq5NLDaBz0J Z0nM2VnjjZHIZLtf4PspOWNAVvg3iq0f21jspmDobtCg0PbF3dVgRAoipJSDhrsV8+cd p8tBoS2vLF/wzhXxKbI97oISmUnlcOPAnZ/1eRhSkqs1jaSHJLb2E6AMTFXqMyJsgal5 FdmMD5YcJbOjINfXIR+92yy/t7uz9EKrKMXjBdtO9Q5GCbMwdXO59TYljcKGkBMOrPWA 8w2w== X-Gm-Message-State: AOJu0YwIll19mlmgs1THIwLw0oCQho98O5r760NydYTcCEZrVva8rvFR 3fUndQlsRjXa/hHub7pg4afmj4Of63RimrZ+A8XTh93a82BEO1uQo4gDa2sOxAmOG30= X-Gm-Gg: ATEYQzzb6T62LuALZqpuYt0GDztMPcVAJcyEy8sBpdM+frrCnBSO7QuLkpMG+SLTUAf XFx5WSQ4ywtV9HqeGh7RNyVVidST7ME5e896HgsX5VxCTdtgaYX+Yqex0Btca3AUWdZFAitrsX3 KPVXdqXG9A1A/p2xAGaMpkSQ1z8VKZz9cQ9d1/7XLoe9v5HKsABCw13DFEib0Xa8NxsSPcAqAt5 w3KUuuZa6G5KXkMnBo+bEp/sZt7DLbofc2akkKksMI6yJowBcfvSzY35qsuBgUH73LtofEllK3M 6V3b/gbHDSFPEf9+QAoSys0GstPSDGvGXxJ4/rW3ORZbsT45J2DSppSmGqeGRZFH/7X3Zb4hpSI FhRIwpM8vy4E0YqHI/GIF/LkxaaP/NVowEUsmEmT0mOB0/wfb7ppdvAwWUF0EY/vogY7SyaORlp d9oHlWGcOywjKYIAiK+lIWXolNiUYvOgfuf56m/Km/TBK7OyGQ X-Received: by 2002:a17:907:3d0a:b0:b8f:e9ae:b78d with SMTP id a640c23a62f3a-b974021e5c5mr582317266b.22.1773497817455; Sat, 14 Mar 2026 07:16:57 -0700 (PDT) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b976cba6eb8sm234338866b.4.2026.03.14.07.16.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 14 Mar 2026 07:16:56 -0700 (PDT) Content-Type: multipart/mixed; boundary=6e8828c071b827e78f4cc5f50ba1dd1adb9cd58f1984b7ba70aa4783143a Mime-Version: 1.0 Date: Sat, 14 Mar 2026 15:16:56 +0100 Message-Id: From: "Jelte Fennema-Nio" Cc: "PostgreSQL-development" , "Heikki Linnakangas" , "Tom Lane" , "Tomas Vondra" , "Peter Eisentraut" Subject: Re: Bump soft open file limit (RLIMIT_NOFILE) to hard limit on startup To: "Andres Freund" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <4qacnswlyykgj6p2gon4pvv7r2cb4adtedguer6pmaktr4xdve@om6ej7u4qw7p> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --6e8828c071b827e78f4cc5f50ba1dd1adb9cd58f1984b7ba70aa4783143a Content-Type: multipart/alternative; boundary=43941a6491a4719342b1e6a6ecb1e65e21d31dff8e28ff66eceee85337e6 --43941a6491a4719342b1e6a6ecb1e65e21d31dff8e28ff66eceee85337e6 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Sun Dec 7, 2025 at 4:55 PM CET, Jelte Fennema-Nio wrote: > I needed to rebase this patch, and that made me finally take the time to > do the restoration of the file limit for subprocesses properly:=20 Rebased version attached. --43941a6491a4719342b1e6a6ecb1e65e21d31dff8e28ff66eceee85337e6-- --6e8828c071b827e78f4cc5f50ba1dd1adb9cd58f1984b7ba70aa4783143a Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v10-0001-Bump-postmaster-soft-open-file-limit-RLIMIT_NOFI.patch Content-Type: text/x-patch; charset=utf-8; name=v10-0001-Bump-postmaster-soft-open-file-limit-RLIMIT_NOFI.patch RnJvbSBlODgwM2NkZGRkYTIyNjU1NGIxOGFlMDBmNmZmMTZmMzViNzg0OTI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDcgRGVjIDIwMjUgMTU6MDc6MDggKzAxMDAKU3ViamVjdDogW1BBVENIIHYx MCAxLzJdIEJ1bXAgcG9zdG1hc3RlciBzb2Z0IG9wZW4gZmlsZSBsaW1pdCAoUkxJTUlUX05PRklM RSkKIHdoZW4gbmVjZXNzYXJ5CgpUaGUgZGVmYXVsdCBvcGVuIGZpbGUgbGltaXQgb2YgMTAyNCBv biBMaW51eCBpcyBleHRyZW1lbHkgbG93LiBUaGUKcmVhc29uIHRoYXQgdGhpcyBoYXNuJ3QgY2hh bmdlZCBjaGFuZ2UgaXMgYmVjYXVzZSBkb2luZyBzbyB3b3VsZCBicmVhawpsZWdhY3kgcHJvZ3Jh bXMgdGhhdCB1c2UgdGhlIHNlbGVjdCgyKSBzeXN0ZW0gY2FsbCBpbiBoYXJkIHRvIGRlYnVnCndh eXMuIFNvIGluc3RlYWQgcHJvZ3JhbXMgdGhhdCB3YW50IHRvIG9wdC1pbiB0byBhIGhpZ2hlciBv cGVuIGZpbGUKbGltaXQgYXJlIGV4cGVjdGVkIHRvIGJ1bXAgdGhlaXIgc29mdCBsaW1pdCB0byB0 aGVpciBoYXJkIGxpbWl0IG9uCnN0YXJ0dXAuIERldGFpbHMgb24gdGhpcyBhcmUgdmVyeSB3ZWxs IGV4cGxhaW5lZCBpbiBhIGJsb2dwb3N0IGJ5IHRoZQpzeXN0ZW1kIGF1dGhvclsxXS4gVGhlcmUn cyBhbHNvIGEgc2ltaWxhciBjaGFuZ2UgZG9uZSBieSB0aGUgR28KbGFuZ3VhZ2VbMl0uCgpUaGlz IHN0YXJ0cyBidW1waW5nIHBvc3RtYXN0ZXIgaXRzIHNvZnQgb3BlbiBmaWxlIGxpbWl0IHdoZW4g d2UgcmVhbGl6ZQp0aGF0IHdlJ2xsIHJ1biBpbnRvIHRoZSBzb2Z0IGxpbWl0IHdpdGggdGhlIHJl cXVlc3RlZAptYXhfZmlsZXNfcGVyX3Byb2Nlc3MgR1VDLiBXZSBkbyBzbyBieSBzbGlnaHRseSBj aGFuZ2luZyB0aGUgbWVhbmluZyBvZgp0aGUgbWF4X2ZpbGVzX3Blcl9wcm9jZXNzIEdVQy4gVGhl IGFjdHVhbCAobm90IHB1YmxpY2x5IGV4cG9zZWQpIGxpbWl0CmlzIG1heF9zYWZlX2ZkcywgcHJl dmlvdXNseSB0aGlzIHdvdWxkIGJlIHNldCB0bzoKbWF4X2ZpbGVzX3Blcl9wcm9jZXNzIC0gYWxy ZWFkeV9vcGVuX2ZpbGVzIC0gTlVNX1JFU0VSVkVEX0ZEUwpBZnRlciB0aGlzIGNoYW5nZSB3ZSBu b3cgdHJ5IHRvIHNldCBtYXhfc2FmZV9mZHMgdG8KbWF4X2ZpbGVzX3Blcl9wcm9jZXNzIGlmIHRo ZSBzeXN0ZW0gYWxsb3dzIHRoYXQuIFRoaXMgaXMgZGVlbWVkIG1vcmUKbmF0dXJhbCB0byB1bmRl cnN0YW5kIGZvciB1c2VycywgYmVjYXVzZSBub3cgdGhlIGxpbWl0IG9mIGZpbGVzIHRoYXQKdGhl eSBjYW4gb3BlbiBpcyBhY3R1YWxseSB3aGF0IHRoZXkgY29uZmlndXJlZCBpbiBtYXhfZmlsZXNf cGVyX3Byb2Nlc3MuCgpBZGRpbmcgdGhpcyBpbmZyYXN0cnVjdHVyZSB0byBjaGFuZ2UgUkxJTUlU X05PRklMRSB3aGVuIG5lZWRlZCBpcwplc3BlY2lhbGx5IHVzZWZ1bCBmb3IgdGhlIEFJTyB3b3Jr LCBiZWNhdXNlIGlvX3VyaW5nIGNvbnN1bWVzIGEgbG90IG9mCmZpbGUgZGVzY3JpcHRvcnMuIEV2 ZW4gd2l0aG91dCBsb29raW5nIGF0IEFJTyB0aGVyZSBpcyBhIGxhcmdlIG51bWJlciBvZgpyZXBv cnRzIGZyb20gcGVvcGxlIHRoYXQgcmVxdWlyZSBjaGFuZ2luZyB0aGVpciBzb2Z0IGZpbGUgbGlt aXQgYmVmb3JlCnN0YXJ0aW5nIFBvc3RncmVzLCBzb21ldGltZXMgZmFsbGluZyBiYWNrIHRvIGxv d2VyaW5nCm1heF9maWxlc19wZXJfcHJvY2VzcyB3aGVuIHRoZXkgZmFpbCB0byBkbyBzb1szLThd LgpJdCdzIGFsc28gbm90IGFsbCB0aGF0IHN0cmFuZ2UgdG8gZmFpbCBhdCBzZXR0aW5nIHRoZSBz b2Z0IG9wZW4gZmlsZQpsaW1pdCBiZWNhdXNlIHRoZXJlIGFyZSBtdWx0aXBsZSBwbGFjZXMgd2hl cmUgb25lIGNhbiBjb25maWd1cmUgc3VjaApsaW1pdHMgYW5kIHVzdWFsbHkgb25seSBvbmUgb2Yg dGhlbSBpcyBlZmZlY3RpdmUgKHdoaWNoIG9uZSBkZXBlbmRzIG9uCmhvdyBQb3N0Z3JlcyBpcyBz dGFydGVkKS4gSW4gY2xvdWQgZW52aXJvbm1lbnRzIGl0cyBhbHNvIG9mdGVuIG5vdApwb3NzaWJs ZSBmb3IgdXNlciB0byBjaGFuZ2UgdGhlIHNvZnQgbGltaXQsIGJlY2F1c2UgdGhleSBkb24ndCBj b250cm9sCnRoZSB3YXkgdGhhdCBQb3N0Z3JlcyBpcyBzdGFydGVkLiBGaW5hbGx5LCBmb3IgdGhl IG11bHRpLXRocmVhZGluZyB3b3JrCnRoaXMgaXMgYWxzbyB2ZXJ5IGltcG9ydGFudCBiZWNhdXNl IHRoZW4gdGhlIG9wZW4gZmlsZSBsaW1pdCBpcyBub3QKcGVyLWJhY2tlbmQgYW55bW9yZSwgYnV0 IGZvciB0aGUgd2hvbGUgc3lzdGVtLgoKVGhlIG1vc3QgY29tcGxleCBjaGFuZ2UgaW4gdGhpcyBw YXRjaCBpcyBob3cgd2Ugc2hlbGwgb3V0IHRvIG90aGVyCnN5c3RlbXMgZXhlY3V0YWJsZXMuIElu c3RlYWQgb2YgdXNpbmcgc3lzdGVtIGFuZCBwb3BlbiBkaXJlY3RseSB3ZSBub3cKaW1wbGVtZW50 IG91ciBvd24gdmVyc2lvbnMgb2YgdGhlc2UgY29tbWFuZHMgdGhhdCByZXN0b3JlIHRoZSBvcmln aW5hbApmaWxlIGxpbWl0cyBiZWZvcmUgc3RhcnRpbmcgdGhlIG90aGVyIGV4ZWN1dGFibGVzLiBU aGlzIGlzIGRvbmUgYXMgYQpwcmVjYXV0aW9uIGluIGNhc2UgdGhvc2UgZXhlY3V0YWJsZXMgYXJl IHVzaW5nIHNlbGVjdCgyKS4KClAuUy4gVGhlIGluaXRkYiB0ZXN0IG5lZWRlZCB0byBiZSB1cGRh dGVkIGJlY2F1c2Ugb24gb3VyIE9wZW5CU0QgQ0kgdGhlCnN0ZGVyciB3b3VsZCBub3cgY29udGFp bjoKCkxPRzogIGluY3JlYXNlZCBvcGVuIGZpbGUgbGltaXQgdG8gMTAwNAoKWzFdOiBodHRwczov LzBwb2ludGVyLm5ldC9ibG9nL2ZpbGUtZGVzY3JpcHRvci1saW1pdHMuaHRtbApbMl06IGh0dHBz Oi8vZ2l0aHViLmNvbS9nb2xhbmcvZ28vaXNzdWVzLzQ2Mjc5ClszXTogaHR0cHM6Ly9zZXJ2ZXJm YXVsdC5jb20vcXVlc3Rpb25zLzc4NTMzMC9nZXR0aW5nLXRvby1tYW55LW9wZW4tZmlsZXMtZXJy b3ItZm9yLXBvc3RncmVzCls0XTogaHR0cHM6Ly9zZXJ2ZXJmYXVsdC5jb20vcXVlc3Rpb25zLzcx Njk4Mi9ob3ctdG8tcmFpc2UtbWF4LW5vLW9mLWZpbGUtZGVzY3JpcHRvcnMtZm9yLWRhZW1vbnMt cnVubmluZy1vbi1kZWJpYW4tamVzc2llCls1XTogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcv bWVzc2FnZS1pZC9mbGF0L0NBS3RjOHZYaDdOdlBfcVdqOEVxcW9yUFk5N2J2eFNhWDNoNXU3YTlQ cHRSRkhXNXg3ZyU0MG1haWwuZ21haWwuY29tCls2XTogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5v cmcvbWVzc2FnZS1pZC9mbGF0LzExM2NlMzFiMDkwODEyMDk1NXc3NzAyOTA5OWk3ZWNlY2MwNTMw ODQwOTVhJTQwbWFpbC5nbWFpbC5jb20KWzddOiBodHRwczovL2dpdGh1Yi5jb20vYWJpb3NvZnQv Y29saW1hL2Rpc2N1c3Npb25zLzgzNgpbOF06IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21l c3NhZ2UtaWQvZmxhdC8yOTY2My4xMDA3NzM4OTU3JTQwc3NzLnBnaC5wYS51cyMyMDc5ZWM5ZTJk OGIyNTE1OTM4MTJhMzcxMWJmZTllOQotLS0KIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hp dmUuYyB8ICAxOCArLQogc3JjL2JhY2tlbmQvYXJjaGl2ZS9zaGVsbF9hcmNoaXZlLmMgICAgICB8 ICAgMyArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMgICAgICAgICAgICB8IDQ0MiAr KysrKysrKysrKysrKysrKysrKystLQogc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsICAg ICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gICAgICAgICAgICAg ICB8ICAgMyArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL2ZkLmggICAgICAgICAgICAgICAgIHwgICAx ICsKIDcgZmlsZXMgY2hhbmdlZCwgNDM3IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKaW5kZXggNzBkYzY0YzM0OWEu LmM2MDJhMTFlMDVkIDEwMDY0NAotLS0gYS9tZXNvbi5idWlsZAorKysgYi9tZXNvbi5idWlsZApA QCAtMzEwMyw2ICszMTAzLDcgQEAgZnVuY19jaGVja3MgPSBbCiAgIFsnbWJzdG93Y3NfbCddLAog ICBbJ21lbXNldF9leHBsaWNpdCddLAogICBbJ21rZHRlbXAnXSwKKyAgWydwaXBlMiddLAogICBb J3Bvc2l4X2ZhZHZpc2UnXSwKICAgWydwb3NpeF9mYWxsb2NhdGUnXSwKICAgWydwcG9sbCddLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKaW5kZXggOWEwYzgwOTdjYjEu LmVmMzEzNmIyZDEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n YXJjaGl2ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMK QEAgLTE1OSwxMCArMTU5LDkgQEAgUmVzdG9yZUFyY2hpdmVkRmlsZShjaGFyICpwYXRoLCBjb25z dCBjaGFyICp4bG9nZm5hbWUsCiAJCQkoZXJybXNnX2ludGVybmFsKCJleGVjdXRpbmcgcmVzdG9y ZSBjb21tYW5kIFwiJXNcIiIsCiAJCQkJCQkJIHhsb2dSZXN0b3JlQ21kKSkpOwogCi0JZmZsdXNo KE5VTEwpOwotCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydChXQUlUX0VWRU5UX1JFU1RPUkVfQ09N TUFORCk7Ci0KIAkvKgorCSAqIENvcHkgeGxvZyBmcm9tIGFyY2hpdmFsIHN0b3JhZ2UgdG8gWExP R0RJUgorCSAqCiAJICogUHJlUmVzdG9yZUNvbW1hbmQoKSBpbmZvcm1zIHRoZSBTSUdURVJNIGhh bmRsZXIgZm9yIHRoZSBzdGFydHVwIHByb2Nlc3MKIAkgKiB0aGF0IGl0IHNob3VsZCBwcm9jX2V4 aXQoKSByaWdodCBhd2F5LiAgVGhpcyBpcyBkb25lIGZvciB0aGUgZHVyYXRpb24KIAkgKiBvZiB0 aGUgc3lzdGVtKCkgY2FsbCBiZWNhdXNlIHRoZXJlIGlzbid0IGEgZ29vZCB3YXkgdG8gYnJlYWsg b3V0IHdoaWxlCkBAIC0xNzAsMTYgKzE2OSwxMyBAQCBSZXN0b3JlQXJjaGl2ZWRGaWxlKGNoYXIg KnBhdGgsIGNvbnN0IGNoYXIgKnhsb2dmbmFtZSwKIAkgKiBpdCBpcyBiZXN0IHRvIHB1dCBhbnkg YWRkaXRpb25hbCBsb2dpYyBiZWZvcmUgb3IgYWZ0ZXIgdGhlCiAJICogUHJlUmVzdG9yZUNvbW1h bmQoKS9Qb3N0UmVzdG9yZUNvbW1hbmQoKSBzZWN0aW9uLgogCSAqLworCWZmbHVzaChOVUxMKTsK KwlwZ3N0YXRfcmVwb3J0X3dhaXRfc3RhcnQoV0FJVF9FVkVOVF9SRVNUT1JFX0NPTU1BTkQpOwog CVByZVJlc3RvcmVDb21tYW5kKCk7Ci0KLQkvKgotCSAqIENvcHkgeGxvZyBmcm9tIGFyY2hpdmFs IHN0b3JhZ2UgdG8gWExPR0RJUgotCSAqLwotCXJjID0gc3lzdGVtKHhsb2dSZXN0b3JlQ21kKTsK LQorCXJjID0gcGdfc3lzdGVtKHhsb2dSZXN0b3JlQ21kKTsKIAlQb3N0UmVzdG9yZUNvbW1hbmQo KTsKLQogCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKKwogCXBmcmVlKHhsb2dSZXN0b3JlQ21k KTsKIAogCWlmIChyYyA9PSAwKQpAQCAtMzI4LDcgKzMyNCw3IEBAIEV4ZWN1dGVSZWNvdmVyeUNv bW1hbmQoY29uc3QgY2hhciAqY29tbWFuZCwgY29uc3QgY2hhciAqY29tbWFuZE5hbWUsCiAJICov CiAJZmZsdXNoKE5VTEwpOwogCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydCh3YWl0X2V2ZW50X2lu Zm8pOwotCXJjID0gc3lzdGVtKHhsb2dSZWNvdmVyeUNtZCk7CisJcmMgPSBwZ19zeXN0ZW0oeGxv Z1JlY292ZXJ5Q21kKTsKIAlwZ3N0YXRfcmVwb3J0X3dhaXRfZW5kKCk7CiAKIAlwZnJlZSh4bG9n UmVjb3ZlcnlDbWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYXJjaGl2ZS9zaGVsbF9hcmNo aXZlLmMgYi9zcmMvYmFja2VuZC9hcmNoaXZlL3NoZWxsX2FyY2hpdmUuYwppbmRleCAwYjQyN2E2 ODgwOS4uMDUxYWVkYTlmYzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FyY2hpdmUvc2hlbGxf YXJjaGl2ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FyY2hpdmUvc2hlbGxfYXJjaGl2ZS5jCkBAIC0y Miw2ICsyMiw3IEBACiAjaW5jbHVkZSAiYXJjaGl2ZS9zaGVsbF9hcmNoaXZlLmgiCiAjaW5jbHVk ZSAiY29tbW9uL3BlcmNlbnRyZXBsLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAi c3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInV0aWxzL3dhaXRfZXZlbnQuaCIKIAogc3RhdGljIGJv b2wgc2hlbGxfYXJjaGl2ZV9jb25maWd1cmVkKEFyY2hpdmVNb2R1bGVTdGF0ZSAqc3RhdGUpOwpA QCAtNzgsNyArNzksNyBAQCBzaGVsbF9hcmNoaXZlX2ZpbGUoQXJjaGl2ZU1vZHVsZVN0YXRlICpz dGF0ZSwgY29uc3QgY2hhciAqZmlsZSwKIAogCWZmbHVzaChOVUxMKTsKIAlwZ3N0YXRfcmVwb3J0 X3dhaXRfc3RhcnQoV0FJVF9FVkVOVF9BUkNISVZFX0NPTU1BTkQpOwotCXJjID0gc3lzdGVtKHhs b2dhcmNoY21kKTsKKwlyYyA9IHBnX3N5c3RlbSh4bG9nYXJjaGNtZCk7CiAJcGdzdGF0X3JlcG9y dF93YWl0X2VuZCgpOwogCiAJaWYgKHJjICE9IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9z dG9yYWdlL2ZpbGUvZmQuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9mZC5jCmluZGV4IDAx ZjFiZDZlNjg3Li4yMTY5NmZhZDBmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9m aWxlL2ZkLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKQEAgLTgwLDYgKzgw LDcgQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpZm5kZWYgV0lOMzIKICNpbmNsdWRlIDxz eXMvbW1hbi5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CiAjZW5kaWYKICNpbmNsdWRlIDxsaW1p dHMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KQEAgLTkxLDYgKzkyLDcgQEAKICNpbmNsdWRlICJj b21tb24vZmlsZV9wZXJtLmgiCiAjaW5jbHVkZSAiY29tbW9uL2ZpbGVfdXRpbHMuaCIKICNpbmNs dWRlICJjb21tb24vcGdfcHJuZy5oIgorI2luY2x1ZGUgImxpYnBxL3Bxc2lnbmFsLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicG9zdG1h c3Rlci9zdGFydHVwLmgiCkBAIC0xNTksNiArMTYxLDEzIEBAIGludAkJCW1heF9maWxlc19wZXJf cHJvY2VzcyA9IDEwMDA7CiAgKi8KIGludAkJCW1heF9zYWZlX2ZkcyA9IEZEX01JTkZSRUU7CS8q IGRlZmF1bHQgaWYgbm90IGNoYW5nZWQgKi8KIAorI2lmZGVmIEhBVkVfR0VUUkxJTUlUCitzdGF0 aWMgYm9vbCBzYXZlZF9vcmlnaW5hbF9tYXhfb3Blbl9maWxlczsKK3N0YXRpYyBzdHJ1Y3Qgcmxp bWl0IG9yaWdpbmFsX21heF9vcGVuX2ZpbGVzOworc3RhdGljIHN0cnVjdCBybGltaXQgY3VzdG9t X21heF9vcGVuX2ZpbGVzOworI2VuZGlmCisKKwogLyogV2hldGhlciBpdCBpcyBzYWZlIHRvIGNv bnRpbnVlIHJ1bm5pbmcgYWZ0ZXIgZnN5bmMoKSBmYWlscy4gKi8KIGJvb2wJCWRhdGFfc3luY19y ZXRyeSA9IGZhbHNlOwogCkBAIC0yNjUsNiArMjc0LDExIEBAIHR5cGVkZWYgc3RydWN0CiAJCUZJ TEUJICAgKmZpbGU7CiAJCURJUgkJICAgKmRpcjsKIAkJaW50CQkJZmQ7CisJCXN0cnVjdAorCQl7 CisJCQlGSUxFCSAgICpmaWxlOworCQkJcGlkX3QJCXBpZDsKKwkJfQkJCXBpcGU7CiAJfQkJCWRl c2M7CiB9IEFsbG9jYXRlRGVzYzsKIApAQCAtOTQ3LDYgKzk2MSwxMjggQEAgSW5pdFRlbXBvcmFy eUZpbGVBY2Nlc3Modm9pZCkKICNlbmRpZgogfQogCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRo ZSBwYXNzZWQgaW4gaGlnaGVzdGZkIGlzIHRoZSBsYXN0IG9uZSB0aGF0IHdlJ3JlIGFsbG93ZWQK KyAqIHRvIG9wZW4gYmFzZWQgb24gb3VyLiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpZgor ICovCitzdGF0aWMgYm9vbAorSXNPcGVuRmlsZUxpbWl0KGludCBoaWdoZXN0ZmQpCit7CisjaWZk ZWYgSEFWRV9HRVRSTElNSVQKKwlpZiAoIXNhdmVkX29yaWdpbmFsX21heF9vcGVuX2ZpbGVzKQor CXsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiBoaWdoZXN0ZmQgPj0gY3VzdG9tX21h eF9vcGVuX2ZpbGVzLnJsaW1fY3VyIC0gMTsKKyNlbHNlCisJcmV0dXJuIGZhbHNlOworI2VuZGlm Cit9CisKKy8qCisgKiBJbmNyZWFzZXMgdGhlIG9wZW4gZmlsZSBsaW1pdCAoUkxJTUlUX05PRklM RSkgYnkgdGhlIHJlcXVlc3RlZCBhbW91bnQuCisgKiBSZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1 bCwgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbAorSW5jcmVhc2VPcGVuRmlsZUxp bWl0KGludCBleHRyYV9maWxlcykKK3sKKyNpZmRlZiBIQVZFX0dFVFJMSU1JVAorCXN0cnVjdCBy bGltaXQgcmxpbTsKKworCWlmICghc2F2ZWRfb3JpZ2luYWxfbWF4X29wZW5fZmlsZXMpCisJewor CQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmxpbSA9IGN1c3RvbV9tYXhfb3Blbl9maWxlczsKKwor CS8qIElmIHdlJ3JlIGFscmVhZHkgYXQgdGhlIG1heCB3ZSByZWFjaGVkIG91ciBsaW1pdCAqLwor CWlmIChybGltLnJsaW1fY3VyID09IG9yaWdpbmFsX21heF9vcGVuX2ZpbGVzLnJsaW1fbWF4KQor CQlyZXR1cm4gZmFsc2U7CisKKwkvKiBPdGhlcndpc2UgdHJ5IHRvIGluY3JlYXNlIHRoZSBzb2Z0 IGxpbWl0IHRvIHdoYXQgd2UgbmVlZCAqLworCXJsaW0ucmxpbV9jdXIgPSBNaW4ocmxpbS5ybGlt X2N1ciArIGV4dHJhX2ZpbGVzLCBybGltLnJsaW1fbWF4KTsKKworCWlmIChzZXRybGltaXQoUkxJ TUlUX05PRklMRSwgJnJsaW0pICE9IDApCisJeworCQkvKiBXZSBtYWRlIHN1cmUgbm90IHRvIGV4 Y2VlZCB0aGUgaGFyZCBsaW1pdCwgc28gdGhpcyBzaG91bGRuJ3QgZmFpbCAqLworCQllcmVwb3J0 KFdBUk5JTkcsIChlcnJtc2coInNldHJsaW1pdCBmYWlsZWQ6ICVtIikpKTsKKwkJcmV0dXJuIGZh bHNlOworCX0KKworCWN1c3RvbV9tYXhfb3Blbl9maWxlcyA9IHJsaW07CisKKwllbG9nKExPRywg ImluY3JlYXNlZCBvcGVuIGZpbGUgbGltaXQgdG8gJWxkIiwgKGxvbmcpIHJsaW0ucmxpbV9jdXIp OworCisJcmV0dXJuIHRydWU7CisjZWxzZQorCXJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisv KgorICogU2F2ZXMgdGhlIG9yaWdpbmFsIG9wZW4gZmlsZSBsaW1pdCAoUkxJTUlUX05PRklMRSkg dGhlIGZpcnN0IHRpbWUgd2hlbiB0aGlzCisgKiBpcyBjYWxsZWQuIElmIGNhbGxlZCBhZ2FpbiBp dCdzIGEgbm8tb3AuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIGZhbHNlIG90 aGVyd2lzZS4KKyAqLworc3RhdGljIHZvaWQKK1NhdmVPcmlnaW5hbE9wZW5GaWxlTGltaXQodm9p ZCkKK3sKKyNpZmRlZiBIQVZFX0dFVFJMSU1JVAorCWludAkJCXN0YXR1czsKKworCWlmIChzYXZl ZF9vcmlnaW5hbF9tYXhfb3Blbl9maWxlcykKKwl7CisJCS8qIEFscmVhZHkgc2F2ZWQsIG5vIG5l ZWQgdG8gZG8gaXQgYWdhaW4gKi8KKwkJcmV0dXJuOworCX0KKworCXN0YXR1cyA9IGdldHJsaW1p dChSTElNSVRfTk9GSUxFLCAmb3JpZ2luYWxfbWF4X29wZW5fZmlsZXMpOworCWlmIChzdGF0dXMg IT0gMCkKKwl7CisJCWVyZXBvcnQoV0FSTklORywgKGVycm1zZygiZ2V0cmxpbWl0IGZhaWxlZDog JW0iKSkpOworCQlyZXR1cm47CisJfQorCisJY3VzdG9tX21heF9vcGVuX2ZpbGVzID0gb3JpZ2lu YWxfbWF4X29wZW5fZmlsZXM7CisJc2F2ZWRfb3JpZ2luYWxfbWF4X29wZW5fZmlsZXMgPSB0cnVl OworCXJldHVybjsKKyNlbmRpZgorfQorCisjaWZuZGVmIFdJTjMyCisvKgorICogVXNlT3JpZ2lu YWxPcGVuRmlsZUxpbWl0IC0tLSBNYWtlcyB0aGUgcHJvY2VzcyB1c2UgdGhlIG9yaWdpbmFsIG9w ZW4gZmlsZQorICogCQlsaW1pdCB0aGF0IHdhcyBwcmVzZW50IGF0IHBvc3RtYXN0ZXIgc3RhcnQu CisgKgorICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBzcGF3bmluZyBzdWJwcm9jZXNz ZXMgdGhhdCBtaWdodCB1c2Ugc2VsZWN0KDIpCisgKiB3aGljaCBjYW4gb25seSBoYW5kbGUgZmls ZSBkZXNjcmlwdG9ycyB1cCB0byAxMDI0LgorICovCitzdGF0aWMgdm9pZAorVXNlT3JpZ2luYWxP cGVuRmlsZUxpbWl0KHZvaWQpCit7CisjaWZkZWYgSEFWRV9HRVRSTElNSVQKKwlpZiAoIXNhdmVk X29yaWdpbmFsX21heF9vcGVuX2ZpbGVzKQorCXsKKwkJcmV0dXJuOworCX0KKworCWlmIChjdXN0 b21fbWF4X29wZW5fZmlsZXMucmxpbV9jdXIgPT0gb3JpZ2luYWxfbWF4X29wZW5fZmlsZXMucmxp bV9jdXIpCisJeworCQkvKiBOb3QgY2hhbmdlZCwgc28gbm8gbmVlZCB0byBjYWxsIHNldHJsaW1p dCBhdCBhbGwgKi8KKwkJcmV0dXJuOworCX0KKworCWlmIChzZXRybGltaXQoUkxJTUlUX05PRklM RSwgJm9yaWdpbmFsX21heF9vcGVuX2ZpbGVzKSAhPSAwKQorCXsKKwkJZXJlcG9ydChXQVJOSU5H LCAoZXJybXNnKCJzZXRybGltaXQgZmFpbGVkOiAlbSIpKSk7CisJfQorI2VuZGlmCit9CisjZW5k aWYJCQkJCQkJLyogV0lOMzIgKi8KKwogLyoKICAqIGNvdW50X3VzYWJsZV9mZHMgLS0tIGNvdW50 IGhvdyBtYW55IEZEcyB0aGUgc3lzdGVtIHdpbGwgbGV0IHVzIG9wZW4sCiAgKgkJYW5kIGVzdGlt YXRlIGhvdyBtYW55IGFyZSBhbHJlYWR5IG9wZW4uCkBAIC05NzAsMzggKzExMDYsMzkgQEAgY291 bnRfdXNhYmxlX2ZkcyhpbnQgbWF4X3RvX3Byb2JlLCBpbnQgKnVzYWJsZV9mZHMsIGludCAqYWxy ZWFkeV9vcGVuKQogCWludAkJCWhpZ2hlc3RmZCA9IDA7CiAJaW50CQkJajsKIAotI2lmZGVmIEhB VkVfR0VUUkxJTUlUCi0Jc3RydWN0IHJsaW1pdCBybGltOwotCWludAkJCWdldHJsaW1pdF9zdGF0 dXM7Ci0jZW5kaWYKLQogCXNpemUgPSAxMDI0OwogCWZkID0gKGludCAqKSBwYWxsb2Moc2l6ZSAq IHNpemVvZihpbnQpKTsKIAotI2lmZGVmIEhBVkVfR0VUUkxJTUlUCi0JZ2V0cmxpbWl0X3N0YXR1 cyA9IGdldHJsaW1pdChSTElNSVRfTk9GSUxFLCAmcmxpbSk7Ci0JaWYgKGdldHJsaW1pdF9zdGF0 dXMgIT0gMCkKLQkJZXJlcG9ydChXQVJOSU5HLCAoZXJybXNnKCJnZXRybGltaXQgZmFpbGVkOiAl bSIpKSk7Ci0jZW5kaWYJCQkJCQkJLyogSEFWRV9HRVRSTElNSVQgKi8KKwlTYXZlT3JpZ2luYWxP cGVuRmlsZUxpbWl0KCk7CiAKIAkvKiBkdXAgdW50aWwgZmFpbHVyZSBvciBwcm9iZSBsaW1pdCBy ZWFjaGVkICovCiAJZm9yICg7OykKIAl7CiAJCWludAkJCXRoaXNmZDsKIAotI2lmZGVmIEhBVkVf R0VUUkxJTUlUCi0KIAkJLyoKIAkJICogZG9uJ3QgZ28gYmV5b25kIFJMSU1JVF9OT0ZJTEU7IGNh dXNlcyBpcnJpdGF0aW5nIGtlcm5lbCBsb2dzIG9uCiAJCSAqIHNvbWUgcGxhdGZvcm1zCiAJCSAq LwotCQlpZiAoZ2V0cmxpbWl0X3N0YXR1cyA9PSAwICYmIGhpZ2hlc3RmZCA+PSBybGltLnJsaW1f Y3VyIC0gMSkKLQkJCWJyZWFrOwotI2VuZGlmCisJCWlmIChJc09wZW5GaWxlTGltaXQoaGlnaGVz dGZkKSkKKwkJeworCQkJaWYgKCFJbmNyZWFzZU9wZW5GaWxlTGltaXQobWF4X3RvX3Byb2JlIC0g dXNlZCkpCisJCQkJYnJlYWs7CisJCX0KIAogCQl0aGlzZmQgPSBkdXAoMik7CiAJCWlmICh0aGlz ZmQgPCAwKQogCQl7CisJCQkvKgorCQkJICogRXZlbnRob3VnaCB3ZSBkbyB0aGUgcHJlLWNoZWNr IGFib3ZlLCBpdCdzIHN0aWxsIHBvc3NpYmxlIHRoYXQKKwkJCSAqIHRoZSBjYWxsIHRvIGR1cCBm YWlscyB3aXRoIEVNRklMRS4gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBsYXN0CisJCQkgKiBmaWxl IGRlc2NyaXB0b3Igd2FzIGFscmVhZHkgYXNzaWduZWQgdG8gYW4gImFscmVhZHkgb3BlbiIgZmls ZS4KKwkJCSAqIE9uZSBleGFtcGxlIG9mIHRoaXMgaGFwcGVuaW5nLCBpcyBpZiB3ZSdyZSBhbHJl YWR5IGF0IHRoZSBzb2Z0CisJCQkgKiBsaW1pdCB3aGVuIHdlIGNhbGwgY291bnRfdXNhYmxlX2Zk cy4KKwkJCSAqLworCQkJaWYgKGVycm5vID09IEVNRklMRSAmJiBJbmNyZWFzZU9wZW5GaWxlTGlt aXQobWF4X3RvX3Byb2JlIC0gdXNlZCkpCisJCQkJY29udGludWU7CisKIAkJCS8qIEV4cGVjdCBF TUZJTEUgb3IgRU5GSUxFLCBlbHNlIGl0J3MgZmlzaHkgKi8KIAkJCWlmIChlcnJubyAhPSBFTUZJ TEUgJiYgZXJybm8gIT0gRU5GSUxFKQogCQkJCWVsb2coV0FSTklORywgImR1cGxpY2F0aW5nIHN0 ZGVyciBmaWxlIGRlc2NyaXB0b3IgZmFpbGVkIGFmdGVyICVkIHN1Y2Nlc3NlczogJW0iLCB1c2Vk KTsKQEAgLTI3MTgsNiArMjg1NSwyNjUgQEAgT3BlblRyYW5zaWVudEZpbGVQZXJtKGNvbnN0IGNo YXIgKmZpbGVOYW1lLCBpbnQgZmlsZUZsYWdzLCBtb2RlX3QgZmlsZU1vZGUpCiAJcmV0dXJuIC0x OwkJCQkJLyogZmFpbHVyZSAqLwogfQogCisjaWZuZGVmIFdJTjMyCisvKgorICogSGVscGVyIGZ1 bmN0aW9uIHRvIGZvcmsgYSBjaGlsZCBwcm9jZXNzIGZvciBleGVjdXRpbmcgYSBzaGVsbCBjb21t YW5kLgorICoKKyAqIFRoaXMgaGFuZGxlcyBhbGwgdGhlIHN0YW5kYXJkIGNoaWxkIHByb2Nlc3Mg c2V0dXA6CisgKiAtIEJsb2NrcyBzaWduYWxzIGJlZm9yZSBmb3JrIHRvIGF2b2lkIHJhY2UgY29u ZGl0aW9ucworICogLSBMb3dlcnMgdGhlIGZpbGUgbGltaXQgaW4gdGhlIGNoaWxkIChVc2VPcmln aW5hbE9wZW5GaWxlTGltaXQpCisgKiAtIFJlc2V0cyBzaWduYWwgaGFuZGxlcnMgdGhhdCB0aGUg YmFja2VuZCBoYXMgc2V0IHRvIFNJR19JR04KKyAqIC0gVW5ibG9ja3Mgc2lnbmFscyBpbiBib3Ro IHBhcmVudCBhbmQgY2hpbGQgYWZ0ZXIgc2V0dXAKKyAqCisgKiBSZXR1cm5zIC0xIG9uIGZvcmsg ZmFpbHVyZSwgMCBpbiB0aGUgY2hpbGQsIG9yIHRoZSBjaGlsZCBQSUQgaW4gdGhlIHBhcmVudC4K KyAqIEFmdGVyIHRoaXMgcmV0dXJucyBpbiB0aGUgY2hpbGQsIHRoZSBjYWxsZXIgc2hvdWxkIGRv IGFueSBhZGRpdGlvbmFsIHNldHVwCisgKiAobGlrZSBwaXBlIHJlZGlyZWN0aW9uKSBhbmQgdGhl biBjYWxsIGV4ZWNfc2hlbGxfY29tbWFuZCgpLgorICovCitzdGF0aWMgcGlkX3QKK2ZvcmtfZm9y X3NoZWxsX2NvbW1hbmQodm9pZCkKK3sKKwlwaWRfdAkJcGlkOworCXNpZ3NldF90CXNhdmVfbWFz azsKKworCS8qIEJsb2NrIHNpZ25hbHMgZHVyaW5nIGZvcmsgdG8gYXZvaWQgcmFjZSBjb25kaXRp b25zIGluIGNoaWxkIHNldHVwICovCisJc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZCbG9ja1Np ZywgJnNhdmVfbWFzayk7CisKKwlwaWQgPSBmb3JrKCk7CisJaWYgKHBpZCA9PSAwKQorCXsKKwkJ LyogQ2hpbGQgcHJvY2VzcyAqLworCQlVc2VPcmlnaW5hbE9wZW5GaWxlTGltaXQoKTsKKworCQkv KgorCQkgKiBSZXNldCBzaWduYWwgaGFuZGxlcnMgdG8gZGVmYXVsdC4gVGhlIGJhY2tlbmQgaWdu b3JlcyB0aGVzZSwgYW5kCisJCSAqIFNJR19JR04gaXMgcHJlc2VydmVkIGFjcm9zcyBleGVjLCBz byB3ZSBtdXN0IHJlc2V0IHRoZW0gdG8gYWxsb3cKKwkJICogdGhlIGNoaWxkIHByb2Nlc3MgdG8g cmVzcG9uZCB0byBzaWduYWxzIG5vcm1hbGx5LgorCQkgKi8KKwkJcHFzaWduYWwoU0lHSU5ULCBT SUdfREZMKTsKKwkJcHFzaWduYWwoU0lHUVVJVCwgU0lHX0RGTCk7CisJCXBxc2lnbmFsKFNJR1BJ UEUsIFNJR19ERkwpOworCX0KKworCS8qIFJlc3RvcmUvdW5ibG9jayBzaWduYWxzIGluIGJvdGgg cGFyZW50IGFuZCBjaGlsZCAoYWxzbyBpZiBmb3JrIGZhaWxlZCkgKi8KKwlzaWdwcm9jbWFzayhT SUdfU0VUTUFTSywgJnNhdmVfbWFzaywgTlVMTCk7CisKKwlyZXR1cm4gcGlkOworfQorCisvKgor ICogRXhlY3V0ZSBhIHNoZWxsIGNvbW1hbmQgdmlhIC9iaW4vc2guIFRoaXMgZnVuY3Rpb24gZG9l cyBub3QgcmV0dXJuLgorICogU2hvdWxkIGJlIGNhbGxlZCBpbiB0aGUgY2hpbGQgcHJvY2VzcyBh ZnRlciBmb3JrX2Zvcl9zaGVsbF9jb21tYW5kKCkuCisgKi8KK3N0YXRpYyBwZ19ub3JldHVybiB2 b2lkCitleGVjX3NoZWxsX2NvbW1hbmQoY29uc3QgY2hhciAqY29tbWFuZCkKK3sKKwlleGVjbCgi L2Jpbi9zaCIsICJzaCIsICItYyIsIGNvbW1hbmQsIChjaGFyICopIE5VTEwpOworCV9leGl0KDEy Nyk7Cit9CisjZW5kaWYKKworLyoKKyAqIHBnX3N5c3RlbSAtIEN1c3RvbSBzeXN0ZW0oKSB0aGF0 IGxvd2VycyBmaWxlIGxpbWl0IGluIGNoaWxkIHByb2Nlc3MuCisgKgorICogVGhpcyBpcyBuZWVk ZWQgYmVjYXVzZSB3ZSBtYXkgaGF2ZSBidW1wZWQgdGhlIHNvZnQgUkxJTUlUX05PRklMRSBsaW1p dAorICogYWJvdmUgaXRzIG9yaWdpbmFsIHZhbHVlLiBUaGUgY2hpbGQgcHJvY2VzcyBzaG91bGQg dXNlIHRoZSBvcmlnaW5hbCBsaW1pdAorICogdG8gYXZvaWQgaXNzdWVzIHdpdGggcHJvZ3JhbXMg dGhhdCB1c2Ugc2VsZWN0KDIpLCB3aGljaCBjYW4gb25seSBoYW5kbGUKKyAqIEZEcyB1cCB0byBG RF9TRVRTSVpFICh0eXBpY2FsbHkgMTAyNCkuCisgKgorICogV2UgY2FuJ3QganVzdCBjYWxsIFVz ZU9yaWdpbmFsT3BlbkZpbGVMaW1pdCgpIGJlZm9yZSB0aGUgc3RhbmRhcmQgc3lzdGVtKCkKKyAq IGJlY2F1c2UgdGhhdCB3b3VsZCB0ZW1wb3JhcmlseSBsb3dlciB0aGUgbGltaXQgaW4gdGhlIHBh cmVudCBwcm9jZXNzLAorICogd2hpY2ggY291bGQgY2F1c2UgY29uY3VycmVudCBmaWxlIG9wZXJh dGlvbnMgdG8gZmFpbCBpbiBhIG11bHRpdGhyZWFkZWQKKyAqIGVudmlyb25tZW50LgorICovCitp bnQKK3BnX3N5c3RlbShjb25zdCBjaGFyICpjb21tYW5kKQoreworI2lmbmRlZiBXSU4zMgorCXBp ZF90CQlwaWQ7CisJaW50CQkJc3RhdHVzOworCXBpZF90CQl3YWl0cmVzdWx0OworCisJcGlkID0g Zm9ya19mb3Jfc2hlbGxfY29tbWFuZCgpOworCWlmIChwaWQgPT0gKHBpZF90KSAtMSkKKwkJcmV0 dXJuIC0xOworCWlmIChwaWQgPT0gMCkKKwkJZXhlY19zaGVsbF9jb21tYW5kKGNvbW1hbmQpOwkv KiBkb2VzIG5vdCByZXR1cm4gKi8KKworCS8qIFdhaXQgZm9yIGNoaWxkICovCisJZG8KKwl7CisJ CXdhaXRyZXN1bHQgPSB3YWl0cGlkKHBpZCwgJnN0YXR1cywgMCk7CisJfSB3aGlsZSAod2FpdHJl c3VsdCA9PSAocGlkX3QpIC0xICYmIGVycm5vID09IEVJTlRSKTsKKworCWlmICh3YWl0cmVzdWx0 ICE9IHBpZCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIHN0YXR1czsKKyNlbHNlCisJLyogT24g V2luZG93cywganVzdCB1c2Ugc3RhbmRhcmQgc3lzdGVtKCkgLSBubyBSTElNSVRfTk9GSUxFIGJ1 bXBpbmcgdGhlcmUgKi8KKwlyZXR1cm4gc3lzdGVtKGNvbW1hbmQpOworI2VuZGlmCit9CisKKwor LyoKKyAqIHBnX3BvcGVuIC0gQ3VzdG9tIHBvcGVuKCkgdGhhdCBsb3dlcnMgZmlsZSBsaW1pdCBp biBjaGlsZCBwcm9jZXNzLgorICoKKyAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugd2UgbWF5IGhh dmUgYnVtcGVkIHRoZSBzb2Z0IFJMSU1JVF9OT0ZJTEUgbGltaXQKKyAqIGFib3ZlIGl0cyBvcmln aW5hbCB2YWx1ZS4gVGhlIGNoaWxkIHByb2Nlc3Mgc2hvdWxkIHVzZSB0aGUgb3JpZ2luYWwgbGlt aXQKKyAqIHRvIGF2b2lkIGlzc3VlcyB3aXRoIHByb2dyYW1zIHRoYXQgdXNlIHNlbGVjdCgyKSwg d2hpY2ggY2FuIG9ubHkgaGFuZGxlCisgKiBGRHMgdXAgdG8gRkRfU0VUU0laRSAodHlwaWNhbGx5 IDEwMjQpLgorICoKKyAqIFdlIGNhbid0IGp1c3QgY2FsbCBVc2VPcmlnaW5hbE9wZW5GaWxlTGlt aXQoKSBiZWZvcmUgcG9wZW4oKSBvZiB0aGUgc3RkbGliCisgKiBiZWNhdXNlIHBvcGVuKCkgb3Bl bnMgYSBmaWxlIGRlc2NyaXB0b3IgaW4gdGhlIHBhcmVudCBwcm9jZXNzICh0aGUgcGFyZW50J3MK KyAqIHNpZGUgb2YgdGhlIHBpcGUpLCB3aGljaCB3b3VsZCBmYWlsIGlmIHdlJ3JlIGFscmVhZHkg YWJvdmUgdGhlIG9yaWdpbmFsCisgKiBsaW1pdC4KKyAqCisgKiBSZXR1cm5zIHRoZSBGSUxFKiBm b3IgdGhlIHBpcGUsIG9yIE5VTEwgb24gZXJyb3IuCisgKiBPbiBzdWNjZXNzLCAqY2hpbGRfcGlk IGlzIHNldCB0byB0aGUgY2hpbGQncyBQSUQgKG9yIDAgb24gV2luZG93cyB3aGVyZQorICogd2Ug dXNlIHN0YW5kYXJkIHBvcGVuKS4KKyAqLworc3RhdGljIEZJTEUgKgorcGdfcG9wZW4oY29uc3Qg Y2hhciAqY29tbWFuZCwgY29uc3QgY2hhciAqbW9kZSwgcGlkX3QgKmNoaWxkX3BpZCkKK3sKKyNp Zm5kZWYgV0lOMzIKKwlpbnQJCQlwaXBlX2Zkc1syXTsKKwlpbnQJCQlwYXJlbnRfZmQ7CisJaW50 CQkJY2hpbGRfZmQ7CisJaW50CQkJY2hpbGRfdGFyZ2V0X2ZkOworCXBpZF90CQlwaWQ7CisJRklM RQkgICAqcGlwZV9maWxlOworCWludAkJCXNhdmVfZXJybm87CisKKwkvKiBPbmx5ICJyIiBhbmQg InciIG1vZGVzIGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAobW9kZVswXSA9PSAncicpCisJeworCQkv KiBQYXJlbnQgcmVhZHMgZnJvbSBjaGlsZCdzIHN0ZG91dCAqLworCQlwYXJlbnRfZmQgPSAwOwor CQljaGlsZF9mZCA9IDE7CisJCWNoaWxkX3RhcmdldF9mZCA9IFNURE9VVF9GSUxFTk87CisJfQor CWVsc2UgaWYgKG1vZGVbMF0gPT0gJ3cnKQorCXsKKwkJLyogUGFyZW50IHdyaXRlcyB0byBjaGls ZCdzIHN0ZGluICovCisJCXBhcmVudF9mZCA9IDE7CisJCWNoaWxkX2ZkID0gMDsKKwkJY2hpbGRf dGFyZ2V0X2ZkID0gU1RESU5fRklMRU5POworCX0KKwllbHNlCisJeworCQllcnJubyA9IEVJTlZB TDsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJLyoKKwkgKiBTZXQgY2xvc2Utb24tZXhlYyB0byBw cmV2ZW50IG90aGVyIGNvbmN1cnJlbnRseSBzcGF3bmVkIGNoaWxkIHByb2Nlc3NlcworCSAqIGZy b20gaW5oZXJpdGluZyB0aGUgcGlwZSBmaWxlIGRlc2NyaXB0b3JzLiBUaGlzIGlzIGltcG9zc2li bGUgd2hpbGUKKwkgKiB3ZSdyZSBub3QgdXNpbmcgdGhyZWFkcywgYnV0IHNpbmNlIHRoaXMgaXMg cGFydCBvZiBhZGRpbmcgc3VjaAorCSAqIG11bHRpdGhyZWFkaW5nIHN1cHBvcnQgbGV0J3MgcHJl dGVuZCB0aGF0IHdlIGFscmVhZHkgaGF2ZSBpdC4gRm9yCisJICogc3lzdGVtcyB0aGF0IGRvbid0 IGhhdmUgcGlwZTIsIHRoZXJlJ3MgYWx3YXlzIGEgcmlzayBvZiByYWNlCisJICogY29uZGl0aW9u cywgYnV0IGxldCdzIG1pbmltaXplIHRoYXQgYnkgcXVpY2tseSBzZXR0aW5nIHRoZQorCSAqIGNs b3NlLW9uLWV4ZWMgZmxhZyB3aXRoIGZuY3RsLgorCSAqLworI2lmZGVmIEhBVkVfUElQRTIKKwlp ZiAocGlwZTIocGlwZV9mZHMsIE9fQ0xPRVhFQykgPCAwKQorCQlyZXR1cm4gTlVMTDsKKyNlbHNl CisJaWYgKHBpcGUocGlwZV9mZHMpIDwgMCkKKwkJcmV0dXJuIE5VTEw7CisJaWYgKGZjbnRsKHBp cGVfZmRzWzBdLCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSB8fAorCQlmY250bChwaXBlX2Zk c1sxXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpCisJeworCQlzYXZlX2Vycm5vID0gZXJy bm87CisJCWNsb3NlKHBpcGVfZmRzWzBdKTsKKwkJY2xvc2UocGlwZV9mZHNbMV0pOworCQllcnJu byA9IHNhdmVfZXJybm87CisJCXJldHVybiBOVUxMOworCX0KKyNlbmRpZgorCisJZmZsdXNoKE5V TEwpOworCisJcGlkID0gZm9ya19mb3Jfc2hlbGxfY29tbWFuZCgpOworCWlmIChwaWQgPCAwKQor CXsKKwkJLyogZm9yayBmYWlsZWQgKi8KKwkJc2F2ZV9lcnJubyA9IGVycm5vOworCQljbG9zZShw aXBlX2Zkc1swXSk7CisJCWNsb3NlKHBpcGVfZmRzWzFdKTsKKwkJZXJybm8gPSBzYXZlX2Vycm5v OworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAocGlkID09IDApCisJeworCQkvKiBDaGlsZCBw cm9jZXNzIC0gc2V0IHVwIHBpcGUgcmVkaXJlY3Rpb24gYW5kIGV4ZWMgKi8KKwkJY2xvc2UocGlw ZV9mZHNbcGFyZW50X2ZkXSk7CisJCWlmIChwaXBlX2Zkc1tjaGlsZF9mZF0gIT0gY2hpbGRfdGFy Z2V0X2ZkKQorCQl7CisJCQlkdXAyKHBpcGVfZmRzW2NoaWxkX2ZkXSwgY2hpbGRfdGFyZ2V0X2Zk KTsKKwkJCWNsb3NlKHBpcGVfZmRzW2NoaWxkX2ZkXSk7CisJCX0KKworCQlleGVjX3NoZWxsX2Nv bW1hbmQoY29tbWFuZCk7CS8qIGRvZXMgbm90IHJldHVybiAqLworCX0KKworCS8qIFBhcmVudCBw cm9jZXNzICovCisJY2xvc2UocGlwZV9mZHNbY2hpbGRfZmRdKTsKKwlwaXBlX2ZpbGUgPSBmZG9w ZW4ocGlwZV9mZHNbcGFyZW50X2ZkXSwgbW9kZSk7CisJaWYgKHBpcGVfZmlsZSA9PSBOVUxMKQor CXsKKwkJc2F2ZV9lcnJubyA9IGVycm5vOworCQljbG9zZShwaXBlX2Zkc1twYXJlbnRfZmRdKTsK KwkJZXJybm8gPSBzYXZlX2Vycm5vOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwkqY2hpbGRfcGlk ID0gcGlkOworCXJldHVybiBwaXBlX2ZpbGU7CisjZWxzZQorCS8qIE9uIFdpbmRvd3MsIGp1c3Qg dXNlIHN0YW5kYXJkIHBvcGVuIC0gbm8gUkxJTUlUX05PRklMRSBidW1waW5nIHRoZXJlICovCisJ ZmZsdXNoKE5VTEwpOworCSpjaGlsZF9waWQgPSAwOworCXJldHVybiBwb3Blbihjb21tYW5kLCBt b2RlKTsKKyNlbmRpZgorfQorCisvKgorICogcGdfcGNsb3NlIC0gQ2xvc2UgYSBwaXBlIG9wZW5l ZCBieSBwZ19wb3BlbigpLgorICoKKyAqIE9uIFVuaXgsIHRoaXMgY2xvc2VzIHRoZSBGSUxFKiBh bmQgd2FpdHMgZm9yIHRoZSBjaGlsZCBwcm9jZXNzLgorICogT24gV2luZG93cywgdGhpcyBqdXN0 IGNhbGxzIHBjbG9zZSgpLgorICoKKyAqIFJldHVybnMgdGhlIGNoaWxkJ3MgZXhpdCBzdGF0dXMg KGxpa2UgcGNsb3NlKSwgb3IgLTEgb24gZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3BnX3BjbG9z ZShGSUxFICpmcCwgcGlkX3QgY2hpbGRfcGlkKQoreworI2lmbmRlZiBXSU4zMgorCWludAkJCXN0 YXR1czsKKwlwaWRfdAkJd2FpdHJlc3VsdDsKKworCS8qIENsb3NlIHRoZSBGSUxFKiBmaXJzdCAq LworCWlmIChmY2xvc2UoZnApICE9IDApCisJCXJldHVybiAtMTsKKworCS8qIFRoZW4gd2FpdCBm b3IgdGhlIGNoaWxkIHByb2Nlc3MsIGxpa2UgcGNsb3NlKCkgZG9lcyAqLworCWRvCisJeworCQl3 YWl0cmVzdWx0ID0gd2FpdHBpZChjaGlsZF9waWQsICZzdGF0dXMsIDApOworCX0gd2hpbGUgKHdh aXRyZXN1bHQgPT0gKHBpZF90KSAtMSAmJiBlcnJubyA9PSBFSU5UUik7CisKKwlpZiAod2FpdHJl c3VsdCA9PSBjaGlsZF9waWQpCisJCXJldHVybiBzdGF0dXM7CisJZWxzZQorCQlyZXR1cm4gLTE7 CisjZWxzZQorCSh2b2lkKSBjaGlsZF9waWQ7CQkJLyogdW51c2VkIG9uIFdpbmRvd3MgKi8KKwly ZXR1cm4gcGNsb3NlKGZwKTsKKyNlbmRpZgorfQorCiAvKgogICogUm91dGluZXMgdGhhdCB3YW50 IHRvIGluaXRpYXRlIGEgcGlwZSBzdHJlYW0gc2hvdWxkIHVzZSBPcGVuUGlwZVN0cmVhbQogICog cmF0aGVyIHRoYW4gcGxhaW4gcG9wZW4oKS4gIFRoaXMgbGV0cyBmZC5jIGRlYWwgd2l0aCBmcmVl aW5nIEZEcyBpZgpAQCAtMjczMiw2ICszMTI4LDcgQEAgT3BlblBpcGVTdHJlYW0oY29uc3QgY2hh ciAqY29tbWFuZCwgY29uc3QgY2hhciAqbW9kZSkKIHsKIAlGSUxFCSAgICpmaWxlOwogCWludAkJ CXNhdmVfZXJybm87CisJcGlkX3QJCWNoaWxkX3BpZDsKIAogCURPX0RCKGVsb2coTE9HLCAiT3Bl blBpcGVTdHJlYW06IEFsbG9jYXRlZCAlZCAoJXMpIiwKIAkJCSAgIG51bUFsbG9jYXRlZERlc2Nz LCBjb21tYW5kKSk7CkBAIC0yNzQ3LDIyICszMTQ0LDIxIEBAIE9wZW5QaXBlU3RyZWFtKGNvbnN0 IGNoYXIgKmNvbW1hbmQsIGNvbnN0IGNoYXIgKm1vZGUpCiAJUmVsZWFzZUxydUZpbGVzKCk7CiAK IFRyeUFnYWluOgotCWZmbHVzaChOVUxMKTsKLQlwcXNpZ25hbChTSUdQSVBFLCBTSUdfREZMKTsK KwogCWVycm5vID0gMDsKLQlmaWxlID0gcG9wZW4oY29tbWFuZCwgbW9kZSk7CisJZmlsZSA9IHBn X3BvcGVuKGNvbW1hbmQsIG1vZGUsICZjaGlsZF9waWQpOwogCXNhdmVfZXJybm8gPSBlcnJubzsK IAlwcXNpZ25hbChTSUdQSVBFLCBTSUdfSUdOKTsKLQllcnJubyA9IHNhdmVfZXJybm87CiAJaWYg KGZpbGUgIT0gTlVMTCkKIAl7CiAJCUFsbG9jYXRlRGVzYyAqZGVzYyA9ICZhbGxvY2F0ZWREZXNj c1tudW1BbGxvY2F0ZWREZXNjc107CiAKIAkJZGVzYy0+a2luZCA9IEFsbG9jYXRlRGVzY1BpcGU7 Ci0JCWRlc2MtPmRlc2MuZmlsZSA9IGZpbGU7CisJCWRlc2MtPmRlc2MucGlwZS5maWxlID0gZmls ZTsKKwkJZGVzYy0+ZGVzYy5waXBlLnBpZCA9IGNoaWxkX3BpZDsKIAkJZGVzYy0+Y3JlYXRlX3N1 YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKTsKIAkJbnVtQWxsb2NhdGVkRGVzY3Mr KzsKLQkJcmV0dXJuIGRlc2MtPmRlc2MuZmlsZTsKKwkJcmV0dXJuIGRlc2MtPmRlc2MucGlwZS5m aWxlOwogCX0KIAogCWlmIChlcnJubyA9PSBFTUZJTEUgfHwgZXJybm8gPT0gRU5GSUxFKQpAQCAt Mjc5NSw3ICszMTkxLDcgQEAgRnJlZURlc2MoQWxsb2NhdGVEZXNjICpkZXNjKQogCQkJcmVzdWx0 ID0gZmNsb3NlKGRlc2MtPmRlc2MuZmlsZSk7CiAJCQlicmVhazsKIAkJY2FzZSBBbGxvY2F0ZURl c2NQaXBlOgotCQkJcmVzdWx0ID0gcGNsb3NlKGRlc2MtPmRlc2MuZmlsZSk7CisJCQlyZXN1bHQg PSBwZ19wY2xvc2UoZGVzYy0+ZGVzYy5waXBlLmZpbGUsIGRlc2MtPmRlc2MucGlwZS5waWQpOwog CQkJYnJlYWs7CiAJCWNhc2UgQWxsb2NhdGVEZXNjRGlyOgogCQkJcmVzdWx0ID0gY2xvc2VkaXIo ZGVzYy0+ZGVzYy5kaXIpOwpAQCAtMzA0Nyw3ICszNDQzLDcgQEAgQ2xvc2VQaXBlU3RyZWFtKEZJ TEUgKmZpbGUpCiAJewogCQlBbGxvY2F0ZURlc2MgKmRlc2MgPSAmYWxsb2NhdGVkRGVzY3NbaV07 CiAKLQkJaWYgKGRlc2MtPmtpbmQgPT0gQWxsb2NhdGVEZXNjUGlwZSAmJiBkZXNjLT5kZXNjLmZp bGUgPT0gZmlsZSkKKwkJaWYgKGRlc2MtPmtpbmQgPT0gQWxsb2NhdGVEZXNjUGlwZSAmJiBkZXNj LT5kZXNjLnBpcGUuZmlsZSA9PSBmaWxlKQogCQkJcmV0dXJuIEZyZWVEZXNjKGRlc2MpOwogCX0K IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsIGIvc3JjL2Jpbi9p bml0ZGIvdC8wMDFfaW5pdGRiLnBsCmluZGV4IDA4MTUzNWEyMmU0Li5kNDc4NDcwNWZjNSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsCisrKyBiL3NyYy9iaW4vaW5p dGRiL3QvMDAxX2luaXRkYi5wbApAQCAtMTMxLDcgKzEzMSw3IEBAIGlmICgkRU5We3dpdGhfaWN1 fSBlcSAneWVzJykKIAkJXSwKIAkJJ29wdGlvbiAtLWljdS1sb2NhbGUnKTsKIAotCWNvbW1hbmRf bGlrZSgKKwljb21tYW5kX2NoZWNrc19hbGwoCiAJCVsKIAkJCSdpbml0ZGInLCAnLS1uby1zeW5j JywKIAkJCSctLWF1dGgnID0+ICd0cnVzdCcsCkBAIC0xNDUsNyArMTQ1LDkgQEAgaWYgKCRFTlZ7 d2l0aF9pY3V9IGVxICd5ZXMnKQogCQkJJy0tbGMtdGltZScgPT4gJ0MnLAogCQkJIiR0ZW1wZGly L2RhdGE0IgogCQldLAotCQlxci9eXHMrZGVmYXVsdCBjb2xsYXRpb246XHMrdW5kXG4vbXMsCisJ CTAsCisJCVtxci9eXHMrZGVmYXVsdCBjb2xsYXRpb246XHMrdW5kXG4vbXNdLAorCQlbXSwgICAg IyBzdGRlcnIgbWF5IGhhdmUgTE9HIG1lc3NhZ2VzCiAJCSdvcHRpb25zIC0tbG9jYWxlLXByb3Zp ZGVyPWljdSAtLWxvY2FsZT11bmQgLS1sYy0qPUMnKTsKIAogCWNvbW1hbmRfZmFpbHNfbGlrZSgK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluIGIvc3JjL2luY2x1ZGUvcGdf Y29uZmlnLmguaW4KaW5kZXggNzkzNzlhNGQxMjUuLmQ4YTE4NTQ1YzkxIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgorKysgYi9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5p bgpAQCAtMzAwLDYgKzMwMCw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBh bS9wYW1fYXBwbC5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX1BBTV9QQU1fQVBQTF9I CiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcGlwZTInIGZ1bmN0aW9uLiAqLwor I3VuZGVmIEhBVkVfUElQRTIKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwb3Np eF9mYWR2aXNlJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1BPU0lYX0ZBRFZJU0UKIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9mZC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9m ZC5oCmluZGV4IDhhYzQ2NmZkMzQ2Li4yMTExZWMwY2U4MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvc3RvcmFnZS9mZC5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvZmQuaApAQCAtMjEzLDYg KzIxMyw3IEBAIGV4dGVybiBpbnQJcGdfZnN5bmNfd3JpdGV0aHJvdWdoKGludCBmZCk7CiBleHRl cm4gaW50CXBnX2ZkYXRhc3luYyhpbnQgZmQpOwogZXh0ZXJuIGJvb2wgcGdfZmlsZV9leGlzdHMo Y29uc3QgY2hhciAqbmFtZSk7CiBleHRlcm4gdm9pZCBwZ19mbHVzaF9kYXRhKGludCBmZCwgcGdv ZmZfdCBvZmZzZXQsIHBnb2ZmX3QgbmJ5dGVzKTsKK2V4dGVybiBpbnQJcGdfc3lzdGVtKGNvbnN0 IGNoYXIgKmNvbW1hbmQpOwogZXh0ZXJuIGludAlwZ190cnVuY2F0ZShjb25zdCBjaGFyICpwYXRo LCBwZ29mZl90IGxlbmd0aCk7CiBleHRlcm4gdm9pZCBmc3luY19mbmFtZShjb25zdCBjaGFyICpm bmFtZSwgYm9vbCBpc2Rpcik7CiBleHRlcm4gaW50CWZzeW5jX2ZuYW1lX2V4dChjb25zdCBjaGFy ICpmbmFtZSwgYm9vbCBpc2RpciwgYm9vbCBpZ25vcmVfcGVybSwgaW50IGVsZXZlbCk7CgpiYXNl LWNvbW1pdDogYWU1ODE4OWE0ZDUyM2YwMTU2ZWJlMzBmNDUzNDE4MDU1NTY2OWU4OAotLSAKMi41 My4wCgo= --6e8828c071b827e78f4cc5f50ba1dd1adb9cd58f1984b7ba70aa4783143a Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v10-0002-Reflect-the-value-of-max_safe_fds-in-max_files_p.patch Content-Type: text/x-patch; charset=utf-8; name=v10-0002-Reflect-the-value-of-max_safe_fds-in-max_files_p.patch RnJvbSA5MjdjMWFlOGU3MDJjNGM3ODA4NDJhNzYxNWIyOTBmNWQwNmZjZDY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDcgRGVjIDIwMjUgMTU6MDY6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIHYx MCAyLzJdIFJlZmxlY3QgdGhlIHZhbHVlIG9mIG1heF9zYWZlX2ZkcyBpbgogbWF4X2ZpbGVzX3Bl cl9wcm9jZXNzCgpJdCBpcyBjdXJyZW50bHkgaGFyZCB0byBmaWd1cmUgb3V0IGlmIG1heF9zYWZl X2ZkcyBpcyBzaWduaWZpY2FudGx5Cmxvd2VyIHRoYW4gbWF4X2ZpbGVzX3Blcl9wcm9jZXNzLiBU aGlzIHN0YXJ0cyByZWZsZWN0aW5nIHRoZSB2YWx1ZSBvZgptYXhfc2FmZV9mZHMgaW4gbWF4X2Zp bGVzX3Blcl9wcm9jZXNzIGFmdGVyIG91ciBsaW1pdCBkZXRlY3Rpb24uIFdlCnN0aWxsIHdhbnQg dG8gaGF2ZSB0d28gc2VwYXJhdGUgdmFyaWFibGVzIGJlY2F1c2UgZm9yIHRoZSBib290c3RyYXAg b3IKc3RhbmRhbG9uZS1iYWNrZW5kIGNhc2VzIHRoZWlyIHZhbHVlcyBkaWZmZXIgb24gcHVycG9z ZS4KLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYyB8IDExICsrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3N0b3JhZ2UvZmlsZS9mZC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKaW5kZXgg MjE2OTZmYWQwZjYuLjc1NzlmZmVjNTdiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdl L2ZpbGUvZmQuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYwpAQCAtMTE4Myw2 ICsxMTgzLDcgQEAgc2V0X21heF9zYWZlX2Zkcyh2b2lkKQogewogCWludAkJCXVzYWJsZV9mZHM7 CiAJaW50CQkJYWxyZWFkeV9vcGVuOworCWNoYXIJICAgKm1heF9zYWZlX2Zkc19zdHJpbmc7CiAK IAkvKi0tLS0tLS0tLS0KIAkgKiBXZSB3YW50IHRvIHNldCBtYXhfc2FmZV9mZHMgdG8KQEAgLTEx OTgsNiArMTE5OSwxNiBAQCBzZXRfbWF4X3NhZmVfZmRzKHZvaWQpCiAKIAltYXhfc2FmZV9mZHMg PSBNaW4odXNhYmxlX2ZkcywgbWF4X2ZpbGVzX3Blcl9wcm9jZXNzKTsKIAorCS8qCisJICogVXBk YXRlIEdVQyB2YXJpYWJsZSB0byBhbGxvdyB1c2VycyB0byBzZWUgaWYgdGhlIHJlc3VsdCBpcyBk aWZmZXJlbnQKKwkgKiB0aGFuIHdoYXQgdGhlIHVzZWQgdmFsdWUgdHVybnMgb3V0IHRvIGJlIGRp ZmZlcmVudCB0aGFuIHdoYXQgdGhleSBoYWQKKwkgKiBjb25maWd1cmVkLgorCSAqLworCW1heF9z YWZlX2Zkc19zdHJpbmcgPSBwc3ByaW50ZigiJWQiLCBtYXhfc2FmZV9mZHMpOworCVNldENvbmZp Z09wdGlvbigibWF4X2ZpbGVzX3Blcl9wcm9jZXNzIiwgbWF4X3NhZmVfZmRzX3N0cmluZywKKwkJ CQkJUEdDX1BPU1RNQVNURVIsIFBHQ19TX09WRVJSSURFKTsKKwlwZnJlZShtYXhfc2FmZV9mZHNf c3RyaW5nKTsKKwogCS8qCiAJICogVGFrZSBvZmYgdGhlIEZEcyByZXNlcnZlZCBmb3Igc3lzdGVt KCkgZXRjLgogCSAqLwotLSAKMi41My4wCgo= --6e8828c071b827e78f4cc5f50ba1dd1adb9cd58f1984b7ba70aa4783143a--