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 1p0etG-0006m7-FU for pgsql-hackers@arkaria.postgresql.org; Thu, 01 Dec 2022 08:25:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p0etF-0000qz-Dg for pgsql-hackers@arkaria.postgresql.org; Thu, 01 Dec 2022 08:25:53 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p0etE-0000qa-Ba for pgsql-hackers@lists.postgresql.org; Thu, 01 Dec 2022 08:25:53 +0000 Received: from wnew3-smtp.messagingengine.com ([64.147.123.17]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p0etA-0000xT-Or for pgsql-hackers@postgresql.org; Thu, 01 Dec 2022 08:25:51 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.west.internal (Postfix) with ESMTP id DB52C2B06840 for ; Thu, 1 Dec 2022 03:25:46 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Thu, 01 Dec 2022 03:25:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1669883146; x= 1669890346; bh=eQOZvtt73SEYzbkCOzSu4wBaV7NlQGt04tGc3WfNhf4=; b=n ILtYezUUDF5ZRRbrGvJIUlOib5oGBclkloVcZYLK1+V2dWrMx/gJxPILtuR7wVy6 0xp9EC5GsHxNPqqec3fBUUfL8z97qpXVVN2G1f9Iq47S1g9Rs77FcYVEpDcTo6kh bpXgpRzT2wNhW+H1x/sdYxcNkOMcWjRMpkEWPXCljQ5ijoQwTf94RXIN8EHFQ4Wy jjJ3luHRcRK/MxZAuTt1WFlCMzKFRZO7WDasV2fg3kUmZ30SFlM4m6tOkDNa5RmJ gFXJ8xoej7A5GV/Hiaa2GeNUEfGoj3AHMeikoFR7XZATK7jaxj4ufOzY5sNUbWOz HL9xcYhA3IWhmNinH+3jw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrtdeggdduvddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfhffuvfesmhdtreertd efjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghi shgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvg hrnhepteevuedvieekieeghfevfffhhfdvjeevleelfeeikeeikedvffegteekuddtfeel necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvth gvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Thu, 1 Dec 2022 03:25:45 -0500 (EST) Content-Type: multipart/mixed; boundary="------------m01mvfk53tRGPd99KZkAeMQg" Message-ID: <11dda853-bb5b-59ba-a746-e168b1ce4bdb@enterprisedb.com> Date: Thu, 1 Dec 2022 09:25:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US From: Peter Eisentraut Subject: File API cleanup To: pgsql-hackers List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------m01mvfk53tRGPd99KZkAeMQg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here are a couple of patches that clean up the internal File API and related things a bit: 0001-Update-types-in-File-API.patch Make the argument types of the File API match stdio better: - Change the data buffer to void *, from char *. - Change FileWrite() data buffer to const on top of that. - Change amounts to size_t, from int. In passing, change the FilePrefetch() amount argument from int to off_t, to match the underlying posix_fadvise(). 0002-Remove-unnecessary-casts.patch Some code carefully cast all data buffer arguments for BufFileWrite() and BufFileRead() to void *, even though the arguments are already void * (and AFAICT were never anything else). Remove this unnecessary clutter. (I had initially thought these casts were related to the first patch, but as I said the BufFile API never used char * arguments, so this turned out to be unrelated, but still weird.) --------------m01mvfk53tRGPd99KZkAeMQg Content-Type: text/plain; charset=UTF-8; name="0001-Update-types-in-File-API.patch" Content-Disposition: attachment; filename="0001-Update-types-in-File-API.patch" Content-Transfer-Encoding: base64 RnJvbSAwY2EzNWI3NWUzODMyNzIzNTZiYTQ5MjExOTEzZDhhZWFkNWNhMTBkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAxIERlYyAyMDIyIDA4OjM2OjA5ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxLzJdIFVwZGF0ZSB0eXBlcyBpbiBGaWxlIEFQSQoKTWFrZSB0aGUgYXJndW1l bnQgdHlwZXMgb2YgdGhlIEZpbGUgQVBJIG1hdGNoIHN0ZGlvIGJldHRlcjoKCi0gQ2hhbmdl IHRoZSBkYXRhIGJ1ZmZlciB0byB2b2lkICosIGZyb20gY2hhciAqLgotIENoYW5nZSBGaWxl V3JpdGUoKSBkYXRhIGJ1ZmZlciB0byBjb25zdCBvbiB0b3Agb2YgdGhhdC4KLSBDaGFuZ2Ug YW1vdW50cyB0byBzaXplX3QsIGZyb20gaW50LgoKSW4gcGFzc2luZywgY2hhbmdlIHRoZSBG aWxlUHJlZmV0Y2goKSBhbW91bnQgYXJndW1lbnQgZnJvbSBpbnQgdG8Kb2ZmX3QsIHRvIG1h dGNoIHRoZSB1bmRlcmx5aW5nIHBvc2l4X2ZhZHZpc2UoKS4KLS0tCiBzcmMvYmFja2VuZC9z dG9yYWdlL2ZpbGUvZmQuYyB8IDggKysrKy0tLS0KIHNyYy9pbmNsdWRlL3N0b3JhZ2UvZmQu aCAgICAgIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9m ZC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKaW5kZXggNDE1MWNhZmVjNTQ3 Li5mNmM5MzgyMDIzMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9m ZC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9mZC5jCkBAIC0xOTgwLDcgKzE5 ODAsNyBAQCBGaWxlQ2xvc2UoRmlsZSBmaWxlKQogICogdG8gcmVhZCBpbnRvLgogICovCiBp bnQKLUZpbGVQcmVmZXRjaChGaWxlIGZpbGUsIG9mZl90IG9mZnNldCwgaW50IGFtb3VudCwg dWludDMyIHdhaXRfZXZlbnRfaW5mbykKK0ZpbGVQcmVmZXRjaChGaWxlIGZpbGUsIG9mZl90 IG9mZnNldCwgb2ZmX3QgYW1vdW50LCB1aW50MzIgd2FpdF9ldmVudF9pbmZvKQogewogI2lm IGRlZmluZWQoVVNFX1BPU0lYX0ZBRFZJU0UpICYmIGRlZmluZWQoUE9TSVhfRkFEVl9XSUxM TkVFRCkKIAlpbnQJCQlyZXR1cm5Db2RlOwpAQCAtMjAzMSw3ICsyMDMxLDcgQEAgRmlsZVdy aXRlYmFjayhGaWxlIGZpbGUsIG9mZl90IG9mZnNldCwgb2ZmX3QgbmJ5dGVzLCB1aW50MzIg d2FpdF9ldmVudF9pbmZvKQogfQogCiBpbnQKLUZpbGVSZWFkKEZpbGUgZmlsZSwgY2hhciAq YnVmZmVyLCBpbnQgYW1vdW50LCBvZmZfdCBvZmZzZXQsCitGaWxlUmVhZChGaWxlIGZpbGUs IHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGFtb3VudCwgb2ZmX3Qgb2Zmc2V0LAogCQkgdWludDMy IHdhaXRfZXZlbnRfaW5mbykKIHsKIAlpbnQJCQlyZXR1cm5Db2RlOwpAQCAtMjAzOSw3ICsy MDM5LDcgQEAgRmlsZVJlYWQoRmlsZSBmaWxlLCBjaGFyICpidWZmZXIsIGludCBhbW91bnQs IG9mZl90IG9mZnNldCwKIAogCUFzc2VydChGaWxlSXNWYWxpZChmaWxlKSk7CiAKLQlET19E QihlbG9nKExPRywgIkZpbGVSZWFkOiAlZCAoJXMpICIgSU5UNjRfRk9STUFUICIgJWQgJXAi LAorCURPX0RCKGVsb2coTE9HLCAiRmlsZVJlYWQ6ICVkICglcykgIiBJTlQ2NF9GT1JNQVQg IiAlenUgJXAiLAogCQkJICAgZmlsZSwgVmZkQ2FjaGVbZmlsZV0uZmlsZU5hbWUsCiAJCQkg ICAoaW50NjQpIG9mZnNldCwKIAkJCSAgIGFtb3VudCwgYnVmZmVyKSk7CkBAIC0yMDg3LDcg KzIwODcsNyBAQCBGaWxlUmVhZChGaWxlIGZpbGUsIGNoYXIgKmJ1ZmZlciwgaW50IGFtb3Vu dCwgb2ZmX3Qgb2Zmc2V0LAogfQogCiBpbnQKLUZpbGVXcml0ZShGaWxlIGZpbGUsIGNoYXIg KmJ1ZmZlciwgaW50IGFtb3VudCwgb2ZmX3Qgb2Zmc2V0LAorRmlsZVdyaXRlKEZpbGUgZmls ZSwgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3QgYW1vdW50LCBvZmZfdCBvZmZzZXQsCiAJ CSAgdWludDMyIHdhaXRfZXZlbnRfaW5mbykKIHsKIAlpbnQJCQlyZXR1cm5Db2RlOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9mZC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFn ZS9mZC5oCmluZGV4IGMwYTIxMjQ4N2Q5Mi4uNzE0NGZjOWY2MDUwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9zdG9yYWdlL2ZkLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9mZC5o CkBAIC0xMDIsOSArMTAyLDkgQEAgZXh0ZXJuIEZpbGUgUGF0aE5hbWVPcGVuRmlsZShjb25z dCBjaGFyICpmaWxlTmFtZSwgaW50IGZpbGVGbGFncyk7CiBleHRlcm4gRmlsZSBQYXRoTmFt ZU9wZW5GaWxlUGVybShjb25zdCBjaGFyICpmaWxlTmFtZSwgaW50IGZpbGVGbGFncywgbW9k ZV90IGZpbGVNb2RlKTsKIGV4dGVybiBGaWxlIE9wZW5UZW1wb3JhcnlGaWxlKGJvb2wgaW50 ZXJYYWN0KTsKIGV4dGVybiB2b2lkIEZpbGVDbG9zZShGaWxlIGZpbGUpOwotZXh0ZXJuIGlu dAlGaWxlUHJlZmV0Y2goRmlsZSBmaWxlLCBvZmZfdCBvZmZzZXQsIGludCBhbW91bnQsIHVp bnQzMiB3YWl0X2V2ZW50X2luZm8pOwotZXh0ZXJuIGludAlGaWxlUmVhZChGaWxlIGZpbGUs IGNoYXIgKmJ1ZmZlciwgaW50IGFtb3VudCwgb2ZmX3Qgb2Zmc2V0LCB1aW50MzIgd2FpdF9l dmVudF9pbmZvKTsKLWV4dGVybiBpbnQJRmlsZVdyaXRlKEZpbGUgZmlsZSwgY2hhciAqYnVm ZmVyLCBpbnQgYW1vdW50LCBvZmZfdCBvZmZzZXQsIHVpbnQzMiB3YWl0X2V2ZW50X2luZm8p OworZXh0ZXJuIGludAlGaWxlUHJlZmV0Y2goRmlsZSBmaWxlLCBvZmZfdCBvZmZzZXQsIG9m Zl90IGFtb3VudCwgdWludDMyIHdhaXRfZXZlbnRfaW5mbyk7CitleHRlcm4gaW50CUZpbGVS ZWFkKEZpbGUgZmlsZSwgdm9pZCAqYnVmZmVyLCBzaXplX3QgYW1vdW50LCBvZmZfdCBvZmZz ZXQsIHVpbnQzMiB3YWl0X2V2ZW50X2luZm8pOworZXh0ZXJuIGludAlGaWxlV3JpdGUoRmls ZSBmaWxlLCBjb25zdCB2b2lkICpidWZmZXIsIHNpemVfdCBhbW91bnQsIG9mZl90IG9mZnNl dCwgdWludDMyIHdhaXRfZXZlbnRfaW5mbyk7CiBleHRlcm4gaW50CUZpbGVTeW5jKEZpbGUg ZmlsZSwgdWludDMyIHdhaXRfZXZlbnRfaW5mbyk7CiBleHRlcm4gb2ZmX3QgRmlsZVNpemUo RmlsZSBmaWxlKTsKIGV4dGVybiBpbnQJRmlsZVRydW5jYXRlKEZpbGUgZmlsZSwgb2ZmX3Qg b2Zmc2V0LCB1aW50MzIgd2FpdF9ldmVudF9pbmZvKTsKCmJhc2UtY29tbWl0OiA0MzM1MTU1 N2QwZDJiOWM1ZTIwMjk4YjVmZWUyODQ5YWJlZjg2YWZmCi0tIAoyLjM4LjEKCg== --------------m01mvfk53tRGPd99KZkAeMQg Content-Type: text/plain; charset=UTF-8; name="0002-Remove-unnecessary-casts.patch" Content-Disposition: attachment; filename="0002-Remove-unnecessary-casts.patch" Content-Transfer-Encoding: base64 RnJvbSA4ZDA1MzBmYmY5MDk1YmMxNmZhMzQ2NWI2OWFlZjJjMzFjNGMzYzliIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAxIERlYyAyMDIyIDA4OjM2OjA5ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAyLzJdIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cwoKU29tZSBjb2RlIGNhcmVm dWxseSBjYXN0IGFsbCBkYXRhIGJ1ZmZlciBhcmd1bWVudHMgZm9yIEJ1ZkZpbGVXcml0ZSgp CmFuZCBCdWZGaWxlUmVhZCgpIHRvIHZvaWQgKiwgZXZlbiB0aG91Z2ggdGhlIGFyZ3VtZW50 cyBhcmUgYWxyZWFkeQp2b2lkICogKGFuZCBBRkFJQ1Qgd2VyZSBuZXZlciBhbnl0aGluZyBl bHNlKS4gIFJlbW92ZSB0aGlzIHVubmVjZXNzYXJ5CmNsdXR0ZXIuCi0tLQogc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUhhc2hqb2luLmMgfCAgOCArKysrLS0tLQogc3JjL2JhY2tlbmQv dXRpbHMvc29ydC90dXBsZXN0b3JlLmMgfCAxMiArKysrKystLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUhhc2hqb2luLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSGFzaGpvaW4uYwppbmRleCAyNzE4YzIxMTNmNTguLjNlMWE5OTdmOTIwZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUhhc2hqb2luLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUhhc2hqb2luLmMKQEAgLTEyMjcsOCArMTIyNyw4 IEBAIEV4ZWNIYXNoSm9pblNhdmVUdXBsZShNaW5pbWFsVHVwbGUgdHVwbGUsIHVpbnQzMiBo YXNodmFsdWUsCiAJCSpmaWxlcHRyID0gZmlsZTsKIAl9CiAKLQlCdWZGaWxlV3JpdGUoZmls ZSwgKHZvaWQgKikgJmhhc2h2YWx1ZSwgc2l6ZW9mKHVpbnQzMikpOwotCUJ1ZkZpbGVXcml0 ZShmaWxlLCAodm9pZCAqKSB0dXBsZSwgdHVwbGUtPnRfbGVuKTsKKwlCdWZGaWxlV3JpdGUo ZmlsZSwgJmhhc2h2YWx1ZSwgc2l6ZW9mKHVpbnQzMikpOworCUJ1ZkZpbGVXcml0ZShmaWxl LCB0dXBsZSwgdHVwbGUtPnRfbGVuKTsKIH0KIAogLyoKQEAgLTEyNjAsNyArMTI2MCw3IEBA IEV4ZWNIYXNoSm9pbkdldFNhdmVkVHVwbGUoSGFzaEpvaW5TdGF0ZSAqaGpzdGF0ZSwKIAkg KiB3ZSBjYW4gcmVhZCB0aGVtIGJvdGggaW4gb25lIEJ1ZkZpbGVSZWFkKCkgY2FsbCB3aXRo b3V0IGFueSB0eXBlCiAJICogY2hlYXRpbmcuCiAJICovCi0JbnJlYWQgPSBCdWZGaWxlUmVh ZChmaWxlLCAodm9pZCAqKSBoZWFkZXIsIHNpemVvZihoZWFkZXIpKTsKKwlucmVhZCA9IEJ1 ZkZpbGVSZWFkKGZpbGUsIGhlYWRlciwgc2l6ZW9mKGhlYWRlcikpOwogCWlmIChucmVhZCA9 PSAwKQkJCQkvKiBlbmQgb2YgZmlsZSAqLwogCXsKIAkJRXhlY0NsZWFyVHVwbGUodHVwbGVT bG90KTsKQEAgLTEyNzUsNyArMTI3NSw3IEBAIEV4ZWNIYXNoSm9pbkdldFNhdmVkVHVwbGUo SGFzaEpvaW5TdGF0ZSAqaGpzdGF0ZSwKIAl0dXBsZSA9IChNaW5pbWFsVHVwbGUpIHBhbGxv YyhoZWFkZXJbMV0pOwogCXR1cGxlLT50X2xlbiA9IGhlYWRlclsxXTsKIAlucmVhZCA9IEJ1 ZkZpbGVSZWFkKGZpbGUsCi0JCQkJCQkodm9pZCAqKSAoKGNoYXIgKikgdHVwbGUgKyBzaXpl b2YodWludDMyKSksCisJCQkJCQkoKGNoYXIgKikgdHVwbGUgKyBzaXplb2YodWludDMyKSks CiAJCQkJCQloZWFkZXJbMV0gLSBzaXplb2YodWludDMyKSk7CiAJaWYgKG5yZWFkICE9IGhl YWRlclsxXSAtIHNpemVvZih1aW50MzIpKQogCQllcmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXN0b3JlLmMgYi9zcmMvYmFja2VuZC91 dGlscy9zb3J0L3R1cGxlc3RvcmUuYwppbmRleCBmNjA1ZWNlNzIxZWIuLmNjODg0YWIxMTY0 OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXN0b3JlLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXN0b3JlLmMKQEAgLTE0NjgsNyArMTQ2 OCw3IEBAIGdldGxlbihUdXBsZXN0b3Jlc3RhdGUgKnN0YXRlLCBib29sIGVvZk9LKQogCXVu c2lnbmVkIGludCBsZW47CiAJc2l6ZV90CQluYnl0ZXM7CiAKLQluYnl0ZXMgPSBCdWZGaWxl UmVhZChzdGF0ZS0+bXlmaWxlLCAodm9pZCAqKSAmbGVuLCBzaXplb2YobGVuKSk7CisJbmJ5 dGVzID0gQnVmRmlsZVJlYWQoc3RhdGUtPm15ZmlsZSwgJmxlbiwgc2l6ZW9mKGxlbikpOwog CWlmIChuYnl0ZXMgPT0gc2l6ZW9mKGxlbikpCiAJCXJldHVybiBsZW47CiAJaWYgKG5ieXRl cyAhPSAwIHx8ICFlb2ZPSykKQEAgLTE1MTIsMTAgKzE1MTIsMTAgQEAgd3JpdGV0dXBfaGVh cChUdXBsZXN0b3Jlc3RhdGUgKnN0YXRlLCB2b2lkICp0dXApCiAJLyogdG90YWwgb24tZGlz ayBmb290cHJpbnQ6ICovCiAJdW5zaWduZWQgaW50IHR1cGxlbiA9IHR1cGJvZHlsZW4gKyBz aXplb2YoaW50KTsKIAotCUJ1ZkZpbGVXcml0ZShzdGF0ZS0+bXlmaWxlLCAodm9pZCAqKSAm dHVwbGVuLCBzaXplb2YodHVwbGVuKSk7Ci0JQnVmRmlsZVdyaXRlKHN0YXRlLT5teWZpbGUs ICh2b2lkICopIHR1cGJvZHksIHR1cGJvZHlsZW4pOworCUJ1ZkZpbGVXcml0ZShzdGF0ZS0+ bXlmaWxlLCAmdHVwbGVuLCBzaXplb2YodHVwbGVuKSk7CisJQnVmRmlsZVdyaXRlKHN0YXRl LT5teWZpbGUsIHR1cGJvZHksIHR1cGJvZHlsZW4pOwogCWlmIChzdGF0ZS0+YmFja3dhcmQp CQkvKiBuZWVkIHRyYWlsaW5nIGxlbmd0aCB3b3JkPyAqLwotCQlCdWZGaWxlV3JpdGUoc3Rh dGUtPm15ZmlsZSwgKHZvaWQgKikgJnR1cGxlbiwgc2l6ZW9mKHR1cGxlbikpOworCQlCdWZG aWxlV3JpdGUoc3RhdGUtPm15ZmlsZSwgJnR1cGxlbiwgc2l6ZW9mKHR1cGxlbikpOwogCiAJ RlJFRU1FTShzdGF0ZSwgR2V0TWVtb3J5Q2h1bmtTcGFjZSh0dXBsZSkpOwogCWhlYXBfZnJl ZV9taW5pbWFsX3R1cGxlKHR1cGxlKTsKQEAgLTE1MzMsNyArMTUzMyw3IEBAIHJlYWR0dXBf aGVhcChUdXBsZXN0b3Jlc3RhdGUgKnN0YXRlLCB1bnNpZ25lZCBpbnQgbGVuKQogCVVTRU1F TShzdGF0ZSwgR2V0TWVtb3J5Q2h1bmtTcGFjZSh0dXBsZSkpOwogCS8qIHJlYWQgaW4gdGhl IHR1cGxlIHByb3BlciAqLwogCXR1cGxlLT50X2xlbiA9IHR1cGxlbjsKLQlucmVhZCA9IEJ1 ZkZpbGVSZWFkKHN0YXRlLT5teWZpbGUsICh2b2lkICopIHR1cGJvZHksIHR1cGJvZHlsZW4p OworCW5yZWFkID0gQnVmRmlsZVJlYWQoc3RhdGUtPm15ZmlsZSwgdHVwYm9keSwgdHVwYm9k eWxlbik7CiAJaWYgKG5yZWFkICE9IChzaXplX3QpIHR1cGJvZHlsZW4pCiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCkBAIC0xNTQxLDcgKzE1 NDEsNyBAQCByZWFkdHVwX2hlYXAoVHVwbGVzdG9yZXN0YXRlICpzdGF0ZSwgdW5zaWduZWQg aW50IGxlbikKIAkJCQkJCW5yZWFkLCAoc2l6ZV90KSB0dXBib2R5bGVuKSkpOwogCWlmIChz dGF0ZS0+YmFja3dhcmQpCQkvKiBuZWVkIHRyYWlsaW5nIGxlbmd0aCB3b3JkPyAqLwogCXsK LQkJbnJlYWQgPSBCdWZGaWxlUmVhZChzdGF0ZS0+bXlmaWxlLCAodm9pZCAqKSAmdHVwbGVu LCBzaXplb2YodHVwbGVuKSk7CisJCW5yZWFkID0gQnVmRmlsZVJlYWQoc3RhdGUtPm15Zmls ZSwgJnR1cGxlbiwgc2l6ZW9mKHR1cGxlbikpOwogCQlpZiAobnJlYWQgIT0gc2l6ZW9mKHR1 cGxlbikpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nl c3MoKSwKLS0gCjIuMzguMQoK --------------m01mvfk53tRGPd99KZkAeMQg--