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 1qBy8x-0005XC-Hl for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jun 2023 13:45:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qBy8w-0001pv-HE for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jun 2023 13:45:06 +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 1qBy8w-0001pm-1H for pgsql-hackers@lists.postgresql.org; Wed, 21 Jun 2023 13:45:06 +0000 Received: from smtp46.i.mail.ru ([95.163.41.84]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qBy8t-003pSn-5K for pgsql-hackers@lists.postgresql.org; Wed, 21 Jun 2023 13:45:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail4; h=In-Reply-To:References:Cc:To:From:Subject:MIME-Version:Date:Message-ID:Content-Type:From:Subject:Content-Type:Content-Transfer-Encoding:To:Cc; bh=NN6pePK13omylWD8zTCpEP5A4vNzs9zl8MgEeqjTmbg=; t=1687355103;x=1687445103; b=uNwQcis9Dh5E60govWDi2GrADkk8XIj3YTxgJqzs+D5Zn+A2kzQlWrFNyWC3/8TgUZxevJx5/BWuRg5qfCyQ8LnYobGUioSNB5F4mfgH9vsbN0GjLC1vqPbvflfCR27CTsLqNBXYKS3F1S670pFN/PrUCjI3eyp168As0lmippK78iNBLpVWFyCJN8OMwbtyCtsTgLFiUEWdywDsQBmMChlo7G03gpv24XI4dgrlKIHfB29KWEeoaC4Fd/z4OMyEh4IQt0XWbnnU4cYa+TwkrvyXMc2NIQJTfW1aUgVYeshamGG4JgSMRzJPaG9XL3gL2+4FVM3VfGcGrGF8IpyWcw==; Received: by smtp46.i.mail.ru with esmtpa (envelope-from ) id 1qBy8r-004mZs-AI; Wed, 21 Jun 2023 16:45:01 +0300 Content-Type: multipart/mixed; boundary="------------QQboeQtEFdilqIlbrzBLF3rI" Message-ID: <4530546a-3216-eaa9-4c92-92d33290a211@mail.ru> Date: Wed, 21 Jun 2023 16:45:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: Stack overflow issue From: Egor Chindyaskin To: Sascha Kuhl Cc: pgsql-hackers@lists.postgresql.org References: <1661334672.728714027@f473.i.mail.ru> <485cf2a2-d504-fb5f-6751-1085ccf614ec@mail.ru> Content-Language: en-US In-Reply-To: <485cf2a2-d504-fb5f-6751-1085ccf614ec@mail.ru> Authentication-Results: smtp46.i.mail.ru; auth=pass smtp.auth=kyzevan23@mail.ru smtp.mailfrom=kyzevan23@mail.ru X-Mailru-Src: smtp X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD95D99986233CC4DDCD825FF3AA070ECA3C2EE242F31DB0C21182A05F538085040927998A38BCCBA73A8C8090005B932DB759097C2968D43B4DAF8A944289E674A X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7A3DED2DACB82E709C2099A533E45F2D0395957E7521B51C2CFCAF695D4D8E9FCEA1F7E6F0F101C6778DA827A17800CE7CE4525FFB91B9BBCEA1F7E6F0F101C6723150C8DA25C47586E58E00D9D99D84E1BDDB23E98D2D38BE5CCB53A13BC8DBACCDD8B87099B0076F4498F7BE4892E7A20879F7C8C5043D14489FFFB0AA5F4BF176DF2183F8FC7C0618001F51B5FD3F9D2E47CDBA5A96583C09775C1D3CA48CFF1165EFABA1780A6117882F4460429724CE54428C33FAD30A8DF7F3B2552694AC26CFBAC0749D213D2E47CDBA5A9658378DA827A17800CE70F66C1863D8531DB9FA2833FD35BB23DF004C90652538430302FCEF25BFAB3454AD6D5ED66289B5278DA827A17800CE7542A00286BB660BFD32BA5DBAC0009BE395957E7521B51C20BC6067A898B09E4090A508E0FED6299176DF2183F8FC7C017849AFD6990B648CD04E86FAF290E2DB606B96278B59C421DD303D21008E29813377AFFFEAFD269A417C69337E82CC2E827F84554CEF50127C277FBC8AE2E8BA83251EDC214901ED5E8D9A59859A8B682BBBAF5DF00056E089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-B7AD71C0: 1B70FBA5C9BEEE72C9761FC34675ADEB871C96603B655635EE9D5CB6078CC77CC17F554A62E4A8110D10BAB907AB3466 X-C1DE0DAB: 0D63561A33F958A522EA89D6544F54CD851F7DC74D3B18DB7D4D6B48732EAE24F87CCE6106E1FC07E67D4AC08A07B9B01F9513A7CA91E555CB5012B2E24CD356 X-C8649E89: 1C3962B70DF3F0ADBF74143AD284FC71106E36FF2641B7B8DC8270968E61249B1004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D343C45ADCD169245FAE5E1B40E51A7CCC98E8D42A2FCB28BAB25FE9F77F2B713F9B3444B785FA18C0F1D7E09C32AA3244CCAF2199F0A722BE14C65AE7F7110E18081560E2432555DBB3A1A83191EB2B8F05DA084F8E80FEBD34AF0A84504E688C906B106A8FD94427783DB18EBE73F7D69 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojw7uTMtz3/lxP84IaV8+/fQ== X-Mailru-Sender: C10344ED1A7CE1C12DEB9E13603FD1B6DB03C7F1B56BB8F95B4F5B15148AF21FA0EEED6465C34208365156F7DE910A55A6B70F8ADAD59E57FEB1DB10838DE9C2D06E97F4F43AAF03B40905563537336E2E1669FC13402A1606FB6D1CEFB833A45FEEDEB644C299C0ED14614B50AE0675 X-Mras: Ok 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. --------------QQboeQtEFdilqIlbrzBLF3rI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello! In continuation of the topic I would like to suggest solution. This patch adds several checks to the vulnerable functions above. --------------QQboeQtEFdilqIlbrzBLF3rI Content-Type: text/x-patch; charset=UTF-8; name="v1-0001-Add-some-checks-to-avoid-stack-overflow.patch" Content-Disposition: attachment; filename="v1-0001-Add-some-checks-to-avoid-stack-overflow.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwppbmRleCBkODVlMzEzOTA4Li4xMDJkMGUx NTc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0zMDQzLDYgKzMwNDMs OSBAQCBDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQodm9pZCkKIAlUcmFuc2FjdGlvblN0YXRl IHMgPSBDdXJyZW50VHJhbnNhY3Rpb25TdGF0ZTsKIAlTYXZlZFRyYW5zYWN0aW9uQ2hhcmFj dGVyaXN0aWNzIHNhdmV0YzsKIAorCS8qIHNpbmNlIHRoaXMgZnVuY3Rpb24gcmVjdXJzZXMs IGl0IGNvdWxkIGJlIGRyaXZlbiB0byBzdGFjayBvdmVyZmxvdyAqLworCWNoZWNrX3N0YWNr X2RlcHRoKCk7CisKIAlTYXZlVHJhbnNhY3Rpb25DaGFyYWN0ZXJpc3RpY3MoJnNhdmV0Yyk7 CiAKIAlzd2l0Y2ggKHMtPmJsb2NrU3RhdGUpCkBAIC01NTAwLDYgKzU1MDMsOSBAQCBTaG93 VHJhbnNhY3Rpb25TdGF0ZVJlYyhjb25zdCBjaGFyICpzdHIsIFRyYW5zYWN0aW9uU3RhdGUg cykKIHsKIAlTdHJpbmdJbmZvRGF0YSBidWY7CiAKKwkvKiBzaW5jZSB0aGlzIGZ1bmN0aW9u IHJlY3Vyc2VzLCBpdCBjb3VsZCBiZSBkcml2ZW4gdG8gc3RhY2sgb3ZlcmZsb3cgKi8KKwlj aGVja19zdGFja19kZXB0aCgpOworCiAJaW5pdFN0cmluZ0luZm8oJmJ1Zik7CiAKIAlpZiAo cy0+bkNoaWxkWGlkcyA+IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2Rl cGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDdh Y2Y2NTRiZjguLjU4YTFkNzBiOGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBA IC03Niw2ICs3Niw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3R5cGVjbWRzLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgorI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVSZW1v dmUuaCIKQEAgLTUyNCw2ICs1MjUsMTEgQEAgZmluZERlcGVuZGVudE9iamVjdHMoY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCWlmIChzdGFja19hZGRyZXNzX3ByZXNlbnRfYWRk X2ZsYWdzKG9iamVjdCwgb2JqZmxhZ3MsIHN0YWNrKSkKIAkJcmV0dXJuOwogCisJLyogc2lu Y2UgdGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQgYmUgZHJpdmVuIHRvIHN0YWNr IG92ZXJmbG93LAorCSAqIGJlY2F1c2Ugb2YgdGhlIGRlZXAgZGVwZW5kZW5jeSB0cmVlLCBu b3Qgb25seSBkdWUgdG8gZGVwZW5kZW5jeSBsb29wcy4KKwkgKi8KKwljaGVja19zdGFja19k ZXB0aCgpOworCiAJLyoKIAkgKiBJdCdzIGFsc28gcG9zc2libGUgdGhhdCB0aGUgdGFyZ2V0 IG9iamVjdCBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlbHkKIAkgKiBwcm9jZXNzZWQgYW5k IHB1dCBpbnRvIHRhcmdldE9iamVjdHMuICBJZiBzbywgYWdhaW4gd2UganVzdCBhZGQgdGhl CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvaGVhcC5jCmluZGV4IDRmMDA2ODIwYjguLmE4ODU1MDkxM2QgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jCkBAIC01NTIsNiArNTUyLDkgQEAgQ2hlY2tBdHRyaWJ1dGVUeXBlKGNvbnN0 IGNoYXIgKmF0dG5hbWUsCiAJY2hhcgkJYXR0X3R5cHR5cGUgPSBnZXRfdHlwdHlwZShhdHR0 eXBpZCk7CiAJT2lkCQkJYXR0X3R5cGVsZW07CiAKKwkvKiBzaW5jZSB0aGlzIGZ1bmN0aW9u IHJlY3Vyc2VzLCBpdCBjb3VsZCBiZSBkcml2ZW4gdG8gc3RhY2sgb3ZlcmZsb3cgKi8KKwlj aGVja19zdGFja19kZXB0aCgpOworCiAJaWYgKGF0dF90eXB0eXBlID09IFRZUFRZUEVfUFNF VURPKQogCXsKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggN2M2OTdh Mjg1Yi4uZjIyZGE3OWM2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTY2 ODQsNiArNjY4NCw5IEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVk VGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlUdXBsZURlc2MJdHVwZGVzYzsKIAlG b3JtRGF0YV9wZ19hdHRyaWJ1dGUgKmFhdHRyW10gPSB7JmF0dHJpYnV0ZX07CiAKKwkvKiBz aW5jZSB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2VzLCBpdCBjb3VsZCBiZSBkcml2ZW4gdG8gc3Rh Y2sgb3ZlcmZsb3cgKi8KKwljaGVja19zdGFja19kZXB0aCgpOworCiAJLyogQXQgdG9wIGxl dmVsLCBwZXJtaXNzaW9uIGNoZWNrIHdhcyBkb25lIGluIEFUUHJlcENtZCwgZWxzZSBkbyBp dCAqLwogCWlmIChyZWN1cnNpbmcpCiAJCUFUU2ltcGxlUGVybWlzc2lvbnMoKCpjbWQpLT5z dWJ0eXBlLCByZWwsIEFUVF9UQUJMRSB8IEFUVF9GT1JFSUdOX1RBQkxFKTsKQEAgLTgzODMs NiArODM4NiwxMCBAQCBBVEV4ZWNEcm9wQ29sdW1uKExpc3QgKip3cXVldWUsIFJlbGF0aW9u IHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAogCS8qIEluaXRpYWxpemUgYWRkcnMgb24g dGhlIGZpcnN0IGludm9jYXRpb24gKi8KIAlBc3NlcnQoIXJlY3Vyc2luZyB8fCBhZGRycyAh PSBOVUxMKTsKKworCS8qIHNpbmNlIHRoaXMgZnVuY3Rpb24gcmVjdXJzZXMsIGl0IGNvdWxk IGJlIGRyaXZlbiB0byBzdGFjayBvdmVyZmxvdyAqLworCWNoZWNrX3N0YWNrX2RlcHRoKCk7 CisKIAlpZiAoIXJlY3Vyc2luZykKIAkJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJlc3Nlcygp OwogCkBAIC0xMDgzOSw2ICsxMDg0Niw5IEBAIEFURXhlY0FsdGVyQ29uc3RyUmVjdXJzZShD b25zdHJhaW50ICpjbWRjb24sIFJlbGF0aW9uIGNvbnJlbCwgUmVsYXRpb24gdGdyZWwsCiAJ T2lkCQkJcmVmcmVsaWQ7CiAJYm9vbAkJY2hhbmdlZCA9IGZhbHNlOwogCisJLyogc2luY2Ug dGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQgYmUgZHJpdmVuIHRvIHN0YWNrIG92 ZXJmbG93ICovCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKwogCWN1cnJjb24gPSAoRm9ybV9w Z19jb25zdHJhaW50KSBHRVRTVFJVQ1QoY29udHVwbGUpOwogCWNvbm9pZCA9IGN1cnJjb24t Pm9pZDsKIAlyZWZyZWxpZCA9IGN1cnJjb24tPmNvbmZyZWxpZDsKQEAgLTExODM5LDYgKzEx ODQ5LDkgQEAgQVRFeGVjRHJvcENvbnN0cmFpbnQoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFy ICpjb25zdHJOYW1lLAogCWJvb2wJCWlzX25vX2luaGVyaXRfY29uc3RyYWludCA9IGZhbHNl OwogCWNoYXIJCWNvbnR5cGU7CiAKKwkvKiBzaW5jZSB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2Vz LCBpdCBjb3VsZCBiZSBkcml2ZW4gdG8gc3RhY2sgb3ZlcmZsb3cgKi8KKwljaGVja19zdGFj a19kZXB0aCgpOworCiAJLyogQXQgdG9wIGxldmVsLCBwZXJtaXNzaW9uIGNoZWNrIHdhcyBk b25lIGluIEFUUHJlcENtZCwgZWxzZSBkbyBpdCAqLwogCWlmIChyZWN1cnNpbmcpCiAJCUFU U2ltcGxlUGVybWlzc2lvbnMoQVRfRHJvcENvbnN0cmFpbnQsIHJlbCwgQVRUX1RBQkxFIHwg QVRUX0ZPUkVJR05fVEFCTEUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5j CmluZGV4IGFhNTg0ODQ4Y2YuLjc3YTVlYjUyNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9jbGF1c2VzLmMKQEAgLTIzMTgsNiArMjMxOCwxMCBAQCBzdGF0aWMgTm9kZSAqCiBl dmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCQkgICBl dmFsX2NvbnN0X2V4cHJlc3Npb25zX2NvbnRleHQgKmNvbnRleHQpCiB7CisKKwkvKiBzaW5j ZSB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2VzLCBpdCBjb3VsZCBiZSBkcml2ZW4gdG8gc3RhY2sg b3ZlcmZsb3cgKi8KKwljaGVja19zdGFja19kZXB0aCgpOworCiAJaWYgKG5vZGUgPT0gTlVM TCkKIAkJcmV0dXJuIE5VTEw7CiAJc3dpdGNoIChub2RlVGFnKG5vZGUpKQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2V4ZWMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMKaW5kZXggYjU2MWYwZTdlOC4uZGM3YWIzODdl YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2V4ZWMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jCkBAIC0xMjMyLDYg KzEyMzIsOSBAQCBleGVjdXRlQm9vbEl0ZW0oSnNvblBhdGhFeGVjQ29udGV4dCAqY3h0LCBK c29uUGF0aEl0ZW0gKmpzcCwKIAlKc29uUGF0aEJvb2wgcmVzOwogCUpzb25QYXRoQm9vbCBy ZXMyOwogCisJLyogc2luY2UgdGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQgYmUg ZHJpdmVuIHRvIHN0YWNrIG92ZXJmbG93ICovCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKwog CWlmICghY2FuSGF2ZU5leHQgJiYganNwSGFzTmV4dChqc3ApKQogCQllbG9nKEVSUk9SLCAi Ym9vbGVhbiBqc29ucGF0aCBpdGVtIGNhbm5vdCBoYXZlIG5leHQgaXRlbSIpOwogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL21jeHQuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL21tZ3IvbWN4dC5jCmluZGV4IDBiMDA4MDJkZjcuLmNjMDZjMDBhNDkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvbWN4dC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL21tZ3IvbWN4dC5jCkBAIC0zOTIsNiArMzkyLDkgQEAgTWVtb3J5Q29udGV4dERlbGV0 ZShNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAJLyogQW5kIG5vdCBDdXJyZW50TWVtb3J5Q29u dGV4dCwgZWl0aGVyICovCiAJQXNzZXJ0KGNvbnRleHQgIT0gQ3VycmVudE1lbW9yeUNvbnRl eHQpOwogCisJLyogc2luY2UgdGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQgYmUg ZHJpdmVuIHRvIHN0YWNrIG92ZXJmbG93ICovCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKwog CS8qIHNhdmUgYSBmdW5jdGlvbiBjYWxsIGluIGNvbW1vbiBjYXNlIHdoZXJlIHRoZXJlIGFy ZSBubyBjaGlsZHJlbiAqLwogCWlmIChjb250ZXh0LT5maXJzdGNoaWxkICE9IE5VTEwpCiAJ CU1lbW9yeUNvbnRleHREZWxldGVDaGlsZHJlbihjb250ZXh0KTsKQEAgLTc1MCw2ICs3NTMs OSBAQCBNZW1vcnlDb250ZXh0U3RhdHNJbnRlcm5hbChNZW1vcnlDb250ZXh0IGNvbnRleHQs IGludCBsZXZlbCwKIAogCUFzc2VydChNZW1vcnlDb250ZXh0SXNWYWxpZChjb250ZXh0KSk7 CiAKKwkvKiBzaW5jZSB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2VzLCBpdCBjb3VsZCBiZSBkcml2 ZW4gdG8gc3RhY2sgb3ZlcmZsb3cgKi8KKwljaGVja19zdGFja19kZXB0aCgpOworCiAJLyog RXhhbWluZSB0aGUgY29udGV4dCBpdHNlbGYgKi8KIAljb250ZXh0LT5tZXRob2RzLT5zdGF0 cyhjb250ZXh0LAogCQkJCQkJCXByaW50ID8gTWVtb3J5Q29udGV4dFN0YXRzUHJpbnQgOiBO VUxMLApAQCAtOTE1LDYgKzkyMSw5IEBAIE1lbW9yeUNvbnRleHRDaGVjayhNZW1vcnlDb250 ZXh0IGNvbnRleHQpCiAKIAlBc3NlcnQoTWVtb3J5Q29udGV4dElzVmFsaWQoY29udGV4dCkp OwogCisJLyogc2luY2UgdGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQgYmUgZHJp dmVuIHRvIHN0YWNrIG92ZXJmbG93ICovCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKwogCWNv bnRleHQtPm1ldGhvZHMtPmNoZWNrKGNvbnRleHQpOwogCWZvciAoY2hpbGQgPSBjb250ZXh0 LT5maXJzdGNoaWxkOyBjaGlsZCAhPSBOVUxMOyBjaGlsZCA9IGNoaWxkLT5uZXh0Y2hpbGQp CiAJCU1lbW9yeUNvbnRleHRDaGVjayhjaGlsZCk7Cg== --------------QQboeQtEFdilqIlbrzBLF3rI--