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.94.2) (envelope-from ) id 1tiKfP-00Eclq-ID for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Feb 2025 21:53:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tiKfN-00FG5E-Iw for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Feb 2025 21:53:10 +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.94.2) (envelope-from ) id 1tiKfN-00FG52-3a for pgsql-hackers@lists.postgresql.org; Wed, 12 Feb 2025 21:53:09 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tiKfL-000V9b-0f for pgsql-hackers@postgresql.org; Wed, 12 Feb 2025 21:53:09 +0000 Received: by mail-lf1-x12e.google.com with SMTP id 2adb3069b0e04-5450abbdce0so120120e87.3 for ; Wed, 12 Feb 2025 13:53:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1739397185; x=1740001985; darn=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=jY0HUyMDvVZJQQl2hUW4i/bDyhw+v+yiz0/0YtcKMKs=; b=mdmh+CsCWaqkFXKQ97cjWFail/OMOj/xNa5gKZoI740AZVDG+pvleyjNAY34rI+v6v eTKhRoGaNmxa5AM9L8PpP8WytPv9bbyXznkXBFrANtvOCEvKZt9q3I3mampNpXUoullI F6YgirHDwKoYwdCQa2W5gzC1RwFTXbFuHYAKD8hh9952BB/PToS4KPclztSvT7q2kAqg o2B7tRaGv68oTVyqgnndg5GKBLG8otbiulbN3cjKT6Aw8iRZsjwTyWqtgGxR/Hn/YHwI bH5yAGCVq2UVBctXxIGX5suQfIPXUCtg2X3TTKy864OsDWXFVPVTjktu8ac3dtymKyXN KDGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739397185; x=1740001985; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jY0HUyMDvVZJQQl2hUW4i/bDyhw+v+yiz0/0YtcKMKs=; b=N0Z7EonD1uU4ZqoblPefM/kVQv7nTXAfEhKMpJRdC7QDdPybdQllpPw2QJ1sM5BZEb QuNU1OGIyH0eZ/2FOsO/4GwbYs+Dd8P0AHOchyDDzf5eNsEe1ruT5lIZT043x5D5Arg3 dD9IRdhG1xS95oV6HyHb/4I/tsUlcnI99FKxDj36FcC7jTGvPV3wPWyPPeKLK/wI2flS zcs3H2FJg1SVD9cDY0pBkkpERSmh8830b+FrcLjcdE/ChqUszmHqtIn4vRFIYDpCqdWQ HWepK1jUEKtf/z21cH7tnJoRAeU8OWBpx/OR+FCjKEuJpsPI9bHPSyS9MitlxuYmtwdI 4ABg== X-Forwarded-Encrypted: i=1; AJvYcCUEVqZeAVspSlNnC7kO1OrZ/D3k1wVqBg20NrQ0XKCFY60t7QWLz4HZoTCPDmt5/7TFB28gAuhIaneQyobM@postgresql.org X-Gm-Message-State: AOJu0YwwTdsdZP/V+8MCZECLKCRd2oIMs0JZOTwMcuvj0hkLJwJd86Oq vONL6ltgYkWR26pgBLpmqid6BLUfCtCwKJQ8D1ohi6NN2MrRAoSRuR8Au2xqdxGNjf/P/S7U9LZ eq+VzanjuRU7O5xUEnXABDfwM6m36LIVDzyHujA== X-Gm-Gg: ASbGncvdCDwDPU6lV5DBGya9FNueNuhxjqgF/e+2UcE4RJt4Pt/ZLXTp8ysSQco/Pmk vmwCwc9aXqUng0q42pVnEPgc7wkexUdUqUz/oXvxYDRu2mzjfKWrPAo1HjhrLwbEhVt1owsvoog == X-Google-Smtp-Source: AGHT+IHz2GHQ17BtDM2ekRCqQE401furA+wU11TG7GCxrq6kCFSxvWzGuZBzu10wRtK+00Id4besiyTWxX6g3l4bFig= X-Received: by 2002:a2e:a80d:0:b0:308:efdd:b183 with SMTP id 38308e7fff4ca-30905011628mr16725341fa.21.1739397184488; Wed, 12 Feb 2025 13:53:04 -0800 (PST) MIME-Version: 1.0 References: <3203865.1739301613@sss.pgh.pa.us> <94798ef1-0f13-416a-983a-88447e434a7f@vondra.me> <7u7dbn6s2i6bf3hjzkbqaexj2bpoblqxwbkffbetl4rjv6dcom@s2uickjc5z53> <3216369.1739308717@sss.pgh.pa.us> In-Reply-To: <3216369.1739308717@sss.pgh.pa.us> From: Jelte Fennema-Nio Date: Wed, 12 Feb 2025 22:52:52 +0100 X-Gm-Features: AWEUYZml79v4DPUTCnNJpaOYFedsoIfTrRiKjHp8uaMGwQA5-mRrBTrGh3hiVPg Message-ID: Subject: Re: Bump soft open file limit (RLIMIT_NOFILE) to hard limit on startup To: Tom Lane Cc: Andres Freund , Tomas Vondra , PostgreSQL-development Content-Type: multipart/mixed; boundary="0000000000004e3cad062df8f739" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004e3cad062df8f739 Content-Type: text/plain; charset="UTF-8" On Tue, 11 Feb 2025 at 22:18, Tom Lane wrote: > > Andres Freund writes: > > My suggestion would be to redefine max_files_per_process as the number of > > files we try to be able to open in backends. I.e. set_max_safe_fds() would > > first count the number of already open fds (since those will largely be > > inherited by child processes) and then check if we can open up to > > max_files_per_process files in addition. Adjusting the RLIMIT_NOFILE if > > necessary. > > Seems plausible. IIRC we also want 10 or so FDs available as "slop" > for code that doesn't go through fd.c. Attached is a patchset that does this. I split off the pgbench change, which is in the first patch. The change to postmaster is in the second. And the 3rd patch is a small follow up to make it easier to notice that max_safe_fds is lower than intended. --0000000000004e3cad062df8f739 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-Bump-pgbench-soft-open-file-limit-RLIMIT_NOFILE-t.patch" Content-Disposition: attachment; filename="v2-0001-Bump-pgbench-soft-open-file-limit-RLIMIT_NOFILE-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m72g2w4q0 RnJvbSA4ZTk2NGRiNTg1OTg5NzM0YTVmNmMxNDQ5ZmZiNGM2MmUxMTkwYTZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8Z2l0aHViLXRlY2hAamVsdGVm Lm5sPgpEYXRlOiBUdWUsIDExIEZlYiAyMDI1IDIyOjA0OjQ0ICswMTAwClN1YmplY3Q6IFtQQVRD SCB2MiAxLzNdIEJ1bXAgcGdiZW5jaCBzb2Z0IG9wZW4gZmlsZSBsaW1pdCAoUkxJTUlUX05PRklM RSkgdG8KIGhhcmQgbGltaXQKClRoZSBkZWZhdWx0IG9wZW4gZmlsZSBsaW1pdCBvZiAxMDI0IGlz IGV4dHJlbWVseSBsb3csIGdpdmVuIG1vZGVybgpyZXNvdXJjZXMgYW5kIGtlcm5lbCBhcmNoaXRl Y3R1cmVzLiBUaGUgcmVhc29uIHRoYXQgdGhpcyBoYXNuJ3QgY2hhbmdlZAppcyBiZWNhdXNlIGRv aW5nIHNvIHdvdWxkIGJyZWFrIGxlZ2FjeSBwcm9ncmFtcyB0aGF0IHVzZSB0aGUgc2VsZWN0KDIp CnN5c3RlbSBjYWxsIGluIGhhcmQgdG8gZGVidWcgd2F5cy4gU28gaW5zdGVhZCBwcm9ncmFtcyB0 aGF0IHdhbnQgdG8Kb3B0LWluIHRvIGEgaGlnaGVyIG9wZW4gZmlsZSBsaW1pdCBhcmUgZXhwZWN0 ZWQgdG8gYnVtcCB0aGVpciBzb2Z0IGxpbWl0CnRvIHRoZWlyIGhhcmQgbGltaXQgb24gc3RhcnR1 cC4gRGV0YWlscyBvbiB0aGlzIGFyZSB2ZXJ5IHdlbGwgZXhwbGFpbmVkCmluIGEgYmxvZ3Bvc3Qg YnkgdGhlIHN5c3RlbWQgYXV0aG9yWzFdLgoKVGhpcyBzdGFydHMgYnVtcGluZyBwZ2JlbmNoIGl0 cyBzb2Z0IG9wZW4gZmlsZSBsaW1pdCB0byB0aGUgaGFyZCBvcGVuCmZpbGUgbGltaXQuIFRoaXMg bWFrZXMgc3VyZSB1c2VycyBhcmUgbm90IHRvbGQgdG8gY2hhbmdlIHRoZWlyIHVsaW1pdCwKYW5k IHRoZW4gcmV0cnkuIEluc3RlYWQgd2Ugbm93IGRvIHRoYXQgZm9yIHRoZW0gYXV0b21hdGljYWxs eS4KClsxXTogaHR0cHM6Ly8wcG9pbnRlci5uZXQvYmxvZy9maWxlLWRlc2NyaXB0b3ItbGltaXRz Lmh0bWwKLS0tCiBzcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jIHwgOSArKysrKysrKysKIDEgZmls ZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnYmVuY2gv cGdiZW5jaC5jIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwppbmRleCA1ZTFmY2Y1OWM2MS4u ZWE3YmY5ODBiZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMKKysrIGIv c3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwpAQCAtNjgxNSw2ICs2ODE1LDE1IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogI2lmZGVmIEhBVkVfR0VUUkxJTUlUCiAJCQkJaWYgKGdldHJs aW1pdChSTElNSVRfTk9GSUxFLCAmcmxpbSkgPT0gLTEpCiAJCQkJCXBnX2ZhdGFsKCJnZXRybGlt aXQgZmFpbGVkOiAlbSIpOworCisJCQkJLyoKKwkJCQkgKiBCdW1wIHRoZSBzb2Z0IGxpbWl0IHRv IHRoZSBoYXJkIGxpbWl0IHRvIG5vdCBydW4gaW50byBsb3cKKwkJCQkgKiBmaWxlIGxpbWl0cy4K KwkJCQkgKi8KKwkJCQlybGltLnJsaW1fY3VyID0gcmxpbS5ybGltX21heDsKKwkJCQlpZiAoc2V0 cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZybGltKSA9PSAtMSkKKwkJCQkJcGdfZmF0YWwoInNldHJs aW1pdCBmYWlsZWQ6ICVtIik7CisKIAkJCQlpZiAocmxpbS5ybGltX2N1ciA8IG5jbGllbnRzICsg MykKIAkJCQl7CiAJCQkJCXBnX2xvZ19lcnJvcigibmVlZCBhdCBsZWFzdCAlZCBvcGVuIGZpbGVz LCBidXQgc3lzdGVtIGxpbWl0IGlzICVsZCIsCgpiYXNlLWNvbW1pdDogZmQ2MDJmMjljMTlkNGY0 ODNmNTRkOTNhYmUyNDBjMTIyMTlkOWY1MQotLSAKMi40My4wCgo= --0000000000004e3cad062df8f739 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0002-Bump-postmaster-soft-open-file-limit-RLIMIT_NOFIL.patch" Content-Disposition: attachment; filename="v2-0002-Bump-postmaster-soft-open-file-limit-RLIMIT_NOFIL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m72g2yr01 RnJvbSBlODQwOTJlM2RiNzcxMmRiMDhkZmM1Zjg4MjRmNjkyYTUzYTFhYTllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8Z2l0aHViLXRlY2hAamVsdGVm Lm5sPgpEYXRlOiBUdWUsIDExIEZlYiAyMDI1IDE5OjE1OjM2ICswMTAwClN1YmplY3Q6IFtQQVRD SCB2MiAyLzNdIEJ1bXAgcG9zdG1hc3RlciBzb2Z0IG9wZW4gZmlsZSBsaW1pdCAoUkxJTUlUX05P RklMRSkKIHdoZW4gbmVjZXNzYXJ5CgpUaGUgZGVmYXVsdCBvcGVuIGZpbGUgbGltaXQgb2YgMTAy NCBvbiBMaW51eCBpcyBleHRyZW1lbHkgbG93LiBUaGUKcmVhc29uIHRoYXQgdGhpcyBoYXNuJ3Qg Y2hhbmdlZCBjaGFuZ2UgaXMgYmVjYXVzZSBkb2luZyBzbyB3b3VsZCBicmVhawpsZWdhY3kgcHJv Z3JhbXMgdGhhdCB1c2UgdGhlIHNlbGVjdCgyKSBzeXN0ZW0gY2FsbCBpbiBoYXJkIHRvIGRlYnVn CndheXMuIFNvIGluc3RlYWQgcHJvZ3JhbXMgdGhhdCB3YW50IHRvIG9wdC1pbiB0byBhIGhpZ2hl ciBvcGVuIGZpbGUKbGltaXQgYXJlIGV4cGVjdGVkIHRvIGJ1bXAgdGhlaXIgc29mdCBsaW1pdCB0 byB0aGVpciBoYXJkIGxpbWl0IG9uCnN0YXJ0dXAuIERldGFpbHMgb24gdGhpcyBhcmUgdmVyeSB3 ZWxsIGV4cGxhaW5lZCBpbiBhIGJsb2dwb3N0IGJ5IHRoZQpzeXN0ZW1kIGF1dGhvclsxXS4gVGhl cmUncyBhbHNvIGEgc2ltaWxhciBjaGFuZ2UgZG9uZSBieSB0aGUgR28KbGFuZ3VhZ2VbMl0uCgpU aGlzIHN0YXJ0cyBidW1waW5nIHBvc3RtYXN0ZXIgaXRzIHNvZnQgb3BlbiBmaWxlIGxpbWl0IHdo ZW4gd2UgcmVhbGl6ZQp0aGF0IHdlJ2xsIHJ1biBpbnRvIHRoZSBzb2Z0IGxpbWl0IHdpdGggdGhl IHJlcXVlc3RlZAptYXhfZmlsZXNfcGVyX3Byb2Nlc3MgR1VDLiBXZSBkbyBzbyBieSBzbGlnaHRs eSBjaGFuZ2luZyB0aGUgbWVhbmluZyBvZgp0aGUgbWF4X2ZpbGVzX3Blcl9wcm9jZXNzIEdVQy4g VGhlIGFjdHVhbCAobm90IHB1YmxpY2x5IGV4cG9zZWQpIGxpbWl0CmlzIG1heF9zYWZlX2Zkcywg cHJldmlvdXNseSB0aGlzIHdvdWxkIGJlIHNldCB0bzoKbWF4X2ZpbGVzX3Blcl9wcm9jZXNzIC0g YWxyZWFkeV9vcGVuX2ZpbGVzIC0gTlVNX1JFU0VSVkVEX0ZEUwpBZnRlciB0aGlzIGNoYW5nZSB3 ZSBub3cgdHJ5IHRvIHNldCBtYXhfc2FmZV9mZHMgdG8KbWF4X2ZpbGVzX3Blcl9wcm9jZXNzIGlm IHRoZSBzeXN0ZW0gYWxsb3dzIHRoYXQuIFRoaXMgaXMgZGVlbWVkIG1vcmUKbmF0dXJhbCB0byB1 bmRlcnN0YW5kIGZvciB1c2VycywgYmVjYXVzZSBub3cgdGhlIGxpbWl0IG9mIGZpbGVzIHRoYXQK dGhleSBjYW4gb3BlbiBpcyBhY3R1YWxseSB3aGF0IHRoZXkgY29uZmlndXJlZCBpbiBtYXhfZmls ZXNfcGVyX3Byb2Nlc3MuCgpBZGRpbmcgdGhpcyBpbmZyYXN0cnVjdHVyZSB0byBjaGFuZ2UgUkxJ TUlUX05PRklMRSB3aGVuIG5lZWRlZCBpcwplc3BlY2lhbGx5IHVzZWZ1bCBmb3IgdGhlIEFJTyB3 b3JrIHRoYXQgQW5kcmVzIGlzIGRvaW5nLCBiZWNhdXNlCmlvX3VyaW5nIGNvbnN1bWVzIGEgbG90 IG9mIGZpbGUgZGVzY3JpcHRvcnMuIEV2ZW4gd2l0aG91dCBsb29raW5nIGF0IEFJTwp0aGVyZSBp cyBhIGxhcmdlIG51bWJlciBvZiByZXBvcnRzIGZyb20gcGVvcGxlIHRoYXQgcmVxdWlyZSBjaGFu Z2luZwp0aGVpciBzb2Z0IGZpbGUgbGltaXQgYmVmb3JlIHN0YXJ0aW5nIFBvc3RncmVzLCBzb21l dGltZXMgZmFsbGluZyBiYWNrCnRvIGxvd2VyaW5nIG1heF9maWxlc19wZXJfcHJvY2VzcyB3aGVu IHRoZXkgZmFpbCB0byBkbyBzb1szLThdLiBJdCdzCmFsc28gbm90IGFsbCB0aGF0IHN0cmFuZ2Ug dG8gZmFpbCBhdCBzZXR0aW5nIHRoZSBzb2Z0IG9wZW4gZmlsZSBsaW1pdApiZWNhdXNlIHRoZXJl IGFyZSBtdWx0aXBsZSBwbGFjZXMgd2hlcmUgb25lIGNhbiBjb25maWd1cmUgc3VjaCBsaW1pdHMK YW5kIHVzdWFsbHkgb25seSBvbmUgb2YgdGhlbSBpcyBlZmZlY3RpdmUgKHdoaWNoIG9uZSBkZXBl bmRzIG9uIGhvdwpQb3N0Z3JlcyBpcyBzdGFydGVkKS4gSW4gY2xvdWQgZW52aXJvbm1lbnRzIGl0 cyBhbHNvIG9mdGVuIG5vdCBwb3NzaWJsZQpmb3IgdXNlciB0byBjaGFuZ2UgdGhlIHNvZnQgbGlt aXQsIGJlY2F1c2UgdGhleSBkb24ndCBjb250cm9sIHRoZSB3YXkKdGhhdCBQb3N0Z3JlcyBpcyBz dGFydGVkLgoKT25lIHRoaW5nIHRvIG5vdGUgaXMgdGhhdCB3ZSB0ZW1wb3JhcmlseSByZXN0b3Jl IHRoZSBvcmlnaW5hbCBzb2Z0CmxpbWl0IHdoZW4gc2hlbGwtaW5nIG91dCB0byBvdGhlciBleGVj dXRhYmxlcy4gVGhpcyBpcyBkb25lIGFzIGEKcHJlY2F1dGlvbiBpbiBjYXNlIHRob3NlIGV4ZWN1 dGFibGVzIGFyZSB1c2luZyBzZWxlY3QoMikuCgpbMV06IGh0dHBzOi8vMHBvaW50ZXIubmV0L2Js b2cvZmlsZS1kZXNjcmlwdG9yLWxpbWl0cy5odG1sClsyXTogaHR0cHM6Ly9naXRodWIuY29tL2dv bGFuZy9nby9pc3N1ZXMvNDYyNzkKWzNdOiBodHRwczovL3NlcnZlcmZhdWx0LmNvbS9xdWVzdGlv bnMvNzg1MzMwL2dldHRpbmctdG9vLW1hbnktb3Blbi1maWxlcy1lcnJvci1mb3ItcG9zdGdyZXMK WzRdOiBodHRwczovL3NlcnZlcmZhdWx0LmNvbS9xdWVzdGlvbnMvNzE2OTgyL2hvdy10by1yYWlz ZS1tYXgtbm8tb2YtZmlsZS1kZXNjcmlwdG9ycy1mb3ItZGFlbW9ucy1ydW5uaW5nLW9uLWRlYmlh bi1qZXNzaWUKWzVdOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQv Q0FLdGM4dlhoN052UF9xV2o4RXFxb3JQWTk3YnZ4U2FYM2g1dTdhOVBwdFJGSFc1eDdnJTQwbWFp bC5nbWFpbC5jb20KWzZdOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2Zs YXQvMTEzY2UzMWIwOTA4MTIwOTU1dzc3MDI5MDk5aTdlY2VjYzA1MzA4NDA5NWElNDBtYWlsLmdt YWlsLmNvbQpbN106IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmlvc29mdC9jb2xpbWEvZGlzY3Vzc2lv bnMvODM2Cls4XTogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzI5 NjYzLjEwMDc3Mzg5NTclNDBzc3MucGdoLnBhLnVzIzIwNzllYzllMmQ4YjI1MTU5MzgxMmEzNzEx YmZlOWU5Ci0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICB8ICAx NyArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jIHwgICA0ICsK IHNyYy9iYWNrZW5kL2FyY2hpdmUvc2hlbGxfYXJjaGl2ZS5jICAgICAgfCAgIDIgKwogc3JjL2Jh Y2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMgICAgICAgICAgICB8IDExMSArKysrKysrKysrKysrKysr KysrKy0tLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9mZC5oICAgICAgICAgICAgICAgICB8ICAgMiAr CiA1IGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKaW5kZXggNWU0ZjIwMWUwOTkuLjQ4ODZhMDJkNDdlIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0yMzUy LDE1ICsyMzUyLDE0IEBAIGluY2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICA8L3Rlcm0+CiAgICAg ICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFNldHMgdGhlIG1heGltdW0gbnVt YmVyIG9mIHNpbXVsdGFuZW91c2x5IG9wZW4gZmlsZXMgYWxsb3dlZCB0byBlYWNoCi0gICAgICAg IHNlcnZlciBzdWJwcm9jZXNzLiBUaGUgZGVmYXVsdCBpcyBvbmUgdGhvdXNhbmQgZmlsZXMuIElm IHRoZSBrZXJuZWwgaXMgZW5mb3JjaW5nCi0gICAgICAgIGEgc2FmZSBwZXItcHJvY2VzcyBsaW1p dCwgeW91IGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhpcyBzZXR0aW5nLgotICAgICAgICBC dXQgb24gc29tZSBwbGF0Zm9ybXMgKG5vdGFibHksIG1vc3QgQlNEIHN5c3RlbXMpLCB0aGUga2Vy bmVsIHdpbGwKLSAgICAgICAgYWxsb3cgaW5kaXZpZHVhbCBwcm9jZXNzZXMgdG8gb3BlbiBtYW55 IG1vcmUgZmlsZXMgdGhhbiB0aGUgc3lzdGVtCi0gICAgICAgIGNhbiBhY3R1YWxseSBzdXBwb3J0 IGlmIG1hbnkgcHJvY2Vzc2VzIGFsbCB0cnkgdG8gb3BlbgotICAgICAgICB0aGF0IG1hbnkgZmls ZXMuIElmIHlvdSBmaW5kIHlvdXJzZWxmIHNlZWluZyA8cXVvdGU+VG9vIG1hbnkgb3BlbgotICAg ICAgICBmaWxlczwvcXVvdGU+IGZhaWx1cmVzLCB0cnkgcmVkdWNpbmcgdGhpcyBzZXR0aW5nLgot ICAgICAgICBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQgYXQgc2VydmVyIHN0YXJ0Lgor ICAgICAgICBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWxlcyB0byBlYWNoIHNlcnZlciBz dWJwcm9jZXNzIGlzIGFsbG93ZWQKKyAgICAgICAgdG8gb3Blbi4gVGhlIGRlZmF1bHQgaXMgb25l IHRob3VzYW5kIGZpbGVzLiBJZiB0aGUga2VybmVsIGlzIGVuZm9yY2luZworICAgICAgICBhIGxv d2VyIHNvZnQgbGltaXQgUG9zdGdyZXMgd2lsbCBhdXRvbWF0aWNhbGx5IGluY3JlYXNlIGl0IGlm IHRoZSBoYXJkCisgICAgICAgIGxpbWl0IGFsbG93cyB0aGF0LiBTZXR0aW5nIHRoaXMgdmFsdWUg dG9vIGhpZ2ggY2FuIGNhdXNlIHJlc291cmNlCisgICAgICAgIGV4aGF1c3Rpb24gcHJvYmxlbXM6 IE9uIHNvbWUgcGxhdGZvcm1zIChub3RhYmx5LCBtb3N0IEJTRCBzeXN0ZW1zKSwgdGhlCisgICAg ICAgIGtlcm5lbCB3aWxsIGFsbG93IGluZGl2aWR1YWwgcHJvY2Vzc2VzIHRvIG9wZW4gbWFueSBt b3JlIGZpbGVzIHRoYW4gdGhlCisgICAgICAgIHN5c3RlbSBjYW4gYWN0dWFsbHkgc3VwcG9ydCBp ZiBtYW55IHByb2Nlc3NlcyBhbGwgdHJ5IHRvIG9wZW4gdGhhdCBtYW55CisgICAgICAgIGZpbGVz LiBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQgYXQgc2VydmVyIHN0YXJ0LgogICAgICAg IDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKaW5kZXggMWVmMTcxM2M5MWEuLmJmMTc0 MjYwMzllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKQEAgLTE1 OCw2ICsxNTgsNyBAQCBSZXN0b3JlQXJjaGl2ZWRGaWxlKGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIg Knhsb2dmbmFtZSwKIAkJCShlcnJtc2dfaW50ZXJuYWwoImV4ZWN1dGluZyByZXN0b3JlIGNvbW1h bmQgXCIlc1wiIiwKIAkJCQkJCQkgeGxvZ1Jlc3RvcmVDbWQpKSk7CiAKKwlSZXN0b3JlT3JpZ2lu YWxPcGVuRmlsZUxpbWl0KCk7CiAJZmZsdXNoKE5VTEwpOwogCXBnc3RhdF9yZXBvcnRfd2FpdF9z dGFydChXQUlUX0VWRU5UX1JFU1RPUkVfQ09NTUFORCk7CiAKQEAgLTE4MCw2ICsxODEsNyBAQCBS ZXN0b3JlQXJjaGl2ZWRGaWxlKGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnhsb2dmbmFtZSwKIAog CXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKIAlwZnJlZSh4bG9nUmVzdG9yZUNtZCk7CisJUmVz dG9yZUN1c3RvbU9wZW5GaWxlTGltaXQoKTsKIAogCWlmIChyYyA9PSAwKQogCXsKQEAgLTMyNSwx MCArMzI3LDEyIEBAIEV4ZWN1dGVSZWNvdmVyeUNvbW1hbmQoY29uc3QgY2hhciAqY29tbWFuZCwg Y29uc3QgY2hhciAqY29tbWFuZE5hbWUsCiAJLyoKIAkgKiBleGVjdXRlIHRoZSBjb25zdHJ1Y3Rl ZCBjb21tYW5kCiAJICovCisJUmVzdG9yZU9yaWdpbmFsT3BlbkZpbGVMaW1pdCgpOwogCWZmbHVz aChOVUxMKTsKIAlwZ3N0YXRfcmVwb3J0X3dhaXRfc3RhcnQod2FpdF9ldmVudF9pbmZvKTsKIAly YyA9IHN5c3RlbSh4bG9nUmVjb3ZlcnlDbWQpOwogCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsK KwlSZXN0b3JlQ3VzdG9tT3BlbkZpbGVMaW1pdCgpOwogCiAJcGZyZWUoeGxvZ1JlY292ZXJ5Q21k KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYXJjaGl2ZS9zaGVsbF9hcmNoaXZlLmMgYi9z cmMvYmFja2VuZC9hcmNoaXZlL3NoZWxsX2FyY2hpdmUuYwppbmRleCA4Mjg3MjNhZmU0Ny4uYzE2 ZjM1NGExMTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FyY2hpdmUvc2hlbGxfYXJjaGl2ZS5j CisrKyBiL3NyYy9iYWNrZW5kL2FyY2hpdmUvc2hlbGxfYXJjaGl2ZS5jCkBAIC03NSwxMCArNzUs MTIgQEAgc2hlbGxfYXJjaGl2ZV9maWxlKEFyY2hpdmVNb2R1bGVTdGF0ZSAqc3RhdGUsIGNvbnN0 IGNoYXIgKmZpbGUsCiAJCQkoZXJybXNnX2ludGVybmFsKCJleGVjdXRpbmcgYXJjaGl2ZSBjb21t YW5kIFwiJXNcIiIsCiAJCQkJCQkJIHhsb2dhcmNoY21kKSkpOwogCisJUmVzdG9yZU9yaWdpbmFs T3BlbkZpbGVMaW1pdCgpOwogCWZmbHVzaChOVUxMKTsKIAlwZ3N0YXRfcmVwb3J0X3dhaXRfc3Rh cnQoV0FJVF9FVkVOVF9BUkNISVZFX0NPTU1BTkQpOwogCXJjID0gc3lzdGVtKHhsb2dhcmNoY21k KTsKIAlwZ3N0YXRfcmVwb3J0X3dhaXRfZW5kKCk7CisJUmVzdG9yZUN1c3RvbU9wZW5GaWxlTGlt aXQoKTsKIAogCWlmIChyYyAhPSAwKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvZmlsZS9mZC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKaW5kZXggZTQ1NGRi NGMwMjAuLjA0ZmI5M2JlNTZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUv ZmQuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYwpAQCAtMTU3LDYgKzE1Nywx MiBAQCBpbnQJCQltYXhfZmlsZXNfcGVyX3Byb2Nlc3MgPSAxMDAwOwogICovCiBpbnQJCQltYXhf c2FmZV9mZHMgPSBGRF9NSU5GUkVFOwkvKiBkZWZhdWx0IGlmIG5vdCBjaGFuZ2VkICovCiAKKyNp ZmRlZiBIQVZFX0dFVFJMSU1JVAorc3RhdGljIHN0cnVjdCBybGltaXQgb3JpZ2luYWxfbWF4X29w ZW5fZmlsZXM7CitzdGF0aWMgc3RydWN0IHJsaW1pdCBjdXN0b21fbWF4X29wZW5fZmlsZXM7Cisj ZW5kaWYKKworCiAvKiBXaGV0aGVyIGl0IGlzIHNhZmUgdG8gY29udGludWUgcnVubmluZyBhZnRl ciBmc3luYygpIGZhaWxzLiAqLwogYm9vbAkJZGF0YV9zeW5jX3JldHJ5ID0gZmFsc2U7CiAKQEAg LTk0NSw2ICs5NTEsODIgQEAgSW5pdFRlbXBvcmFyeUZpbGVBY2Nlc3Modm9pZCkKICNlbmRpZgog fQogCisjaWZkZWYgSEFWRV9HRVRSTElNSVQKKy8qCisgKiBJbmNyZWFzZXMgdGhlIG9wZW4gZmls ZSBsaW1pdCAoUkxJTUlUX05PRklMRSkgYnkgdGhlIHJlcXVlc3RlZCBhbW91bnQuCisgKiBSZXR1 cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9v bAorSW5jcmVhc2VPcGVuRmlsZUxpbWl0KGludCBleHRyYV9maWxlcykKK3sKKwlzdHJ1Y3Qgcmxp bWl0IHJsaW0gPSBjdXN0b21fbWF4X29wZW5fZmlsZXM7CisKKwkvKiBJZiB3ZSdyZSBhbHJlYWR5 IGF0IHRoZSBtYXggd2UgcmVhY2hlZCBvdXIgbGltaXQgKi8KKwlpZiAocmxpbS5ybGltX2N1ciA9 PSBvcmlnaW5hbF9tYXhfb3Blbl9maWxlcy5ybGltX21heCkKKwkJcmV0dXJuIGZhbHNlOworCisJ LyogT3RoZXJ3aXNlIHRyeSB0byBpbmNyZWFzZSB0aGUgc29mdCBsaW1pdCB0byB3aGF0IHdlIG5l ZWQgKi8KKwlybGltLnJsaW1fY3VyID0gTWluKHJsaW0ucmxpbV9jdXIgKyBleHRyYV9maWxlcywg cmxpbS5ybGltX21heCk7CisKKwlpZiAoc2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZybGltKSAh PSAwKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLCAoZXJybXNnKCJzZXRybGltaXQgZmFpbGVkOiAl bSIpKSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwljdXN0b21fbWF4X29wZW5fZmlsZXMgPSBy bGltOworCisJZWxvZyhMT0csICJpbmNyZWFzZWQgb3BlbiBmaWxlIGxpbWl0IHRvICVsZCIsIChs b25nKSBybGltLnJsaW1fY3VyKTsKKworCXJldHVybiB0cnVlOworfQorI2VuZGlmCisKKy8qCisg KiBSZXN0b3JlT3JpZ2luYWxPcGVuRmlsZUxpbWl0IC0tLSBSZXN0b3JlIHRoZSBvcmlnaW5hbCBv cGVuIGZpbGUgbGltaXQgdGhhdAorICogCQl3YXMgcHJlc2VudCBhdCBwb3N0bWFzdGVyIHN0YXJ0 LgorICoKKyAqIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgc3Bhd25pbmcgc3VicHJvY2Vz c2VzIHRoYXQgbWlnaHQgdXNlIHNlbGVjdCgyKQorICogd2hpY2ggY2FuIG9ubHkgaGFuZGxlIGZp bGUgZGVzY3JpcHRvcnMgdXAgdG8gMTAyNC4KKyAqLwordm9pZAorUmVzdG9yZU9yaWdpbmFsT3Bl bkZpbGVMaW1pdCh2b2lkKQoreworI2lmZGVmIEhBVkVfR0VUUkxJTUlUCisJaWYgKGN1c3RvbV9t YXhfb3Blbl9maWxlcy5ybGltX2N1ciA9PSBvcmlnaW5hbF9tYXhfb3Blbl9maWxlcy5ybGltX2N1 cikKKwl7CisJCS8qIE5vdCBjaGFuZ2VkLCBzbyBubyBuZWVkIHRvIGNhbGwgc2V0cmxpbWl0IGF0 IGFsbCAqLworCQlyZXR1cm47CisJfQorCisJaWYgKHNldHJsaW1pdChSTElNSVRfTk9GSUxFLCAm b3JpZ2luYWxfbWF4X29wZW5fZmlsZXMpICE9IDApCisJeworCQllcmVwb3J0KFdBUk5JTkcsIChl cnJtc2coInNldHJsaW1pdCBmYWlsZWQ6ICVtIikpKTsKKwl9CisjZW5kaWYKK30KKworLyoKKyAq IFJlc3RvcmVDdXN0b21PcGVuRmlsZUxpbWl0IC0tLSBSZXN0b3JlcyBvdXIgY3VzdG9tIG9wZW4g ZmlsZSBsaW1pdCBhZnRlciBhCisgKiAJCXByZXZpb3VzIGNhbGwgdG8gUmVzdG9yZU9yaWdpbmFs T3BlbkZpbGVMaW1pdC4KKyAqLwordm9pZAorUmVzdG9yZUN1c3RvbU9wZW5GaWxlTGltaXQodm9p ZCkKK3sKKyNpZmRlZiBIQVZFX0dFVFJMSU1JVAorCWlmIChjdXN0b21fbWF4X29wZW5fZmlsZXMu cmxpbV9jdXIgPT0gb3JpZ2luYWxfbWF4X29wZW5fZmlsZXMucmxpbV9jdXIpCisJeworCQkvKiBO b3QgY2hhbmdlZCwgc28gbm8gbmVlZCB0byBjYWxsIHNldHJsaW1pdCBhdCBhbGwgKi8KKwkJcmV0 dXJuOworCX0KKworCWlmIChzZXRybGltaXQoUkxJTUlUX05PRklMRSwgJmN1c3RvbV9tYXhfb3Bl bl9maWxlcykgIT0gMCkKKwl7CisJCWVyZXBvcnQoV0FSTklORywgKGVycm1zZygic2V0cmxpbWl0 IGZhaWxlZDogJW0iKSkpOworCX0KKyNlbmRpZgorfQorCiAvKgogICogY291bnRfdXNhYmxlX2Zk cyAtLS0gY291bnQgaG93IG1hbnkgRkRzIHRoZSBzeXN0ZW0gd2lsbCBsZXQgdXMgb3BlbiwKICAq CQlhbmQgZXN0aW1hdGUgaG93IG1hbnkgYXJlIGFscmVhZHkgb3Blbi4KQEAgLTk2OSw3ICsxMDUx LDYgQEAgY291bnRfdXNhYmxlX2ZkcyhpbnQgbWF4X3RvX3Byb2JlLCBpbnQgKnVzYWJsZV9mZHMs IGludCAqYWxyZWFkeV9vcGVuKQogCWludAkJCWo7CiAKICNpZmRlZiBIQVZFX0dFVFJMSU1JVAot CXN0cnVjdCBybGltaXQgcmxpbTsKIAlpbnQJCQlnZXRybGltaXRfc3RhdHVzOwogI2VuZGlmCiAK QEAgLTk3Nyw5ICsxMDU4LDExIEBAIGNvdW50X3VzYWJsZV9mZHMoaW50IG1heF90b19wcm9iZSwg aW50ICp1c2FibGVfZmRzLCBpbnQgKmFscmVhZHlfb3BlbikKIAlmZCA9IChpbnQgKikgcGFsbG9j KHNpemUgKiBzaXplb2YoaW50KSk7CiAKICNpZmRlZiBIQVZFX0dFVFJMSU1JVAotCWdldHJsaW1p dF9zdGF0dXMgPSBnZXRybGltaXQoUkxJTUlUX05PRklMRSwgJnJsaW0pOworCWdldHJsaW1pdF9z dGF0dXMgPSBnZXRybGltaXQoUkxJTUlUX05PRklMRSwgJm9yaWdpbmFsX21heF9vcGVuX2ZpbGVz KTsKIAlpZiAoZ2V0cmxpbWl0X3N0YXR1cyAhPSAwKQogCQllcmVwb3J0KFdBUk5JTkcsIChlcnJt c2coImdldHJsaW1pdCBmYWlsZWQ6ICVtIikpKTsKKwllbHNlCisJCWN1c3RvbV9tYXhfb3Blbl9m aWxlcyA9IG9yaWdpbmFsX21heF9vcGVuX2ZpbGVzOwogI2VuZGlmCQkJCQkJCS8qIEhBVkVfR0VU UkxJTUlUICovCiAKIAkvKiBkdXAgdW50aWwgZmFpbHVyZSBvciBwcm9iZSBsaW1pdCByZWFjaGVk ICovCkBAIC05OTMsMTMgKzEwNzYsMjEgQEAgY291bnRfdXNhYmxlX2ZkcyhpbnQgbWF4X3RvX3By b2JlLCBpbnQgKnVzYWJsZV9mZHMsIGludCAqYWxyZWFkeV9vcGVuKQogCQkgKiBkb24ndCBnbyBi ZXlvbmQgUkxJTUlUX05PRklMRTsgY2F1c2VzIGlycml0YXRpbmcga2VybmVsIGxvZ3Mgb24KIAkJ ICogc29tZSBwbGF0Zm9ybXMKIAkJICovCi0JCWlmIChnZXRybGltaXRfc3RhdHVzID09IDAgJiYg aGlnaGVzdGZkID49IHJsaW0ucmxpbV9jdXIgLSAxKQotCQkJYnJlYWs7CisJCWlmIChnZXRybGlt aXRfc3RhdHVzID09IDAgJiYgaGlnaGVzdGZkID49IGN1c3RvbV9tYXhfb3Blbl9maWxlcy5ybGlt X2N1ciAtIDEpCisJCXsKKwkJCWlmICghSW5jcmVhc2VPcGVuRmlsZUxpbWl0KG1heF90b19wcm9i ZSAtIHVzZWQpKQorCQkJCWJyZWFrOworCQl9CiAjZW5kaWYKIAogCQl0aGlzZmQgPSBkdXAoMik7 CiAJCWlmICh0aGlzZmQgPCAwKQogCQl7CisjaWZkZWYgSEFWRV9HRVRSTElNSVQKKwkJCWlmIChl cnJubyA9PSBFTkZJTEUgJiYgSW5jcmVhc2VPcGVuRmlsZUxpbWl0KG1heF90b19wcm9iZSAtIHVz ZWQpKQorCQkJCWNvbnRpbnVlOworI2VuZGlmCisKIAkJCS8qIEV4cGVjdCBFTUZJTEUgb3IgRU5G SUxFLCBlbHNlIGl0J3MgZmlzaHkgKi8KIAkJCWlmIChlcnJubyAhPSBFTUZJTEUgJiYgZXJybm8g IT0gRU5GSUxFKQogCQkJCWVsb2coV0FSTklORywgImR1cGxpY2F0aW5nIHN0ZGVyciBmaWxlIGRl c2NyaXB0b3IgZmFpbGVkIGFmdGVyICVkIHN1Y2Nlc3NlczogJW0iLCB1c2VkKTsKQEAgLTEwNTMs MTUgKzExNDQsMTAgQEAgc2V0X21heF9zYWZlX2Zkcyh2b2lkKQogCSAqIG9yIHRoZSBleHBlcmlt ZW50YWxseS1kZXRlcm1pbmVkIEVNRklMRSBsaW1pdC4KIAkgKi0tLS0tLS0tLS0KIAkgKi8KLQlj b3VudF91c2FibGVfZmRzKG1heF9maWxlc19wZXJfcHJvY2VzcywKKwljb3VudF91c2FibGVfZmRz KG1heF9maWxlc19wZXJfcHJvY2VzcyArIE5VTV9SRVNFUlZFRF9GRFMsCiAJCQkJCSAmdXNhYmxl X2ZkcywgJmFscmVhZHlfb3Blbik7CiAKLQltYXhfc2FmZV9mZHMgPSBNaW4odXNhYmxlX2Zkcywg bWF4X2ZpbGVzX3Blcl9wcm9jZXNzIC0gYWxyZWFkeV9vcGVuKTsKLQotCS8qCi0JICogVGFrZSBv ZmYgdGhlIEZEcyByZXNlcnZlZCBmb3Igc3lzdGVtKCkgZXRjLgotCSAqLwotCW1heF9zYWZlX2Zk cyAtPSBOVU1fUkVTRVJWRURfRkRTOworCW1heF9zYWZlX2ZkcyA9IE1pbih1c2FibGVfZmRzIC0g TlVNX1JFU0VSVkVEX0ZEUywgbWF4X2ZpbGVzX3Blcl9wcm9jZXNzKTsKIAogCS8qCiAJICogTWFr ZSBzdXJlIHdlIHN0aWxsIGhhdmUgZW5vdWdoIHRvIGdldCBieS4KQEAgLTEwNzgsNiArMTE2NCw3 IEBAIHNldF9tYXhfc2FmZV9mZHModm9pZCkKIAkJIG1heF9zYWZlX2ZkcywgdXNhYmxlX2Zkcywg YWxyZWFkeV9vcGVuKTsKIH0KIAorCiAvKgogICogT3BlbiBhIGZpbGUgd2l0aCBCYXNpY09wZW5G aWxlUGVybSgpIGFuZCBwYXNzIGRlZmF1bHQgZmlsZSBtb2RlIGZvciB0aGUKICAqIGZpbGVNb2Rl IHBhcmFtZXRlci4KQEAgLTI3MjQsNiArMjgxMSw3IEBAIE9wZW5QaXBlU3RyZWFtKGNvbnN0IGNo YXIgKmNvbW1hbmQsIGNvbnN0IGNoYXIgKm1vZGUpCiAJUmVsZWFzZUxydUZpbGVzKCk7CiAKIFRy eUFnYWluOgorCVJlc3RvcmVPcmlnaW5hbE9wZW5GaWxlTGltaXQoKTsKIAlmZmx1c2goTlVMTCk7 CiAJcHFzaWduYWwoU0lHUElQRSwgU0lHX0RGTCk7CiAJZXJybm8gPSAwOwpAQCAtMjczMSw2ICsy ODE5LDcgQEAgVHJ5QWdhaW46CiAJc2F2ZV9lcnJubyA9IGVycm5vOwogCXBxc2lnbmFsKFNJR1BJ UEUsIFNJR19JR04pOwogCWVycm5vID0gc2F2ZV9lcnJubzsKKwlSZXN0b3JlQ3VzdG9tT3BlbkZp bGVMaW1pdCgpOwogCWlmIChmaWxlICE9IE5VTEwpCiAJewogCQlBbGxvY2F0ZURlc2MgKmRlc2Mg PSAmYWxsb2NhdGVkRGVzY3NbbnVtQWxsb2NhdGVkRGVzY3NdOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9mZC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9mZC5oCmluZGV4IGUzMDY3 YWI2NTk3Li5kMjRlN2YxYzhkZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9mZC5o CisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvZmQuaApAQCAtMTc3LDYgKzE3Nyw4IEBAIGV4dGVy biB2b2lkIFJlbW92ZVBnVGVtcEZpbGVzKHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVtb3ZlUGdUZW1w RmlsZXNJbkRpcihjb25zdCBjaGFyICp0bXBkaXJuYW1lLCBib29sIG1pc3Npbmdfb2ssCiAJCQkJ CQkJCSAgIGJvb2wgdW5saW5rX2FsbCk7CiBleHRlcm4gYm9vbCBsb29rc19saWtlX3RlbXBfcmVs X25hbWUoY29uc3QgY2hhciAqbmFtZSk7CitleHRlcm4gdm9pZCBSZXN0b3JlT3JpZ2luYWxPcGVu RmlsZUxpbWl0KHZvaWQpOworZXh0ZXJuIHZvaWQgUmVzdG9yZUN1c3RvbU9wZW5GaWxlTGltaXQo dm9pZCk7CiAKIGV4dGVybiBpbnQJcGdfZnN5bmMoaW50IGZkKTsKIGV4dGVybiBpbnQJcGdfZnN5 bmNfbm9fd3JpdGV0aHJvdWdoKGludCBmZCk7Ci0tIAoyLjQzLjAKCg== --0000000000004e3cad062df8f739 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0003-Reflect-the-value-of-max_safe_fds-in-max_files_pe.patch" Content-Disposition: attachment; filename="v2-0003-Reflect-the-value-of-max_safe_fds-in-max_files_pe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m72g31hn2 RnJvbSA0NGMxOTYwMjVjYmY1N2EwOWY2YWExYmM3MDY0NmVkMjUzN2Q5NjU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8Z2l0aHViLXRlY2hAamVsdGVm Lm5sPgpEYXRlOiBXZWQsIDEyIEZlYiAyMDI1IDAxOjA4OjA3ICswMTAwClN1YmplY3Q6IFtQQVRD SCB2MiAzLzNdIFJlZmxlY3QgdGhlIHZhbHVlIG9mIG1heF9zYWZlX2ZkcyBpbgogbWF4X2ZpbGVz X3Blcl9wcm9jZXNzCgpJdCBpcyBjdXJyZW50bHkgaGFyZCB0byBmaWd1cmUgb3V0IGlmIG1heF9z YWZlX2ZkcyBpcyBzaWduaWZpY2FudGx5Cmxvd2VyIHRoYW4gbWF4X2ZpbGVzX3Blcl9wcm9jZXNz LiBUaGlzIHN0YXJ0cyByZWZsZWN0aW5nIHRoZSB2YWx1ZSBvZgptYXhfc2FmZV9mZHMgaW4gbWF4 X2ZpbGVzX3Blcl9wcm9jZXNzIGFmdGVyIG91ciBsaW1pdCBkZXRlY3Rpb24uIFdlCnN0aWxsIHdh bnQgdG8gaGF2ZSB0d28gc2VwYXJhdGUgdmFyaWFibGVzIGJlY2F1c2UgZm9yIHRoZSBib290c3Ry YXAgb3IKc3RhbmRhbG9uZS1iYWNrZW5kIGNhc2VzIHRoZWlyIHZhbHVlcyBkaWZmZXIgb24gcHVy cG9zZS4KLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYyB8IDMgKysrCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFn ZS9maWxlL2ZkLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYwppbmRleCAwNGZiOTNi ZTU2ZC4uMDVjMDc5MmU0ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9m ZC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9mZC5jCkBAIC0xMTQ5LDYgKzExNDks OSBAQCBzZXRfbWF4X3NhZmVfZmRzKHZvaWQpCiAKIAltYXhfc2FmZV9mZHMgPSBNaW4odXNhYmxl X2ZkcyAtIE5VTV9SRVNFUlZFRF9GRFMsIG1heF9maWxlc19wZXJfcHJvY2Vzcyk7CiAKKwkvKiBV cGRhdGUgR1VDIHZhcmlhYmxlIHRvIGFsbG93IHVzZXJzIHRvIHNlZSB0aGUgcmVzdWx0ICovCisJ bWF4X2ZpbGVzX3Blcl9wcm9jZXNzID0gbWF4X3NhZmVfZmRzOworCiAJLyoKIAkgKiBNYWtlIHN1 cmUgd2Ugc3RpbGwgaGF2ZSBlbm91Z2ggdG8gZ2V0IGJ5LgogCSAqLwotLSAKMi40My4wCgo= --0000000000004e3cad062df8f739--