Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jqA44-0006jZ-Lv for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2020 06:48:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jqA41-0007l2-WA for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2020 06:48:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jqA40-0007ku-VT for pgsql-hackers@lists.postgresql.org; Tue, 30 Jun 2020 06:48:17 +0000 Received: from [64.147.123.31] (helo=wforward2-smtp.messagingengine.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jqA3w-0005Ui-CY for pgsql-hackers@postgresql.org; Tue, 30 Jun 2020 06:48:16 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.west.internal (Postfix) with ESMTP id B108875F for ; Tue, 30 Jun 2020 02:47:59 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Tue, 30 Jun 2020 02:47:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=kX7Y+23oHprLiBIrhmu/DkFTU6dbm iEdfQ53hYVJZeo=; b=b9WeJDgTuPRCx97VFfXEb3eneRi7bj7uwDPJVZ+/kdVXL 6U96VyPwcjCPP5MFBaJ/8+p1Aaz2bxoqsse4UMdM9bD/L9aj1QdYvqZIcuT8uETm JxQ0IfNcSeVfOx5eiCzFJhLtIcLuu/UYPodw4vDk1+4JPozAU1o5yQvIh/9kThPv sCCuWVkcc1pyEKZYclyJiGlHyhPsx7EaOftcee/AcXC8qHJKh+mXH87Vzq/NXwcr pm93pIrQK8DQCMZuUZTaNxkd3Mm1LIWT9LNr93rUogLGZUaBQ64eVkmIPivnwZaR 3ELQ9NXkFMXUNq5cpyUrxEcm0lKuOYwJxPy/65TrA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrvddttddguddugecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephffuvfhokffffgggtgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhmqeenucggtffrrghtth gvrhhnpeegtdduteekveehleeiffehhfeileevgeefveekuefgkeevtddvheekleeuueev tdenucffohhmrghinhepphhoshhtghhrvghsqhhlrdhorhhgpddvnhguqhhurggurhgrnh htrdgtohhmnecukfhppeelfedrvdegfedrudeluddrvdefkeenucevlhhushhtvghrufhi iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrg huthesvdhnughquhgrughrrghnthdrtghomh X-ME-Proxy: Received: from april.pezone.net (p5df3bfee.dip0.t-ipconnect.de [93.243.191.238]) by mail.messagingengine.com (Postfix) with ESMTPA id 6557830600A8 for ; Tue, 30 Jun 2020 02:47:58 -0400 (EDT) From: Peter Eisentraut Subject: warnings for invalid function casts To: pgsql-hackers Organization: 2ndQuadrant Message-ID: <1e97628e-6447-b4fd-e230-d109cec2d584@2ndquadrant.com> Date: Tue, 30 Jun 2020 08:47:56 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------AEA308FA4F92D3125A05151B" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 64.147.123.31 (deferred) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------AEA308FA4F92D3125A05151B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Some time ago, there were some discussions about gcc warnings produced by -Wcast-function-type [0]. To clarify, while that thread seemed to imply that the warnings appear by default in some compiler version, this is not the case AFAICT, and the warnings are entirely optional. So I took a look at what it would take to fix all the warnings and came up with the attached patch. There are three subplots: 1. Changing the return type of load_external_function() and lookup_external_function() from PGFunction to a generic pointer type, which is what the discussion in [0] started out about. 2. There is a bit of cheating in dynahash.c. They keycopy field is declared as a function pointer that returns a pointer to the destination, to match the signature of memcpy(), but then we assign strlcpy() to it, which returns size_t. Even though we never use the return value, I'm not sure whether this could break if size_t and pointers are of different sizes, which in turn is very unlikely. 3. Finally, there is some nonsense necessary in plpython, which is annoying but otherwise uninteresting. Is there anything we want to pursue further here? [0]: https://www.postgresql.org/message-id/flat/20180206200205.f5kvbyn6jawtzi6s%40alap3.anarazel.de -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------AEA308FA4F92D3125A05151B Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Fix-Wcast-function-type-warnings.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Fix-Wcast-function-type-warnings.patch" RnJvbSA3MjEyZjNlMTMxMDdiZjI2MmRkMGUwYzRiYWViMmY4MTcwY2E2MDczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAzMCBKdW4gMjAyMCAwMToxOTo1NiArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEZpeCAtV2Nhc3QtZnVuY3Rpb24tdHlwZSB3YXJuaW5ncwoKRGlzY3Vzc2lv bjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzIwMTgwMjA2 MjAwMjA1LmY1a3ZieW42amF3dHppNnMlNDBhbGFwMy5hbmFyYXplbC5kZQotLS0KIGNvbmZp Z3VyZSAgICAgICAgICAgICAgICAgICAgICAgICB8IDkxICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGNvbmZpZ3VyZS5pbiAgICAgICAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZGZtZ3IuYyAgICB8IDE0ICsrLS0tCiBzcmMvYmFj a2VuZC91dGlscy9mbWdyL2ZtZ3IuYyAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMv aGFzaC9keW5haGFzaC5jIHwgMTEgKysrLQogc3JjL2luY2x1ZGUvZm1nci5oICAgICAgICAg ICAgICAgIHwgIDggKystCiBzcmMvcGwvcGxweXRob24vcGxweV9wbHB5bW9kdWxlLmMgfCAx NCArKy0tLQogNyBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDJmZWZm MzdmZTMuLjk5MDc2MzdlMzEgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1 cmUKQEAgLTU2NDMsNiArNTY0Myw5NyBAQCBpZiB0ZXN0IHgiJHBnYWNfY3ZfcHJvZ19DWFhf Y3h4ZmxhZ3NfX1dpbXBsaWNpdF9mYWxsdGhyb3VnaF8zIiA9IHgieWVzIjsgdGhlbgogZmkK IAogCisKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgd2hldGhlciAke0NDfSBzdXBwb3J0cyAtV2Nhc3QtZnVuY3Rpb24tdHlwZSwgZm9yIENG TEFHUyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7Q0N9IHN1cHBvcnRz IC1XY2FzdC1mdW5jdGlvbi10eXBlLCBmb3IgQ0ZMQUdTLi4uICIgPiY2OyB9CitpZiAke3Bn YWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX1djYXN0X2Z1bmN0aW9uX3R5cGUrOn0gZmFsc2U7IHRo ZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBwZ2FjX3NhdmVf Q0ZMQUdTPSRDRkxBR1MKK3BnYWNfc2F2ZV9DQz0kQ0MKK0NDPSR7Q0N9CitDRkxBR1M9IiR7 Q0ZMQUdTfSAtV2Nhc3QtZnVuY3Rpb24tdHlwZSIKK2FjX3NhdmVfY193ZXJyb3JfZmxhZz0k YWNfY193ZXJyb3JfZmxhZworYWNfY193ZXJyb3JfZmxhZz15ZXMKK2NhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KworaW50CittYWluICgpCit7CisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYg YWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBwZ2FjX2N2X3Byb2df Q0NfY2ZsYWdzX19XY2FzdF9mdW5jdGlvbl90eXBlPXllcworZWxzZQorICBwZ2FjX2N2X3By b2dfQ0NfY2ZsYWdzX19XY2FzdF9mdW5jdGlvbl90eXBlPW5vCitmaQorcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CithY19j X3dlcnJvcl9mbGFnPSRhY19zYXZlX2Nfd2Vycm9yX2ZsYWcKK0NGTEFHUz0iJHBnYWNfc2F2 ZV9DRkxBR1MiCitDQz0iJHBnYWNfc2F2ZV9DQyIKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3Nf X1djYXN0X2Z1bmN0aW9uX3R5cGUiID4mNQorJGFzX2VjaG8gIiRwZ2FjX2N2X3Byb2dfQ0Nf Y2ZsYWdzX19XY2FzdF9mdW5jdGlvbl90eXBlIiA+JjY7IH0KK2lmIHRlc3QgeCIkcGdhY19j dl9wcm9nX0NDX2NmbGFnc19fV2Nhc3RfZnVuY3Rpb25fdHlwZSIgPSB4InllcyI7IHRoZW4K KyAgQ0ZMQUdTPSIke0NGTEFHU30gLVdjYXN0LWZ1bmN0aW9uLXR5cGUiCitmaQorCisKKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0 aGVyICR7Q1hYfSBzdXBwb3J0cyAtV2Nhc3QtZnVuY3Rpb24tdHlwZSwgZm9yIENYWEZMQUdT IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtDWFh9IHN1cHBvcnRzIC1X Y2FzdC1mdW5jdGlvbi10eXBlLCBmb3IgQ1hYRkxBR1MuLi4gIiA+JjY7IH0KK2lmICR7cGdh Y19jdl9wcm9nX0NYWF9jeHhmbGFnc19fV2Nhc3RfZnVuY3Rpb25fdHlwZSs6fSBmYWxzZTsg dGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIHBnYWNfc2F2 ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKK3BnYWNfc2F2ZV9DWFg9JENYWAorQ1hYPSR7Q1hYfQor Q1hYRkxBR1M9IiR7Q1hYRkxBR1N9IC1XY2FzdC1mdW5jdGlvbi10eXBlIgorYWNfc2F2ZV9j eHhfd2Vycm9yX2ZsYWc9JGFjX2N4eF93ZXJyb3JfZmxhZworYWNfY3h4X3dlcnJvcl9mbGFn PXllcworYWNfZXh0PWNwcAorYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKworY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21h aW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jeHhf dHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgcGdhY19jdl9wcm9nX0NYWF9jeHhm bGFnc19fV2Nhc3RfZnVuY3Rpb25fdHlwZT15ZXMKK2Vsc2UKKyAgcGdhY19jdl9wcm9nX0NY WF9jeHhmbGFnc19fV2Nhc3RfZnVuY3Rpb25fdHlwZT1ubworZmkKK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorYWNfZXh0 PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2du dQorCithY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCitDWFhG TEFHUz0iJHBnYWNfc2F2ZV9DWFhGTEFHUyIKK0NYWD0iJHBnYWNfc2F2ZV9DWFgiCitmaQor eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRwZ2Fj X2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19XY2FzdF9mdW5jdGlvbl90eXBlIiA+JjUKKyRhc19l Y2hvICIkcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fV2Nhc3RfZnVuY3Rpb25fdHlwZSIg PiY2OyB9CitpZiB0ZXN0IHgiJHBnYWNfY3ZfcHJvZ19DWFhfY3h4ZmxhZ3NfX1djYXN0X2Z1 bmN0aW9uX3R5cGUiID0geCJ5ZXMiOyB0aGVuCisgIENYWEZMQUdTPSIke0NYWEZMQUdTfSAt V2Nhc3QtZnVuY3Rpb24tdHlwZSIKK2ZpCisKKwogICAjIFRoaXMgd2FzIGluY2x1ZGVkIGlu IC1XYWxsLy1XZm9ybWF0IGluIG9sZGVyIEdDQyB2ZXJzaW9ucwogCiB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJHtDQ30gc3Vw cG9ydHMgLVdmb3JtYXQtc2VjdXJpdHksIGZvciBDRkxBR1MiID4mNQpkaWZmIC0tZ2l0IGEv Y29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCmluZGV4IDAxODhjNmZmMDcuLjJlMDVjZTJl NGQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5pbgorKysgYi9jb25maWd1cmUuaW4KQEAgLTQ5 OCw2ICs0OTgsOCBAQCBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJElDQyIgPSBubzsgdGhl bgogICBQR0FDX1BST0dfQ1hYX0NGTEFHU19PUFQoWy1XbWlzc2luZy1mb3JtYXQtYXR0cmli dXRlXSkKICAgUEdBQ19QUk9HX0NDX0NGTEFHU19PUFQoWy1XaW1wbGljaXQtZmFsbHRocm91 Z2g9M10pCiAgIFBHQUNfUFJPR19DWFhfQ0ZMQUdTX09QVChbLVdpbXBsaWNpdC1mYWxsdGhy b3VnaD0zXSkKKyAgUEdBQ19QUk9HX0NDX0NGTEFHU19PUFQoWy1XY2FzdC1mdW5jdGlvbi10 eXBlXSkKKyAgUEdBQ19QUk9HX0NYWF9DRkxBR1NfT1BUKFstV2Nhc3QtZnVuY3Rpb24tdHlw ZV0pCiAgICMgVGhpcyB3YXMgaW5jbHVkZWQgaW4gLVdhbGwvLVdmb3JtYXQgaW4gb2xkZXIg R0NDIHZlcnNpb25zCiAgIFBHQUNfUFJPR19DQ19DRkxBR1NfT1BUKFstV2Zvcm1hdC1zZWN1 cml0eV0pCiAgIFBHQUNfUFJPR19DWFhfQ0ZMQUdTX09QVChbLVdmb3JtYXQtc2VjdXJpdHld KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9kZm1nci5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9kZm1nci5jCmluZGV4IDlkZmYxZjVlODIuLmNjZWY3NGFhZTUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZGZtZ3IuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9mbWdyL2RmbWdyLmMKQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIGNv bnN0IFBnX21hZ2ljX3N0cnVjdCBtYWdpY19kYXRhID0gUEdfTU9EVUxFX01BR0lDX0RBVEE7 CiAgKiBuYW1lZCBmdW5jbmFtZSBpbiBpdC4KICAqCiAgKiBJZiB0aGUgZnVuY3Rpb24gaXMg bm90IGZvdW5kLCB3ZSByYWlzZSBhbiBlcnJvciBpZiBzaWduYWxOb3RGb3VuZCBpcyB0cnVl LAotICogZWxzZSByZXR1cm4gKFBHRnVuY3Rpb24pIE5VTEwuICBOb3RlIHRoYXQgZXJyb3Jz IGluIGxvYWRpbmcgdGhlIGxpYnJhcnkKKyAqIGVsc2UgcmV0dXJuIChHZW5lcmljRnVuY1B0 cikgTlVMTC4gIE5vdGUgdGhhdCBlcnJvcnMgaW4gbG9hZGluZyB0aGUgbGlicmFyeQogICog d2lsbCBwcm92b2tlIGVyZXBvcnQoKSByZWdhcmRsZXNzIG9mIHNpZ25hbE5vdEZvdW5kLgog ICoKICAqIElmIGZpbGVoYW5kbGUgaXMgbm90IE5VTEwsIHRoZW4gKmZpbGVoYW5kbGUgd2ls bCBiZSBzZXQgdG8gYSBoYW5kbGUKQEAgLTEwMywxMyArMTAzLDEzIEBAIHN0YXRpYyBjb25z dCBQZ19tYWdpY19zdHJ1Y3QgbWFnaWNfZGF0YSA9IFBHX01PRFVMRV9NQUdJQ19EQVRBOwog ICogbG9va3VwX2V4dGVybmFsX2Z1bmN0aW9uIHRvIGxvb2t1cCBhZGRpdGlvbmFsIGZ1bmN0 aW9ucyBpbiB0aGUgc2FtZSBmaWxlCiAgKiBhdCBsZXNzIGNvc3QgdGhhbiByZXBlYXRpbmcg bG9hZF9leHRlcm5hbF9mdW5jdGlvbi4KICAqLwotUEdGdW5jdGlvbgorR2VuZXJpY0Z1bmNQ dHIKIGxvYWRfZXh0ZXJuYWxfZnVuY3Rpb24oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0 IGNoYXIgKmZ1bmNuYW1lLAogCQkJCQkgICBib29sIHNpZ25hbE5vdEZvdW5kLCB2b2lkICoq ZmlsZWhhbmRsZSkKIHsKIAljaGFyCSAgICpmdWxsbmFtZTsKIAl2b2lkCSAgICpsaWJfaGFu ZGxlOwotCVBHRnVuY3Rpb24JcmV0dmFsOworCUdlbmVyaWNGdW5jUHRyIHJldHZhbDsKIAog CS8qIEV4cGFuZCB0aGUgcG9zc2libHktYWJicmV2aWF0ZWQgZmlsZW5hbWUgdG8gYW4gZXhh Y3QgcGF0aCBuYW1lICovCiAJZnVsbG5hbWUgPSBleHBhbmRfZHluYW1pY19saWJyYXJ5X25h bWUoZmlsZW5hbWUpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIGxvYWRfZXh0ZXJuYWxfZnVuY3Rp b24oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmZ1bmNuYW1lLAogCQkqZmls ZWhhbmRsZSA9IGxpYl9oYW5kbGU7CiAKIAkvKiBMb29rIHVwIHRoZSBmdW5jdGlvbiB3aXRo aW4gdGhlIGxpYnJhcnkuICovCi0JcmV0dmFsID0gKFBHRnVuY3Rpb24pIGRsc3ltKGxpYl9o YW5kbGUsIGZ1bmNuYW1lKTsKKwlyZXR2YWwgPSBkbHN5bShsaWJfaGFuZGxlLCBmdW5jbmFt ZSk7CiAKIAlpZiAocmV0dmFsID09IE5VTEwgJiYgc2lnbmFsTm90Rm91bmQpCiAJCWVyZXBv cnQoRVJST1IsCkBAIC0xNjUsMTIgKzE2NSwxMiBAQCBsb2FkX2ZpbGUoY29uc3QgY2hhciAq ZmlsZW5hbWUsIGJvb2wgcmVzdHJpY3RlZCkKIAogLyoKICAqIExvb2t1cCBhIGZ1bmN0aW9u IHdob3NlIGxpYnJhcnkgZmlsZSBpcyBhbHJlYWR5IGxvYWRlZC4KLSAqIFJldHVybiAoUEdG dW5jdGlvbikgTlVMTCBpZiBub3QgZm91bmQuCisgKiBSZXR1cm4gKEdlbmVyaWNGdW5jUHRy KSBOVUxMIGlmIG5vdCBmb3VuZC4KICAqLwotUEdGdW5jdGlvbgorR2VuZXJpY0Z1bmNQdHIK IGxvb2t1cF9leHRlcm5hbF9mdW5jdGlvbih2b2lkICpmaWxlaGFuZGxlLCBjb25zdCBjaGFy ICpmdW5jbmFtZSkKIHsKLQlyZXR1cm4gKFBHRnVuY3Rpb24pIGRsc3ltKGZpbGVoYW5kbGUs IGZ1bmNuYW1lKTsKKwlyZXR1cm4gZGxzeW0oZmlsZWhhbmRsZSwgZnVuY25hbWUpOwogfQog CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggMDNjNjE0YjIzNC4uNjQ4OTA4ZGU5MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTQwMCw3ICs0MDAsNyBAQCBmbWdyX2luZm9f Q19sYW5nKE9pZCBmdW5jdGlvbklkLCBGbWdySW5mbyAqZmluZm8sIEhlYXBUdXBsZSBwcm9j ZWR1cmVUdXBsZSkKIAkJcHJvYmluc3RyaW5nID0gVGV4dERhdHVtR2V0Q1N0cmluZyhwcm9i aW5hdHRyKTsKIAogCQkvKiBMb29rIHVwIHRoZSBmdW5jdGlvbiBpdHNlbGYgKi8KLQkJdXNl cl9mbiA9IGxvYWRfZXh0ZXJuYWxfZnVuY3Rpb24ocHJvYmluc3RyaW5nLCBwcm9zcmNzdHJp bmcsIHRydWUsCisJCXVzZXJfZm4gPSAoUEdGdW5jdGlvbikgbG9hZF9leHRlcm5hbF9mdW5j dGlvbihwcm9iaW5zdHJpbmcsIHByb3NyY3N0cmluZywgdHJ1ZSwKIAkJCQkJCQkJCQkgJmxp YnJhcnloYW5kbGUpOwogCiAJCS8qIEdldCB0aGUgZnVuY3Rpb24gaW5mb3JtYXRpb24gcmVj b3JkIChyZWFsIG9yIGRlZmF1bHQpICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9oYXNoL2R5bmFoYXNoLmMgYi9zcmMvYmFja2VuZC91dGlscy9oYXNoL2R5bmFoYXNoLmMK aW5kZXggMjY4OGUyNzcyNi4uNDJlMzdhYmZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvaGFzaC9keW5haGFzaC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2hhc2gvZHlu YWhhc2guYwpAQCAtMjk3LDYgKzI5NywxNSBAQCBzdHJpbmdfY29tcGFyZShjb25zdCBjaGFy ICprZXkxLCBjb25zdCBjaGFyICprZXkyLCBTaXplIGtleXNpemUpCiAJcmV0dXJuIHN0cm5j bXAoa2V5MSwga2V5Miwga2V5c2l6ZSAtIDEpOwogfQogCisvKgorICogSGFzaENvcHlGdW5j IGZvciBzdHJpbmcga2V5cworICovCitzdGF0aWMgdm9pZCAqCitzdHJpbmdfY29weSh2b2lk ICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIFNpemUga2V5c2l6ZSkKK3sKKwlzdHJsY3B5KGRl c3QsIHNyYywga2V5c2l6ZSk7CisJcmV0dXJuIGRlc3Q7Cit9CiAKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKiBDUkVBVEUgUk9VVElORVMgKioqKioqKioqKioqKioqKioqKioqKi8K IApAQCAtMzk4LDcgKzQwNyw3IEBAIGhhc2hfY3JlYXRlKGNvbnN0IGNoYXIgKnRhYm5hbWUs IGxvbmcgbmVsZW0sIEhBU0hDVEwgKmluZm8sIGludCBmbGFncykKIAlpZiAoZmxhZ3MgJiBI QVNIX0tFWUNPUFkpCiAJCWhhc2hwLT5rZXljb3B5ID0gaW5mby0+a2V5Y29weTsKIAllbHNl IGlmIChoYXNocC0+aGFzaCA9PSBzdHJpbmdfaGFzaCkKLQkJaGFzaHAtPmtleWNvcHkgPSAo SGFzaENvcHlGdW5jKSBzdHJsY3B5OworCQloYXNocC0+a2V5Y29weSA9IHN0cmluZ19jb3B5 OwogCWVsc2UKIAkJaGFzaHAtPmtleWNvcHkgPSBtZW1jcHk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2ZtZ3IuaCBiL3NyYy9pbmNsdWRlL2ZtZ3IuaAppbmRleCBkMzQ5NTEwYjdj Li4zMzliMDIxY2JiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9mbWdyLmgKKysrIGIvc3Jj L2luY2x1ZGUvZm1nci5oCkBAIC0xOCw2ICsxOCw4IEBACiAjaWZuZGVmIEZNR1JfSAogI2Rl ZmluZSBGTUdSX0gKIAordHlwZWRlZiB2b2lkICgqR2VuZXJpY0Z1bmNQdHIpICh2b2lkKTsK KwogLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHByaW1ub2Rlcy5oIGhlcmUsIHNvIG1h a2Ugc29tZSBzdHViIHJlZmVyZW5jZXMgKi8KIHR5cGVkZWYgc3RydWN0IE5vZGUgKmZtTm9k ZVB0cjsKIHR5cGVkZWYgc3RydWN0IEFnZ3JlZiAqZm1BZ2dyZWZQdHI7CkBAIC03MTYsOSAr NzE4LDkgQEAgZXh0ZXJuIGJvb2wgQ2hlY2tGdW5jdGlvblZhbGlkYXRvckFjY2VzcyhPaWQg dmFsaWRhdG9yT2lkLCBPaWQgZnVuY3Rpb25PaWQpOwogICovCiBleHRlcm4gY2hhciAqRHlu YW1pY19saWJyYXJ5X3BhdGg7CiAKLWV4dGVybiBQR0Z1bmN0aW9uIGxvYWRfZXh0ZXJuYWxf ZnVuY3Rpb24oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmZ1bmNuYW1lLAot CQkJCQkJCQkJCSBib29sIHNpZ25hbE5vdEZvdW5kLCB2b2lkICoqZmlsZWhhbmRsZSk7Ci1l eHRlcm4gUEdGdW5jdGlvbiBsb29rdXBfZXh0ZXJuYWxfZnVuY3Rpb24odm9pZCAqZmlsZWhh bmRsZSwgY29uc3QgY2hhciAqZnVuY25hbWUpOworZXh0ZXJuIEdlbmVyaWNGdW5jUHRyIGxv YWRfZXh0ZXJuYWxfZnVuY3Rpb24oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIg KmZ1bmNuYW1lLAorCQkJCQkJCQkJCQkgYm9vbCBzaWduYWxOb3RGb3VuZCwgdm9pZCAqKmZp bGVoYW5kbGUpOworZXh0ZXJuIEdlbmVyaWNGdW5jUHRyIGxvb2t1cF9leHRlcm5hbF9mdW5j dGlvbih2b2lkICpmaWxlaGFuZGxlLCBjb25zdCBjaGFyICpmdW5jbmFtZSk7CiBleHRlcm4g dm9pZCBsb2FkX2ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIGJvb2wgcmVzdHJpY3RlZCk7 CiBleHRlcm4gdm9pZCAqKmZpbmRfcmVuZGV6dm91c192YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lKTsKIGV4dGVybiBTaXplIEVzdGltYXRlTGlicmFyeVN0YXRlU3BhY2Uodm9pZCk7 CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24vcGxweV9wbHB5bW9kdWxlLmMgYi9zcmMv cGwvcGxweXRob24vcGxweV9wbHB5bW9kdWxlLmMKaW5kZXggZTMwOGM2MWQ1MC4uZjMwMTA3 M2M3YiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3BscHlfcGxweW1vZHVsZS5jCisr KyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3BscHltb2R1bGUuYwpAQCAtNjEsMTMgKzYxLDEz IEBAIHN0YXRpYyBQeU1ldGhvZERlZiBQTHlfbWV0aG9kc1tdID0gewogCS8qCiAJICogbG9n Z2luZyBtZXRob2RzCiAJICovCi0JeyJkZWJ1ZyIsIChQeUNGdW5jdGlvbikgUEx5X2RlYnVn LCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBOVUxMfSwKLQl7ImxvZyIsIChQeUNG dW5jdGlvbikgUEx5X2xvZywgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgTlVMTH0s Ci0JeyJpbmZvIiwgKFB5Q0Z1bmN0aW9uKSBQTHlfaW5mbywgTUVUSF9WQVJBUkdTIHwgTUVU SF9LRVlXT1JEUywgTlVMTH0sCi0JeyJub3RpY2UiLCAoUHlDRnVuY3Rpb24pIFBMeV9ub3Rp Y2UsIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsIE5VTEx9LAotCXsid2FybmluZyIs IChQeUNGdW5jdGlvbikgUEx5X3dhcm5pbmcsIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09S RFMsIE5VTEx9LAotCXsiZXJyb3IiLCAoUHlDRnVuY3Rpb24pIFBMeV9lcnJvciwgTUVUSF9W QVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgTlVMTH0sCi0JeyJmYXRhbCIsIChQeUNGdW5jdGlv bikgUEx5X2ZhdGFsLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBOVUxMfSwKKwl7 ImRlYnVnIiwgKFB5Q0Z1bmN0aW9uKSAoR2VuZXJpY0Z1bmNQdHIpIFBMeV9kZWJ1ZywgTUVU SF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgTlVMTH0sCisJeyJsb2ciLCAoUHlDRnVuY3Rp b24pIChHZW5lcmljRnVuY1B0cikgUEx5X2xvZywgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlX T1JEUywgTlVMTH0sCisJeyJpbmZvIiwgKFB5Q0Z1bmN0aW9uKSAoR2VuZXJpY0Z1bmNQdHIp IFBMeV9pbmZvLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBOVUxMfSwKKwl7Im5v dGljZSIsIChQeUNGdW5jdGlvbikgKEdlbmVyaWNGdW5jUHRyKSBQTHlfbm90aWNlLCBNRVRI X1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBOVUxMfSwKKwl7Indhcm5pbmciLCAoUHlDRnVu Y3Rpb24pIChHZW5lcmljRnVuY1B0cikgUEx5X3dhcm5pbmcsIE1FVEhfVkFSQVJHUyB8IE1F VEhfS0VZV09SRFMsIE5VTEx9LAorCXsiZXJyb3IiLCAoUHlDRnVuY3Rpb24pIChHZW5lcmlj RnVuY1B0cikgUEx5X2Vycm9yLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBOVUxM fSwKKwl7ImZhdGFsIiwgKFB5Q0Z1bmN0aW9uKSAoR2VuZXJpY0Z1bmNQdHIpIFBMeV9mYXRh bCwgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgTlVMTH0sCiAKIAkvKgogCSAqIGNy ZWF0ZSBhIHN0b3JlZCBwbGFuCi0tIAoyLjI3LjAKCg== --------------AEA308FA4F92D3125A05151B--