From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 0CEB54710B for ; Thu, 27 Jul 2023 17:41:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7D92868CA6C; Thu, 27 Jul 2023 20:41:02 +0300 (EEST) Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.131]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 63EB168C765 for ; Thu, 27 Jul 2023 20:40:56 +0300 (EEST) Received: from Reimars-Air.fritz.box ([155.4.74.59]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MScDh-1qImX02VfF-00StM0; Thu, 27 Jul 2023 19:40:55 +0200 From: Reimar.Doeffinger@gmx.de To: ffmpeg-devel@ffmpeg.org Date: Thu, 27 Jul 2023 19:40:51 +0200 Message-Id: <20230727174051.9191-1-Reimar.Doeffinger@gmx.de> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: References: MIME-Version: 1.0 X-Provags-ID: V03:K1:gE/EGIqmgp6x0ZM+Oowi/BX++LJ7o3dSWnW3BDP9u/X97z8IPm3 qk1z1sGWuv4/6M8HAJIb0t1Ha4eNIsjJQZr3ixgTkIkduCG6ZAFeJpS1U0fA+fkvLiAEWTI aQDYTACllUVFSOD1vVQDQZXJJXvbtFsOso27gj/udRebQYlaAo5THzgabnambOaUiLekX+A Kd0rPHJcssDYntWJly/kg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Ua1DmLSeuGM=;MuEDoSZ+LtG+4/9c5IFV5C661FW Dfm6CrtZbbuGxpYIEVUWGYGKCKmkF1pkDimwxsmGMWGGuIX21uxXqV7Y7YuxYBlnogimruAX/ LNfhf1q2bTCYOc5ZdYbse51N+GcIrFgHEZdN2pJIK5GhqeNlcLiw7OHrQ7i5A7277qn69qSI3 OQCKUVD18NBDrExk64abBwT4KLeAEM/fyycfZCzbvCnAHpKNexUwg23m1mB9ch/YfIafZV8yD aNmtEZxJREgQhdL5rmuvFNIEXaP1/OlfXYvV4TO6pbaNXddURQscQUMU3Zeh0rWKVlYYM2CA7 tvEbapX7Pyb+rlIbAbFC3Yaf4QA3BnS/FV0GlnFDE9KE4RAQHW+xiJ1Txlary7er89erjxtfX MLfE6jDR2ewwv6vcKmJfWKaOPCY84+PHn60WxlFxMuu/uiC3SJHUI1DJT9k39+P4S9gukOOla b1kF0TEt1+SJ272Mz2L5weia38a3iqC7goREYrxVT8l19Wy9uYEl1sbxTUIgskxaIne+M6MYZ psfsenMMUmvslGBmIHuS3kt+IAq+T+spBRQ2hJ51aYMRZbD2V9XaaelKSafSMtHydpdLtI5U/ +5m8DOEj2x+rFIdorFJiwKRMVsUK7Ms2cnpOh535fSQe3euszVj9jqMSXnmH5ITT43l8uGcnR Cg3j3cdJjDvFpDlmQPkCcYmMeXbq+XZLNJ8898XtU1Hyd3950n884Y1h0zl9mfKnP6sCjUHvF UWqi71uJAJOQTuHfhKOc/XqsFpv2/BQ+bTgwjXOUH1izvGxr1LADk5frX6F2LTYUl30uyJm3U rmGkDRqsLXZ77I6iW3nIKatNHs7YEACEEjkFQ5RoZ94b0f1VaijF9TU93e+67FsnPQMQUk5IT tR3POBz1SIOcC2g== Subject: [FFmpeg-devel] [PATCH] libavformat: fix incorrect handling of incomplete AVBPrint. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RnJvbTogUmVpbWFyIETDtmZmaW5nZXIgPFJlaW1hci5Eb2VmZmluZ2VyQGdteC5kZT4KCkNoYW5n ZSBzb21lIGludGVybmFsIEFQSXMgYSBiaXQgdG8gbWFrZSBpdCBoYXJkZXIgdG8gbWFrZQpzdWNo IG1pc3Rha2VzLgpJbiBwYXJ0aWN1bGFyLCBoYXZlIHRoZSByZWFkIGNodW5rIGZ1bmN0aW9ucyBy ZXR1cm4gYW4gZXJyb3IKd2hlbiB0aGUgcmVzdWx0IGlzIGluY29tcGxldGUuClRoaXMgbWlnaHQg YmUgbGVzcyBmbGV4aWJsZSwgYnV0IHNpbmNlIHRoZXJlIGhhcyBiZWVuIG5vCnVzZS1jYXNlIGZv ciB0aGF0IHNvIGZhciwgYXZvaWRpbmcgY29kaW5nIG1pc3Rha2VzIHNlZW1zIGJldHRlci4KQWRk IGEgZnVuY3Rpb24gdG8gcXVldWUgYSBBVkJQcmludCBkaXJlY3RseSAoZmZfc3VidGl0bGVzX3F1 ZXVlX2luc2VydF9icHJpbnQpLgpBbHNvIGZpeGVzIGEgbGVhayBpbiBscmNkZWMgd2hlbiBmZl9z dWJ0aXRsZXNfcXVldWVfaW5zZXJ0IGZhaWxzLgoKU2lnbmVkLW9mZi1ieTogUmVpbWFyIETDtmZm aW5nZXIgPFJlaW1hci5Eb2VmZmluZ2VyQGdteC5kZT4KLS0tCiBsaWJhdmZvcm1hdC9hc3NkZWMu YyAgICAgICAgIHwgIDQgKysrLQogbGliYXZmb3JtYXQvbHJjZGVjLmMgICAgICAgICB8ICA3ICsr KysrKy0KIGxpYmF2Zm9ybWF0L21wc3ViZGVjLmMgICAgICAgfCAgNSArKystLQogbGliYXZmb3Jt YXQvcmVhbHRleHRkZWMuYyAgICB8ICA2ICsrKysrLQogbGliYXZmb3JtYXQvc2FtaWRlYy5jICAg ICAgICB8ICA2ICsrKysrLQogbGliYXZmb3JtYXQvc3J0ZGVjLmMgICAgICAgICB8ICA0ICsrKy0K IGxpYmF2Zm9ybWF0L3N1YnRpdGxlcy5jICAgICAgfCAxOSArKysrKysrKysrKysrKystLS0tCiBs aWJhdmZvcm1hdC9zdWJ0aXRsZXMuaCAgICAgIHwgMTQgKysrKysrKysrKysrLS0KIGxpYmF2Zm9y bWF0L3RlZGNhcHRpb25zZGVjLmMgfCAgMiArLQogbGliYXZmb3JtYXQvd2VidnR0ZGVjLmMgICAg ICB8ICA0ICsrKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDE1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2Fzc2RlYy5jIGIvbGliYXZmb3JtYXQv YXNzZGVjLmMKaW5kZXggMDkxNWY2ZmFmZC4uYmY3YjhhNzNhMiAxMDA2NDQKLS0tIGEvbGliYXZm b3JtYXQvYXNzZGVjLmMKKysrIGIvbGliYXZmb3JtYXQvYXNzZGVjLmMKQEAgLTczLDYgKzczLDgg QEAgc3RhdGljIGludCByZWFkX2RpYWxvZ3VlKEFTU0NvbnRleHQgKmFzcywgQVZCUHJpbnQgKmRz dCwgY29uc3QgdWludDhfdCAqcCwKIAogICAgICAgICBhdl9icHJpbnRfY2xlYXIoZHN0KTsKICAg ICAgICAgYXZfYnByaW50Zihkc3QsICIldSwlZCwlcyIsIGFzcy0+cmVhZG9yZGVyKyssIGxheWVy LCBwICsgcG9zKTsKKyAgICAgICAgaWYgKCFhdl9icHJpbnRfaXNfY29tcGxldGUoZHN0KSkKKyAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAKICAgICAgICAgLyogcmlnaHQgc3Ry aXAgdGhlIGJ1ZmZlciAqLwogICAgICAgICB3aGlsZSAoZHN0LT5sZW4gPiAwICYmCkBAIC0xMzUs NyArMTM3LDcgQEAgc3RhdGljIGludCBhc3NfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpz KQogICAgICAgICAgICAgYXZfYnByaW50ZigmaGVhZGVyLCAiJXMiLCBsaW5lLnN0cik7CiAgICAg ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBzdWIgPSBmZl9zdWJ0aXRsZXNf cXVldWVfaW5zZXJ0KCZhc3MtPnEsIHJsaW5lLnN0ciwgcmxpbmUubGVuLCAwKTsKKyAgICAgICAg c3ViID0gZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydF9icHJpbnQoJmFzcy0+cSwgJnJsaW5lLCAw KTsKICAgICAgICAgaWYgKCFzdWIpIHsKICAgICAgICAgICAgIHJlcyA9IEFWRVJST1IoRU5PTUVN KTsKICAgICAgICAgICAgIGdvdG8gZW5kOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbHJjZGVj LmMgYi9saWJhdmZvcm1hdC9scmNkZWMuYwppbmRleCBmZmYzOTQ5NWY4Li44M2JiNGE0Yjc1IDEw MDY0NAotLS0gYS9saWJhdmZvcm1hdC9scmNkZWMuYworKysgYi9saWJhdmZvcm1hdC9scmNkZWMu YwpAQCAtMTcxLDYgKzE3MSw4IEBAIHN0YXRpYyBpbnQgbHJjX3JlYWRfaGVhZGVyKEFWRm9ybWF0 Q29udGV4dCAqcykKIAogICAgIHdoaWxlKCFhdmlvX2Zlb2Yocy0+cGIpKSB7CiAgICAgICAgIGlu dDY0X3QgcG9zID0gcmVhZF9saW5lKCZsaW5lLCBzLT5wYik7CisgICAgICAgIGlmICghYXZfYnBy aW50X2lzX2NvbXBsZXRlKCZsaW5lKSkKKyAgICAgICAgICAgIGdvdG8gZXJyX25vbWVtX291dDsK ICAgICAgICAgaW50NjRfdCBoZWFkZXJfb2Zmc2V0ID0gZmluZF9oZWFkZXIobGluZS5zdHIpOwog ICAgICAgICBpZihoZWFkZXJfb2Zmc2V0ID49IDApIHsKICAgICAgICAgICAgIGNoYXIgKmNvbW1h X29mZnNldCA9IHN0cmNocihsaW5lLnN0ciwgJzonKTsKQEAgLTIwNSw3ICsyMDcsNyBAQCBzdGF0 aWMgaW50IGxyY19yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgICAgICAg ICAgc3ViID0gZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydCgmbHJjLT5xLCBsaW5lLnN0ciArIHRz X3N0cmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpbmUubGVuIC0gdHNfc3RybGVuZ3RoLCAwKTsKICAgICAgICAgICAgICAgICBpZiAoIXN1 YikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAg ICAgICAgICAgICAgZ290byBlcnJfbm9tZW1fb3V0OwogICAgICAgICAgICAgICAgIHN1Yi0+cG9z ID0gcG9zOwogICAgICAgICAgICAgICAgIHN1Yi0+cHRzID0gdHNfc3RhcnQgLSBscmMtPnRzX29m ZnNldDsKICAgICAgICAgICAgICAgICBzdWItPmR1cmF0aW9uID0gLTE7CkBAIC0yMTYsNiArMjE4 LDkgQEAgc3RhdGljIGludCBscmNfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAg IGZmX21ldGFkYXRhX2NvbnZfY3R4KHMsIE5VTEwsIGZmX2xyY19tZXRhZGF0YV9jb252KTsKICAg ICBhdl9icHJpbnRfZmluYWxpemUoJmxpbmUsIE5VTEwpOwogICAgIHJldHVybiAwOworZXJyX25v bWVtX291dDoKKyAgICBhdl9icHJpbnRfZmluYWxpemUoJmxpbmUsIE5VTEwpOworICAgIHJldHVy biBBVkVSUk9SKEVOT01FTSk7CiB9CiAKIGNvbnN0IEFWSW5wdXRGb3JtYXQgZmZfbHJjX2RlbXV4 ZXIgPSB7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9tcHN1YmRlYy5jIGIvbGliYXZmb3JtYXQv bXBzdWJkZWMuYwppbmRleCBkMjkwYTQxZmI5Li4wMzc0NTYzNTc1IDEwMDY0NAotLS0gYS9saWJh dmZvcm1hdC9tcHN1YmRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L21wc3ViZGVjLmMKQEAgLTExNiw5 ICsxMTYsMTAgQEAgc3RhdGljIGludCBtcHN1Yl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQg KnMpCiAgICAgICAgICAgICBBVlBhY2tldCAqc3ViOwogICAgICAgICAgICAgY29uc3QgaW50NjRf dCBwb3MgPSBhdmlvX3RlbGwocy0+cGIpOwogCi0gICAgICAgICAgICBmZl9zdWJ0aXRsZXNfcmVh ZF9jaHVuayhzLT5wYiwgJmJ1Zik7CisgICAgICAgICAgICByZXMgPSBmZl9zdWJ0aXRsZXNfcmVh ZF9jaHVuayhzLT5wYiwgJmJ1Zik7CisgICAgICAgICAgICBpZiAocmVzIDwgMCkgZ290byBlbmQ7 CiAgICAgICAgICAgICBpZiAoYnVmLmxlbikgewotICAgICAgICAgICAgICAgIHN1YiA9IGZmX3N1 YnRpdGxlc19xdWV1ZV9pbnNlcnQoJm1wc3ViLT5xLCBidWYuc3RyLCBidWYubGVuLCAwKTsKKyAg ICAgICAgICAgICAgICBzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0X2JwcmludCgmbXBz dWItPnEsICZidWYsIDApOwogICAgICAgICAgICAgICAgIGlmICghc3ViKSB7CiAgICAgICAgICAg ICAgICAgICAgIHJlcyA9IEFWRVJST1IoRU5PTUVNKTsKICAgICAgICAgICAgICAgICAgICAgZ290 byBlbmQ7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9yZWFsdGV4dGRlYy5jIGIvbGliYXZmb3Jt YXQvcmVhbHRleHRkZWMuYwppbmRleCBjMjgxZGVjMzQ2Li43OTkyYTViN2ZjIDEwMDY0NAotLS0g YS9saWJhdmZvcm1hdC9yZWFsdGV4dGRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L3JlYWx0ZXh0ZGVj LmMKQEAgLTgwLDYgKzgwLDEwIEBAIHN0YXRpYyBpbnQgcmVhbHRleHRfcmVhZF9oZWFkZXIoQVZG b3JtYXRDb250ZXh0ICpzKQogICAgICAgICBjb25zdCBpbnQ2NF90IHBvcyA9IGZmX3RleHRfcG9z KCZ0cikgLSAoYyAhPSAwKTsKICAgICAgICAgaW50IG4gPSBmZl9zbWlsX2V4dHJhY3RfbmV4dF90 ZXh0X2NodW5rKCZ0ciwgJmJ1ZiwgJmMpOwogCisgICAgICAgIGlmIChuIDwgMCkgeworICAgICAg ICAgICAgcmVzID0gbjsKKyAgICAgICAgICAgIGdvdG8gZW5kOworICAgICAgICB9CiAgICAgICAg IGlmIChuID09IDApCiAgICAgICAgICAgICBicmVhazsKIApAQCAtMTAzLDcgKzEwNyw3IEBAIHN0 YXRpYyBpbnQgcmVhbHRleHRfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAg ICAgICAgLyogaWYgd2UganVzdCByZWFkIGEgPHRpbWU+IHRhZywgaW50cm9kdWNlIGEgbmV3IGV2 ZW50LCBvdGhlcndpc2UgbWVyZ2UKICAgICAgICAgICAgICAqIHdpdGggdGhlIHByZXZpb3VzIG9u ZSAqLwogICAgICAgICAgICAgaW50IG1lcmdlID0gIWF2X3N0cm5jYXNlY21wKGJ1Zi5zdHIsICI8 dGltZSIsIDUpID8gMCA6IDE7Ci0gICAgICAgICAgICBzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVf aW5zZXJ0KCZydC0+cSwgYnVmLnN0ciwgYnVmLmxlbiwgbWVyZ2UpOworICAgICAgICAgICAgc3Vi ID0gZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydF9icHJpbnQoJnJ0LT5xLCAmYnVmLCBtZXJnZSk7 CiAgICAgICAgICAgICBpZiAoIXN1YikgewogICAgICAgICAgICAgICAgIHJlcyA9IEFWRVJST1Io RU5PTUVNKTsKICAgICAgICAgICAgICAgICBnb3RvIGVuZDsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9y bWF0L3NhbWlkZWMuYyBiL2xpYmF2Zm9ybWF0L3NhbWlkZWMuYwppbmRleCAwZGEyOTkzNDNkLi4w NzBiNjIzZWJmIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9zYW1pZGVjLmMKKysrIGIvbGliYXZm b3JtYXQvc2FtaWRlYy5jCkBAIC02OCw2ICs2OCwxMCBAQCBzdGF0aWMgaW50IHNhbWlfcmVhZF9o ZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICBjb25zdCBpbnQ2NF90IHBvcyA9IGZm X3RleHRfcG9zKCZ0cikgLSAoYyAhPSAwKTsKICAgICAgICAgaW50IGlzX3N5bmMsIGlzX2JvZHks IG4gPSBmZl9zbWlsX2V4dHJhY3RfbmV4dF90ZXh0X2NodW5rKCZ0ciwgJmJ1ZiwgJmMpOwogCisg ICAgICAgIGlmIChuIDwgMCkgeworICAgICAgICAgICAgcmVzID0gbjsKKyAgICAgICAgICAgIGdv dG8gZW5kOworICAgICAgICB9CiAgICAgICAgIGlmIChuID09IDApCiAgICAgICAgICAgICBicmVh azsKIApAQCAtODQsNyArODgsNyBAQCBzdGF0aWMgaW50IHNhbWlfcmVhZF9oZWFkZXIoQVZGb3Jt YXRDb250ZXh0ICpzKQogICAgICAgICBpZiAoIWdvdF9maXJzdF9zeW5jX3BvaW50KSB7CiAgICAg ICAgICAgICBhdl9icHJpbnRmKCZoZHJfYnVmLCAiJXMiLCBidWYuc3RyKTsKICAgICAgICAgfSBl bHNlIHsKLSAgICAgICAgICAgIHN1YiA9IGZmX3N1YnRpdGxlc19xdWV1ZV9pbnNlcnQoJnNhbWkt PnEsIGJ1Zi5zdHIsIGJ1Zi5sZW4sICFpc19zeW5jKTsKKyAgICAgICAgICAgIHN1YiA9IGZmX3N1 YnRpdGxlc19xdWV1ZV9pbnNlcnRfYnByaW50KCZzYW1pLT5xLCAmYnVmLCAhaXNfc3luYyk7CiAg ICAgICAgICAgICBpZiAoIXN1YikgewogICAgICAgICAgICAgICAgIHJlcyA9IEFWRVJST1IoRU5P TUVNKTsKICAgICAgICAgICAgICAgICBhdl9icHJpbnRfZmluYWxpemUoJmhkcl9idWYsIE5VTEwp OwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvc3J0ZGVjLmMgYi9saWJhdmZvcm1hdC9zcnRkZWMu YwppbmRleCBiZjAyNDUwNTU1Li42MzVjMTU1MGI5IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9z cnRkZWMuYworKysgYi9saWJhdmZvcm1hdC9zcnRkZWMuYwpAQCAtOTcsMTIgKzk3LDE0IEBAIHN0 YXRpYyBpbnQgYWRkX2V2ZW50KEZGRGVtdXhTdWJ0aXRsZXNRdWV1ZSAqcSwgQVZCUHJpbnQgKmJ1 ZiwgY2hhciAqbGluZV9jYWNoZSwKICAgICBpZiAoYXBwZW5kX2NhY2hlICYmIGxpbmVfY2FjaGVb MF0pCiAgICAgICAgIGF2X2JwcmludGYoYnVmLCAiJXNcbiIsIGxpbmVfY2FjaGUpOwogICAgIGxp bmVfY2FjaGVbMF0gPSAwOworICAgIGlmICghYXZfYnByaW50X2lzX2NvbXBsZXRlKGJ1ZikpCisg ICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAKICAgICB3aGlsZSAoYnVmLT5sZW4gPiAw ICYmIGJ1Zi0+c3RyW2J1Zi0+bGVuIC0gMV0gPT0gJ1xuJykKICAgICAgICAgYnVmLT5zdHJbLS1i dWYtPmxlbl0gPSAwOwogCiAgICAgaWYgKGJ1Zi0+bGVuKSB7Ci0gICAgICAgIEFWUGFja2V0ICpz dWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0KHEsIGJ1Zi0+c3RyLCBidWYtPmxlbiwgMCk7 CisgICAgICAgIEFWUGFja2V0ICpzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0X2Jwcmlu dChxLCBidWYsIDApOwogICAgICAgICBpZiAoIXN1YikKICAgICAgICAgICAgIHJldHVybiBBVkVS Uk9SKEVOT01FTSk7CiAgICAgICAgIGF2X2JwcmludF9jbGVhcihidWYpOwpkaWZmIC0tZ2l0IGEv bGliYXZmb3JtYXQvc3VidGl0bGVzLmMgYi9saWJhdmZvcm1hdC9zdWJ0aXRsZXMuYwppbmRleCAz YmE1ZTJiMjE3Li42YzIyMWU0YjI5IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9zdWJ0aXRsZXMu YworKysgYi9saWJhdmZvcm1hdC9zdWJ0aXRsZXMuYwpAQCAtMTQ1LDYgKzE0NSwxNCBAQCBBVlBh Y2tldCAqZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydChGRkRlbXV4U3VidGl0bGVzUXVldWUgKnEs CiAgICAgcmV0dXJuIHN1YjsKIH0KIAorQVZQYWNrZXQgKmZmX3N1YnRpdGxlc19xdWV1ZV9pbnNl cnRfYnByaW50KEZGRGVtdXhTdWJ0aXRsZXNRdWV1ZSAqcSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkJQcmludCAqZXZlbnQsIGludCBtZXJnZSkK K3sKKyAgICBpZiAoIWF2X2JwcmludF9pc19jb21wbGV0ZShldmVudCkpCisgICAgICAgIHJldHVy biBOVUxMOworICAgIHJldHVybiBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0KHEsIGV2ZW50LT5z dHIsIGV2ZW50LT5sZW4sIG1lcmdlKTsKK30KKwogc3RhdGljIGludCBjbXBfcGt0X3N1Yl90c19w b3MoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKICAgICBjb25zdCBBVlBhY2tldCAq czEgPSAqKGNvbnN0IEFWUGFja2V0ICoqKWE7CkBAIC0zNDcsMTMgKzM1NSwxNSBAQCBpbnQgZmZf c21pbF9leHRyYWN0X25leHRfdGV4dF9jaHVuayhGRlRleHRSZWFkZXIgKnRyLCBBVkJQcmludCAq YnVmLCBjaGFyICpjKQogICAgIGRvIHsKICAgICAgICAgYXZfYnByaW50X2NoYXJzKGJ1ZiwgKmMs IDEpOwogICAgICAgICAqYyA9IGZmX3RleHRfcjgodHIpOworICAgICAgICBpZiAoaSA9PSBJTlRf TUFYKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgIGkr KzsKICAgICB9IHdoaWxlICgqYyAhPSBlbmRfY2hyICYmICpjKTsKICAgICBpZiAoZW5kX2NociA9 PSAnPicpIHsKICAgICAgICAgYXZfYnByaW50X2NoYXJzKGJ1ZiwgJz4nLCAxKTsKICAgICAgICAg KmMgPSAwOwogICAgIH0KLSAgICByZXR1cm4gaTsKKyAgICByZXR1cm4gYXZfYnByaW50X2lzX2Nv bXBsZXRlKGJ1ZikgPyBpIDogQVZFUlJPUihFTk9NRU0pOwogfQogCiBjb25zdCBjaGFyICpmZl9z bWlsX2dldF9hdHRyX3B0cihjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICphdHRyKQpAQCAtMzgx LDcgKzM5MSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlzX2VvbChjaGFyIGMpCiAgICAgcmV0dXJu IGMgPT0gJ1xyJyB8fCBjID09ICdcbic7CiB9CiAKLXZvaWQgZmZfc3VidGl0bGVzX3JlYWRfdGV4 dF9jaHVuayhGRlRleHRSZWFkZXIgKnRyLCBBVkJQcmludCAqYnVmKQoraW50IGZmX3N1YnRpdGxl c19yZWFkX3RleHRfY2h1bmsoRkZUZXh0UmVhZGVyICp0ciwgQVZCUHJpbnQgKmJ1ZikKIHsKICAg ICBjaGFyIGVvbF9idWZbNV0sIGxhc3Rfd2FzX2NyID0gMDsKICAgICBpbnQgbiA9IDAsIGkgPSAw LCBuYl9lb2wgPSAwOwpAQCAtNDIxLDE1ICs0MzEsMTYgQEAgdm9pZCBmZl9zdWJ0aXRsZXNfcmVh ZF90ZXh0X2NodW5rKEZGVGV4dFJlYWRlciAqdHIsIEFWQlByaW50ICpidWYpCiAgICAgICAgIGF2 X2JwcmludF9jaGFycyhidWYsIGMsIDEpOwogICAgICAgICBuKys7CiAgICAgfQorICAgIHJldHVy biBhdl9icHJpbnRfaXNfY29tcGxldGUoYnVmKSA/IDAgOiBBVkVSUk9SKEVOT01FTSk7CiB9CiAK LXZvaWQgZmZfc3VidGl0bGVzX3JlYWRfY2h1bmsoQVZJT0NvbnRleHQgKnBiLCBBVkJQcmludCAq YnVmKQoraW50IGZmX3N1YnRpdGxlc19yZWFkX2NodW5rKEFWSU9Db250ZXh0ICpwYiwgQVZCUHJp bnQgKmJ1ZikKIHsKICAgICBGRlRleHRSZWFkZXIgdHI7CiAgICAgdHIuYnVmX3BvcyA9IHRyLmJ1 Zl9sZW4gPSAwOwogICAgIHRyLnR5cGUgPSAwOwogICAgIHRyLnBiID0gcGI7Ci0gICAgZmZfc3Vi dGl0bGVzX3JlYWRfdGV4dF9jaHVuaygmdHIsIGJ1Zik7CisgICAgcmV0dXJuIGZmX3N1YnRpdGxl c19yZWFkX3RleHRfY2h1bmsoJnRyLCBidWYpOwogfQogCiBwdHJkaWZmX3QgZmZfc3VidGl0bGVz X3JlYWRfbGluZShGRlRleHRSZWFkZXIgKnRyLCBjaGFyICpidWYsIHNpemVfdCBzaXplKQpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvc3VidGl0bGVzLmggYi9saWJhdmZvcm1hdC9zdWJ0aXRsZXMu aAppbmRleCA0NDYwZWZhY2YzLi5mNjY4OGI3MWQ3IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9z dWJ0aXRsZXMuaAorKysgYi9saWJhdmZvcm1hdC9zdWJ0aXRsZXMuaApAQCAtMTIwLDYgKzEyMCwx MiBAQCB0eXBlZGVmIHN0cnVjdCB7CiBBVlBhY2tldCAqZmZfc3VidGl0bGVzX3F1ZXVlX2luc2Vy dChGRkRlbXV4U3VidGl0bGVzUXVldWUgKnEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCB1aW50OF90ICpldmVudCwgc2l6ZV90IGxlbiwgaW50IG1lcmdlKTsKIAor LyoqCisgKiBTYW1lIGFzIGZmX3N1YnRpdGxlc19xdWV1ZV9pbnNlcnQgYnV0IHRha2VzIGFuIEFW QlByaW50IGlucHV0LgorICogQXZvaWRzIGNvbW1vbiBlcnJvcnMgbGlrZSBoYW5kbGluZyBpbmNv bXBsZXRlIEFWQlByaW50LgorICovCitBVlBhY2tldCAqZmZfc3VidGl0bGVzX3F1ZXVlX2luc2Vy dF9icHJpbnQoRkZEZW11eFN1YnRpdGxlc1F1ZXVlICpxLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFWQlByaW50ICpldmVudCwgaW50IG1lcmdlKTsK IC8qKgogICogU2V0IG1pc3NpbmcgZHVyYXRpb25zLCBzb3J0IHN1YnRpdGxlcyBieSBQVFMgKGFu ZCB0aGVuIGJ5dGUgcG9zaXRpb24pLCBhbmQKICAqIGRyb3AgZHVwbGljYXRlZCBldmVudHMuCkBA IC0xNTUsNiArMTYxLDcgQEAgaW50IGZmX3N1YnRpdGxlc19yZWFkX2Nsb3NlKEFWRm9ybWF0Q29u dGV4dCAqcyk7CiAgKiBTTUlMIGhlbHBlciB0byBsb2FkIG5leHQgY2h1bmsgKCI8Li4uPiIgb3Ig dW50YWdnZWQgY29udGVudCkgaW4gYnVmLgogICoKICAqIEBwYXJhbSBjIGNhY2hlZCBjaGFyYWN0 ZXIsIHRvIGF2b2lkIGEgYmFja3dhcmQgc2VlaworICogQHJldHVybiBzaXplIG9mIGNodW5rIG9y IGVycm9yLCBlLmcuIEFWRVJST1IoRU5PTUVNKSBvbiBpbmNvbXBsZXRlIGJ1ZgogICovCiBpbnQg ZmZfc21pbF9leHRyYWN0X25leHRfdGV4dF9jaHVuayhGRlRleHRSZWFkZXIgKnRyLCBBVkJQcmlu dCAqYnVmLCBjaGFyICpjKTsKIApAQCAtMTY5LDcgKzE3Niw4IEBAIGNvbnN0IGNoYXIgKmZmX3Nt aWxfZ2V0X2F0dHJfcHRyKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKmF0dHIpOwogLyoqCiAg KiBAYnJpZWYgU2FtZSBhcyBmZl9zdWJ0aXRsZXNfcmVhZF90ZXh0X2NodW5rKCksIGJ1dCByZWFk IGZyb20gYW4gQVZJT0NvbnRleHQuCiAgKi8KLXZvaWQgZmZfc3VidGl0bGVzX3JlYWRfY2h1bmso QVZJT0NvbnRleHQgKnBiLCBBVkJQcmludCAqYnVmKTsKK2F2X3dhcm5fdW51c2VkX3Jlc3VsdAor aW50IGZmX3N1YnRpdGxlc19yZWFkX2NodW5rKEFWSU9Db250ZXh0ICpwYiwgQVZCUHJpbnQgKmJ1 Zik7CiAKIC8qKgogICogQGJyaWVmIFJlYWQgYSBzdWJ0aXRsZXMgY2h1bmsgZnJvbSBGRlRleHRS ZWFkZXIuCkBAIC0xODEsMTAgKzE4OSwxMiBAQCB2b2lkIGZmX3N1YnRpdGxlc19yZWFkX2NodW5r KEFWSU9Db250ZXh0ICpwYiwgQVZCUHJpbnQgKmJ1Zik7CiAgKgogICogQHBhcmFtIHRyICBJL08g Y29udGV4dAogICogQHBhcmFtIGJ1ZiBhbiBpbml0aWFsaXplZCBidWYgd2hlcmUgdGhlIGNodW5r IGlzIHdyaXR0ZW4KKyAqIEByZXR1cm4gMCBvbiBzdWNjZXNzLCBlcnJvciB2YWx1ZSBvdGhlcndp c2UsIGUuZy4gQVZFUlJPUihFTk9NRU0pIGlmIGJ1ZiBpcyBpbmNvbXBsZXRlCiAgKgogICogQG5v dGUgYnVmIGlzIGNsZWFyZWQgYmVmb3JlIHdyaXRpbmcgaW50byBpdC4KICAqLwotdm9pZCBmZl9z dWJ0aXRsZXNfcmVhZF90ZXh0X2NodW5rKEZGVGV4dFJlYWRlciAqdHIsIEFWQlByaW50ICpidWYp OworYXZfd2Fybl91bnVzZWRfcmVzdWx0CitpbnQgZmZfc3VidGl0bGVzX3JlYWRfdGV4dF9jaHVu ayhGRlRleHRSZWFkZXIgKnRyLCBBVkJQcmludCAqYnVmKTsKIAogLyoqCiAgKiBHZXQgdGhlIG51 bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGluY3JlbWVudCB0byBqdW1wIHRvIHRoZSBuZXh0IGxpbmUs IG9yIHRvCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC90ZWRjYXB0aW9uc2RlYy5jIGIvbGliYXZm b3JtYXQvdGVkY2FwdGlvbnNkZWMuYwppbmRleCAzMTE5NzM0OWIwLi5hOGFhOWQ5Y2Y5IDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC90ZWRjYXB0aW9uc2RlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L3Rl ZGNhcHRpb25zZGVjLmMKQEAgLTI0NCw3ICsyNDQsNyBAQCBzdGF0aWMgaW50IHBhcnNlX2ZpbGUo QVZJT0NvbnRleHQgKnBiLCBGRkRlbXV4U3VidGl0bGVzUXVldWUgKnN1YnMpCiAgICAgICAgICAg ICByZXQgPSBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICAgICAgZ290byBmYWlsOwogICAg ICAgICB9Ci0gICAgICAgIHBrdCA9IGZmX3N1YnRpdGxlc19xdWV1ZV9pbnNlcnQoc3VicywgY29u dGVudC5zdHIsIGNvbnRlbnQubGVuLCAwKTsKKyAgICAgICAgcGt0ID0gZmZfc3VidGl0bGVzX3F1 ZXVlX2luc2VydF9icHJpbnQoc3VicywgJmNvbnRlbnQsIDApOwogICAgICAgICBpZiAoIXBrdCkg ewogICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOwogICAgICAgICAgICAgZ290byBm YWlsOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvd2VidnR0ZGVjLmMgYi9saWJhdmZvcm1hdC93 ZWJ2dHRkZWMuYwppbmRleCA1MjMyMGJhN2QxLi4wYjJmYzc3MTY4IDEwMDY0NAotLS0gYS9saWJh dmZvcm1hdC93ZWJ2dHRkZWMuYworKysgYi9saWJhdmZvcm1hdC93ZWJ2dHRkZWMuYwpAQCAtODEs NyArODEsOSBAQCBzdGF0aWMgaW50IHdlYnZ0dF9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQg KnMpCiAgICAgICAgIHNpemVfdCBpZGVudGlmaWVyX2xlbiwgc2V0dGluZ3NfbGVuOwogICAgICAg ICBpbnQ2NF90IHRzX3N0YXJ0LCB0c19lbmQ7CiAKLSAgICAgICAgZmZfc3VidGl0bGVzX3JlYWRf Y2h1bmsocy0+cGIsICZjdWUpOworICAgICAgICByZXMgPSBmZl9zdWJ0aXRsZXNfcmVhZF9jaHVu ayhzLT5wYiwgJmN1ZSk7CisgICAgICAgIGlmIChyZXMgPCAwKQorICAgICAgICAgICAgZ290byBl bmQ7CiAKICAgICAgICAgaWYgKCFjdWUubGVuKQogICAgICAgICAgICAgYnJlYWs7Ci0tIAoyLjM3 LjEgKEFwcGxlIEdpdC0xMzcuMSkKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpU byB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJl cXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K