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 F300F46892 for ; Thu, 22 Jun 2023 21:06:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF2DB68C20F; Fri, 23 Jun 2023 00:06:54 +0300 (EEST) Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.73]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F0C7C68BE52 for ; Fri, 23 Jun 2023 00:06:47 +0300 (EEST) Received: from localhost.localdomain ([90.230.81.36]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N0nSN-1ppWkN3YYf-00wlgu; Thu, 22 Jun 2023 23:06:46 +0200 From: Reimar.Doeffinger@gmx.de To: ffmpeg-devel@ffmpeg.org Date: Thu, 22 Jun 2023 23:04:52 +0200 Message-Id: <20230622210451.16411-1-Reimar.Doeffinger@gmx.de> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) MIME-Version: 1.0 X-Provags-ID: V03:K1:Fn68Wy2snTFqntt3zB6sq4N/QY6/GZe9+NvfB6vNVXVDEi6s/8d 22nHWeOVAvyMPi1UDODWQCeAkU4VGFcKDFg0iP+n/jAmjcSzotLFsFEoZyiiYK7xQMvh7dL InA6uHa7CI9iUBhE3YNNQPFKZMWEzqdOQb1a1tFLlRhTBHnPlVoz4k7QQYR8rWi6Qwyr8TJ NMICrjy5n5SBNk3CC/g+Q== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Er4tQgTbUqk=;wSkk105q8brOyHh/pMOc2rVg5vz 9hPULCs0I4qUBlTssqwRhSJ3mjqPh6AHujoYU9g0zeIQlzuc2XSH/NsnXLZHw/PdKFfSdMT9w h4ve+zQwh9Mr0KtXYwCmzFbpEzZ/S0Ln+4DvAcm17rq65qkPORI/5zJi4wLa3AkCIyd5qHvel Ua8pZrxqL3Ic1U+smafD9ngdWIhCpdQcuXNZCo1idFCD4fKaftQjlMYGBCiual5a3ad/Y3bXq iV3bwB9OeKIkrsv9Td5wHm2fkqH/dekXbFhpyMxm8bAstfUsOPXpwNkV/uS8824lv+dQ1/qkw 0QTfsVDE6eNHCAuxjfCtJR7vJJWy0clNvyVx9IkABAjSGjuhxdiL677eOXB+++nBHQCvz3i3G TBO/lYp4EEbKk/c2rgYFGNf0b7tM7HgXUvnnPXPp8BGnmsthUvP6NoWvvF9mwQLx860T7/ia/ OGwSF45TLFJCFJjCAIW+rhnnyrKmsI24HmhQBPn5xw5Hlgfp7Mq6PfmwagEJrb2FQn/R9AYFl 9lgywRPGDPHsCgdoflFUgCHZVLbXSBtLxlZb7oUFgMDQRixf6M6BpjqPezorA7YfBkHH8ZEM2 DHiUQawAy9SnKQEyYRoCQPIxd/bA6P5V2gq1BPc1JpY0AmMuKkUXdWpG9saiNeAFnMUkCL2wm sh1LdDuOLXrN3fPGzNTQ4BiuYZcCBf3fw2FamLv15A== Subject: [FFmpeg-devel] [PATCH] libaformat: 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 dWJ0aXRsZXNfcXVldWVfaW5zZXJ0IGZhaWxzLgotLS0KTm90ZSB0aGF0IHRoaXMgY29tYmluZXMg YSBmZXcgZGlmZmVyZW50IHRoaW5ncywgYnV0IHRoZXkgYWxsCmFyZSBtZWFudCB0byBhZGRyZXNz IHRoZSBzYW1lIGlzc3VlLgpIYXBweSB0byBzcGxpdCBpZiB0aGF0J3Mgd2FudGVkLCBmaXJzdCBw cmlvcml0eSBpcyBnZXR0aW5nIGFuCmlkZWEgaWYgc29tZSBwYXJ0IG9mIHRoaXMgc2VlbXMgbGlr ZSBhIGJhZCBpZGVhIGdlbmVyYWxseS4KCiBsaWJhdmZvcm1hdC9hc3NkZWMuYyAgICAgICAgIHwg IDQgKysrLQogbGliYXZmb3JtYXQvbHJjZGVjLmMgICAgICAgICB8ICA3ICsrKysrKy0KIGxpYmF2 Zm9ybWF0L21wc3ViZGVjLmMgICAgICAgfCAgNSArKystLQogbGliYXZmb3JtYXQvcmVhbHRleHRk ZWMuYyAgICB8ICA3ICsrKysrKy0KIGxpYmF2Zm9ybWF0L3NhbWlkZWMuYyAgICAgICAgfCAgNyAr KysrKystCiBsaWJhdmZvcm1hdC9zcnRkZWMuYyAgICAgICAgIHwgIDQgKysrLQogbGliYXZmb3Jt YXQvc3VidGl0bGVzLmMgICAgICB8IDE3ICsrKysrKysrKysrKystLS0tCiBsaWJhdmZvcm1hdC9z dWJ0aXRsZXMuaCAgICAgIHwgMTQgKysrKysrKysrKysrLS0KIGxpYmF2Zm9ybWF0L3RlZGNhcHRp b25zZGVjLmMgfCAgMiArLQogbGliYXZmb3JtYXQvd2VidnR0ZGVjLmMgICAgICB8ICA0ICsrKy0K IDEwIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2Fzc2RlYy5jIGIvbGliYXZmb3JtYXQvYXNzZGVjLmMKaW5k ZXggMDkxNWY2ZmFmZC4uYmY3YjhhNzNhMiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvYXNzZGVj LmMKKysrIGIvbGliYXZmb3JtYXQvYXNzZGVjLmMKQEAgLTczLDYgKzczLDggQEAgc3RhdGljIGlu dCByZWFkX2RpYWxvZ3VlKEFTU0NvbnRleHQgKmFzcywgQVZCUHJpbnQgKmRzdCwgY29uc3QgdWlu dDhfdCAqcCwKIAogICAgICAgICBhdl9icHJpbnRfY2xlYXIoZHN0KTsKICAgICAgICAgYXZfYnBy aW50Zihkc3QsICIldSwlZCwlcyIsIGFzcy0+cmVhZG9yZGVyKyssIGxheWVyLCBwICsgcG9zKTsK KyAgICAgICAgaWYgKCFhdl9icHJpbnRfaXNfY29tcGxldGUoZHN0KSkKKyAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SKEVOT01FTSk7CiAKICAgICAgICAgLyogcmlnaHQgc3RyaXAgdGhlIGJ1ZmZl ciAqLwogICAgICAgICB3aGlsZSAoZHN0LT5sZW4gPiAwICYmCkBAIC0xMzUsNyArMTM3LDcgQEAg c3RhdGljIGludCBhc3NfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICAg ICAgYXZfYnByaW50ZigmaGVhZGVyLCAiJXMiLCBsaW5lLnN0cik7CiAgICAgICAgICAgICBjb250 aW51ZTsKICAgICAgICAgfQotICAgICAgICBzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0 KCZhc3MtPnEsIHJsaW5lLnN0ciwgcmxpbmUubGVuLCAwKTsKKyAgICAgICAgc3ViID0gZmZfc3Vi dGl0bGVzX3F1ZXVlX2luc2VydF9icHJpbnQoJmFzcy0+cSwgJnJsaW5lLCAwKTsKICAgICAgICAg aWYgKCFzdWIpIHsKICAgICAgICAgICAgIHJlcyA9IEFWRVJST1IoRU5PTUVNKTsKICAgICAgICAg ICAgIGdvdG8gZW5kOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbHJjZGVjLmMgYi9saWJhdmZv cm1hdC9scmNkZWMuYwppbmRleCBmZmYzOTQ5NWY4Li44M2JiNGE0Yjc1IDEwMDY0NAotLS0gYS9s aWJhdmZvcm1hdC9scmNkZWMuYworKysgYi9saWJhdmZvcm1hdC9scmNkZWMuYwpAQCAtMTcxLDYg KzE3MSw4IEBAIHN0YXRpYyBpbnQgbHJjX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykK IAogICAgIHdoaWxlKCFhdmlvX2Zlb2Yocy0+cGIpKSB7CiAgICAgICAgIGludDY0X3QgcG9zID0g cmVhZF9saW5lKCZsaW5lLCBzLT5wYik7CisgICAgICAgIGlmICghYXZfYnByaW50X2lzX2NvbXBs ZXRlKCZsaW5lKSkKKyAgICAgICAgICAgIGdvdG8gZXJyX25vbWVtX291dDsKICAgICAgICAgaW50 NjRfdCBoZWFkZXJfb2Zmc2V0ID0gZmluZF9oZWFkZXIobGluZS5zdHIpOwogICAgICAgICBpZiho ZWFkZXJfb2Zmc2V0ID49IDApIHsKICAgICAgICAgICAgIGNoYXIgKmNvbW1hX29mZnNldCA9IHN0 cmNocihsaW5lLnN0ciwgJzonKTsKQEAgLTIwNSw3ICsyMDcsNyBAQCBzdGF0aWMgaW50IGxyY19y ZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgICAgICAgICAgc3ViID0gZmZf c3VidGl0bGVzX3F1ZXVlX2luc2VydCgmbHJjLT5xLCBsaW5lLnN0ciArIHRzX3N0cmxlbmd0aCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUubGVu IC0gdHNfc3RybGVuZ3RoLCAwKTsKICAgICAgICAgICAgICAgICBpZiAoIXN1YikKLSAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgICAgICAgICAgICAg Z290byBlcnJfbm9tZW1fb3V0OwogICAgICAgICAgICAgICAgIHN1Yi0+cG9zID0gcG9zOwogICAg ICAgICAgICAgICAgIHN1Yi0+cHRzID0gdHNfc3RhcnQgLSBscmMtPnRzX29mZnNldDsKICAgICAg ICAgICAgICAgICBzdWItPmR1cmF0aW9uID0gLTE7CkBAIC0yMTYsNiArMjE4LDkgQEAgc3RhdGlj IGludCBscmNfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIGZmX21ldGFkYXRh X2NvbnZfY3R4KHMsIE5VTEwsIGZmX2xyY19tZXRhZGF0YV9jb252KTsKICAgICBhdl9icHJpbnRf ZmluYWxpemUoJmxpbmUsIE5VTEwpOwogICAgIHJldHVybiAwOworZXJyX25vbWVtX291dDoKKyAg ICBhdl9icHJpbnRfZmluYWxpemUoJmxpbmUsIE5VTEwpOworICAgIHJldHVybiBBVkVSUk9SKEVO T01FTSk7CiB9CiAKIGNvbnN0IEFWSW5wdXRGb3JtYXQgZmZfbHJjX2RlbXV4ZXIgPSB7CmRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9tcHN1YmRlYy5jIGIvbGliYXZmb3JtYXQvbXBzdWJkZWMuYwpp bmRleCBkMjkwYTQxZmI5Li4wMzc0NTYzNTc1IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9tcHN1 YmRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L21wc3ViZGVjLmMKQEAgLTExNiw5ICsxMTYsMTAgQEAg c3RhdGljIGludCBtcHN1Yl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAg ICAgICBBVlBhY2tldCAqc3ViOwogICAgICAgICAgICAgY29uc3QgaW50NjRfdCBwb3MgPSBhdmlv X3RlbGwocy0+cGIpOwogCi0gICAgICAgICAgICBmZl9zdWJ0aXRsZXNfcmVhZF9jaHVuayhzLT5w YiwgJmJ1Zik7CisgICAgICAgICAgICByZXMgPSBmZl9zdWJ0aXRsZXNfcmVhZF9jaHVuayhzLT5w YiwgJmJ1Zik7CisgICAgICAgICAgICBpZiAocmVzIDwgMCkgZ290byBlbmQ7CiAgICAgICAgICAg ICBpZiAoYnVmLmxlbikgewotICAgICAgICAgICAgICAgIHN1YiA9IGZmX3N1YnRpdGxlc19xdWV1 ZV9pbnNlcnQoJm1wc3ViLT5xLCBidWYuc3RyLCBidWYubGVuLCAwKTsKKyAgICAgICAgICAgICAg ICBzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0X2JwcmludCgmbXBzdWItPnEsICZidWYs IDApOwogICAgICAgICAgICAgICAgIGlmICghc3ViKSB7CiAgICAgICAgICAgICAgICAgICAgIHJl cyA9IEFWRVJST1IoRU5PTUVNKTsKICAgICAgICAgICAgICAgICAgICAgZ290byBlbmQ7CmRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9yZWFsdGV4dGRlYy5jIGIvbGliYXZmb3JtYXQvcmVhbHRleHRk ZWMuYwppbmRleCBjMjgxZGVjMzQ2Li45ZjZhYWI3ODllIDEwMDY0NAotLS0gYS9saWJhdmZvcm1h dC9yZWFsdGV4dGRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L3JlYWx0ZXh0ZGVjLmMKQEAgLTgwLDYg KzgwLDExIEBAIHN0YXRpYyBpbnQgcmVhbHRleHRfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0 ICpzKQogICAgICAgICBjb25zdCBpbnQ2NF90IHBvcyA9IGZmX3RleHRfcG9zKCZ0cikgLSAoYyAh PSAwKTsKICAgICAgICAgaW50IG4gPSBmZl9zbWlsX2V4dHJhY3RfbmV4dF90ZXh0X2NodW5rKCZ0 ciwgJmJ1ZiwgJmMpOwogCisgICAgICAgIGlmIChuIDwgMCkKKyAgICAgICAgeworICAgICAgICAg ICAgcmVzID0gbjsKKyAgICAgICAgICAgIGdvdG8gZW5kOworICAgICAgICB9CiAgICAgICAgIGlm IChuID09IDApCiAgICAgICAgICAgICBicmVhazsKIApAQCAtMTAzLDcgKzEwOCw3IEBAIHN0YXRp YyBpbnQgcmVhbHRleHRfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICAg ICAgLyogaWYgd2UganVzdCByZWFkIGEgPHRpbWU+IHRhZywgaW50cm9kdWNlIGEgbmV3IGV2ZW50 LCBvdGhlcndpc2UgbWVyZ2UKICAgICAgICAgICAgICAqIHdpdGggdGhlIHByZXZpb3VzIG9uZSAq LwogICAgICAgICAgICAgaW50IG1lcmdlID0gIWF2X3N0cm5jYXNlY21wKGJ1Zi5zdHIsICI8dGlt ZSIsIDUpID8gMCA6IDE7Ci0gICAgICAgICAgICBzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5z ZXJ0KCZydC0+cSwgYnVmLnN0ciwgYnVmLmxlbiwgbWVyZ2UpOworICAgICAgICAgICAgc3ViID0g ZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydF9icHJpbnQoJnJ0LT5xLCAmYnVmLCBtZXJnZSk7CiAg ICAgICAgICAgICBpZiAoIXN1YikgewogICAgICAgICAgICAgICAgIHJlcyA9IEFWRVJST1IoRU5P TUVNKTsKICAgICAgICAgICAgICAgICBnb3RvIGVuZDsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0 L3NhbWlkZWMuYyBiL2xpYmF2Zm9ybWF0L3NhbWlkZWMuYwppbmRleCAwZGEyOTkzNDNkLi42ZmZm NjAxOWJmIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9zYW1pZGVjLmMKKysrIGIvbGliYXZmb3Jt YXQvc2FtaWRlYy5jCkBAIC02OCw2ICs2OCwxMSBAQCBzdGF0aWMgaW50IHNhbWlfcmVhZF9oZWFk ZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICBjb25zdCBpbnQ2NF90IHBvcyA9IGZmX3Rl eHRfcG9zKCZ0cikgLSAoYyAhPSAwKTsKICAgICAgICAgaW50IGlzX3N5bmMsIGlzX2JvZHksIG4g PSBmZl9zbWlsX2V4dHJhY3RfbmV4dF90ZXh0X2NodW5rKCZ0ciwgJmJ1ZiwgJmMpOwogCisgICAg ICAgIGlmIChuIDwgMCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzID0gbjsKKyAgICAgICAg ICAgIGdvdG8gZW5kOworICAgICAgICB9CiAgICAgICAgIGlmIChuID09IDApCiAgICAgICAgICAg ICBicmVhazsKIApAQCAtODQsNyArODksNyBAQCBzdGF0aWMgaW50IHNhbWlfcmVhZF9oZWFkZXIo QVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICBpZiAoIWdvdF9maXJzdF9zeW5jX3BvaW50KSB7 CiAgICAgICAgICAgICBhdl9icHJpbnRmKCZoZHJfYnVmLCAiJXMiLCBidWYuc3RyKTsKICAgICAg ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHN1YiA9IGZmX3N1YnRpdGxlc19xdWV1ZV9pbnNlcnQo JnNhbWktPnEsIGJ1Zi5zdHIsIGJ1Zi5sZW4sICFpc19zeW5jKTsKKyAgICAgICAgICAgIHN1YiA9 IGZmX3N1YnRpdGxlc19xdWV1ZV9pbnNlcnRfYnByaW50KCZzYW1pLT5xLCAmYnVmLCAhaXNfc3lu Yyk7CiAgICAgICAgICAgICBpZiAoIXN1YikgewogICAgICAgICAgICAgICAgIHJlcyA9IEFWRVJS T1IoRU5PTUVNKTsKICAgICAgICAgICAgICAgICBhdl9icHJpbnRfZmluYWxpemUoJmhkcl9idWYs IE5VTEwpOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvc3J0ZGVjLmMgYi9saWJhdmZvcm1hdC9z cnRkZWMuYwppbmRleCBiZjAyNDUwNTU1Li42MzVjMTU1MGI5IDEwMDY0NAotLS0gYS9saWJhdmZv cm1hdC9zcnRkZWMuYworKysgYi9saWJhdmZvcm1hdC9zcnRkZWMuYwpAQCAtOTcsMTIgKzk3LDE0 IEBAIHN0YXRpYyBpbnQgYWRkX2V2ZW50KEZGRGVtdXhTdWJ0aXRsZXNRdWV1ZSAqcSwgQVZCUHJp bnQgKmJ1ZiwgY2hhciAqbGluZV9jYWNoZSwKICAgICBpZiAoYXBwZW5kX2NhY2hlICYmIGxpbmVf Y2FjaGVbMF0pCiAgICAgICAgIGF2X2JwcmludGYoYnVmLCAiJXNcbiIsIGxpbmVfY2FjaGUpOwog ICAgIGxpbmVfY2FjaGVbMF0gPSAwOworICAgIGlmICghYXZfYnByaW50X2lzX2NvbXBsZXRlKGJ1 ZikpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAKICAgICB3aGlsZSAoYnVmLT5s ZW4gPiAwICYmIGJ1Zi0+c3RyW2J1Zi0+bGVuIC0gMV0gPT0gJ1xuJykKICAgICAgICAgYnVmLT5z dHJbLS1idWYtPmxlbl0gPSAwOwogCiAgICAgaWYgKGJ1Zi0+bGVuKSB7Ci0gICAgICAgIEFWUGFj a2V0ICpzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0KHEsIGJ1Zi0+c3RyLCBidWYtPmxl biwgMCk7CisgICAgICAgIEFWUGFja2V0ICpzdWIgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0 X2JwcmludChxLCBidWYsIDApOwogICAgICAgICBpZiAoIXN1YikKICAgICAgICAgICAgIHJldHVy biBBVkVSUk9SKEVOT01FTSk7CiAgICAgICAgIGF2X2JwcmludF9jbGVhcihidWYpOwpkaWZmIC0t Z2l0IGEvbGliYXZmb3JtYXQvc3VidGl0bGVzLmMgYi9saWJhdmZvcm1hdC9zdWJ0aXRsZXMuYwpp bmRleCAzYmE1ZTJiMjE3Li45Njk0NWE3NWRkIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9zdWJ0 aXRsZXMuYworKysgYi9saWJhdmZvcm1hdC9zdWJ0aXRsZXMuYwpAQCAtMTQ1LDYgKzE0NSwxMyBA QCBBVlBhY2tldCAqZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydChGRkRlbXV4U3VidGl0bGVzUXVl dWUgKnEsCiAgICAgcmV0dXJuIHN1YjsKIH0KIAorQVZQYWNrZXQgKmZmX3N1YnRpdGxlc19xdWV1 ZV9pbnNlcnRfYnByaW50KEZGRGVtdXhTdWJ0aXRsZXNRdWV1ZSAqcSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkJQcmludCAqZXZlbnQsIGludCBt ZXJnZSkKK3sKKyAgICBpZiAoIWF2X2JwcmludF9pc19jb21wbGV0ZShldmVudCkpIHJldHVybiBO VUxMOworICAgIHJldHVybiBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0KHEsIGV2ZW50LT5zdHIs IGV2ZW50LT5sZW4sIG1lcmdlKTsKK30KKwogc3RhdGljIGludCBjbXBfcGt0X3N1Yl90c19wb3Mo Y29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKICAgICBjb25zdCBBVlBhY2tldCAqczEg PSAqKGNvbnN0IEFWUGFja2V0ICoqKWE7CkBAIC0zNDcsMTMgKzM1NCwxNCBAQCBpbnQgZmZfc21p bF9leHRyYWN0X25leHRfdGV4dF9jaHVuayhGRlRleHRSZWFkZXIgKnRyLCBBVkJQcmludCAqYnVm LCBjaGFyICpjKQogICAgIGRvIHsKICAgICAgICAgYXZfYnByaW50X2NoYXJzKGJ1ZiwgKmMsIDEp OwogICAgICAgICAqYyA9IGZmX3RleHRfcjgodHIpOworICAgICAgICBpZiAoaSA9PSBJTlRfTUFY KSByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICAgICAgaSsrOwogICAgIH0gd2hpbGUg KCpjICE9IGVuZF9jaHIgJiYgKmMpOwogICAgIGlmIChlbmRfY2hyID09ICc+JykgewogICAgICAg ICBhdl9icHJpbnRfY2hhcnMoYnVmLCAnPicsIDEpOwogICAgICAgICAqYyA9IDA7CiAgICAgfQot ICAgIHJldHVybiBpOworICAgIHJldHVybiBhdl9icHJpbnRfaXNfY29tcGxldGUoYnVmKSA/IGkg OiBBVkVSUk9SKEVOT01FTSk7CiB9CiAKIGNvbnN0IGNoYXIgKmZmX3NtaWxfZ2V0X2F0dHJfcHRy KGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKmF0dHIpCkBAIC0zODEsNyArMzg5LDcgQEAgc3Rh dGljIGlubGluZSBpbnQgaXNfZW9sKGNoYXIgYykKICAgICByZXR1cm4gYyA9PSAnXHInIHx8IGMg PT0gJ1xuJzsKIH0KIAotdm9pZCBmZl9zdWJ0aXRsZXNfcmVhZF90ZXh0X2NodW5rKEZGVGV4dFJl YWRlciAqdHIsIEFWQlByaW50ICpidWYpCitpbnQgZmZfc3VidGl0bGVzX3JlYWRfdGV4dF9jaHVu ayhGRlRleHRSZWFkZXIgKnRyLCBBVkJQcmludCAqYnVmKQogewogICAgIGNoYXIgZW9sX2J1Zls1 XSwgbGFzdF93YXNfY3IgPSAwOwogICAgIGludCBuID0gMCwgaSA9IDAsIG5iX2VvbCA9IDA7CkBA IC00MjEsMTUgKzQyOSwxNiBAQCB2b2lkIGZmX3N1YnRpdGxlc19yZWFkX3RleHRfY2h1bmsoRkZU ZXh0UmVhZGVyICp0ciwgQVZCUHJpbnQgKmJ1ZikKICAgICAgICAgYXZfYnByaW50X2NoYXJzKGJ1 ZiwgYywgMSk7CiAgICAgICAgIG4rKzsKICAgICB9CisgICAgcmV0dXJuIGF2X2JwcmludF9pc19j b21wbGV0ZShidWYpID8gMCA6IEFWRVJST1IoRU5PTUVNKTsKIH0KIAotdm9pZCBmZl9zdWJ0aXRs ZXNfcmVhZF9jaHVuayhBVklPQ29udGV4dCAqcGIsIEFWQlByaW50ICpidWYpCitpbnQgZmZfc3Vi dGl0bGVzX3JlYWRfY2h1bmsoQVZJT0NvbnRleHQgKnBiLCBBVkJQcmludCAqYnVmKQogewogICAg IEZGVGV4dFJlYWRlciB0cjsKICAgICB0ci5idWZfcG9zID0gdHIuYnVmX2xlbiA9IDA7CiAgICAg dHIudHlwZSA9IDA7CiAgICAgdHIucGIgPSBwYjsKLSAgICBmZl9zdWJ0aXRsZXNfcmVhZF90ZXh0 X2NodW5rKCZ0ciwgYnVmKTsKKyAgICByZXR1cm4gZmZfc3VidGl0bGVzX3JlYWRfdGV4dF9jaHVu aygmdHIsIGJ1Zik7CiB9CiAKIHB0cmRpZmZfdCBmZl9zdWJ0aXRsZXNfcmVhZF9saW5lKEZGVGV4 dFJlYWRlciAqdHIsIGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9saWJhdmZv cm1hdC9zdWJ0aXRsZXMuaCBiL2xpYmF2Zm9ybWF0L3N1YnRpdGxlcy5oCmluZGV4IDQ0NjBlZmFj ZjMuLmY2Njg4YjcxZDcgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3N1YnRpdGxlcy5oCisrKyBi L2xpYmF2Zm9ybWF0L3N1YnRpdGxlcy5oCkBAIC0xMjAsNiArMTIwLDEyIEBAIHR5cGVkZWYgc3Ry dWN0IHsKIEFWUGFja2V0ICpmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0KEZGRGVtdXhTdWJ0aXRs ZXNRdWV1ZSAqcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp bnQ4X3QgKmV2ZW50LCBzaXplX3QgbGVuLCBpbnQgbWVyZ2UpOwogCisvKioKKyAqIFNhbWUgYXMg ZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydCBidXQgdGFrZXMgYW4gQVZCUHJpbnQgaW5wdXQuCisg KiBBdm9pZHMgY29tbW9uIGVycm9ycyBsaWtlIGhhbmRsaW5nIGluY29tcGxldGUgQVZCUHJpbnQu CisgKi8KK0FWUGFja2V0ICpmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0X2JwcmludChGRkRlbXV4 U3VidGl0bGVzUXVldWUgKnEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgQVZCUHJpbnQgKmV2ZW50LCBpbnQgbWVyZ2UpOwogLyoqCiAgKiBTZXQgbWlz c2luZyBkdXJhdGlvbnMsIHNvcnQgc3VidGl0bGVzIGJ5IFBUUyAoYW5kIHRoZW4gYnl0ZSBwb3Np dGlvbiksIGFuZAogICogZHJvcCBkdXBsaWNhdGVkIGV2ZW50cy4KQEAgLTE1NSw2ICsxNjEsNyBA QCBpbnQgZmZfc3VidGl0bGVzX3JlYWRfY2xvc2UoQVZGb3JtYXRDb250ZXh0ICpzKTsKICAqIFNN SUwgaGVscGVyIHRvIGxvYWQgbmV4dCBjaHVuayAoIjwuLi4+IiBvciB1bnRhZ2dlZCBjb250ZW50 KSBpbiBidWYuCiAgKgogICogQHBhcmFtIGMgY2FjaGVkIGNoYXJhY3RlciwgdG8gYXZvaWQgYSBi YWNrd2FyZCBzZWVrCisgKiBAcmV0dXJuIHNpemUgb2YgY2h1bmsgb3IgZXJyb3IsIGUuZy4gQVZF UlJPUihFTk9NRU0pIG9uIGluY29tcGxldGUgYnVmCiAgKi8KIGludCBmZl9zbWlsX2V4dHJhY3Rf bmV4dF90ZXh0X2NodW5rKEZGVGV4dFJlYWRlciAqdHIsIEFWQlByaW50ICpidWYsIGNoYXIgKmMp OwogCkBAIC0xNjksNyArMTc2LDggQEAgY29uc3QgY2hhciAqZmZfc21pbF9nZXRfYXR0cl9wdHIo Y29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqYXR0cik7CiAvKioKICAqIEBicmllZiBTYW1lIGFz IGZmX3N1YnRpdGxlc19yZWFkX3RleHRfY2h1bmsoKSwgYnV0IHJlYWQgZnJvbSBhbiBBVklPQ29u dGV4dC4KICAqLwotdm9pZCBmZl9zdWJ0aXRsZXNfcmVhZF9jaHVuayhBVklPQ29udGV4dCAqcGIs IEFWQlByaW50ICpidWYpOworYXZfd2Fybl91bnVzZWRfcmVzdWx0CitpbnQgZmZfc3VidGl0bGVz X3JlYWRfY2h1bmsoQVZJT0NvbnRleHQgKnBiLCBBVkJQcmludCAqYnVmKTsKIAogLyoqCiAgKiBA YnJpZWYgUmVhZCBhIHN1YnRpdGxlcyBjaHVuayBmcm9tIEZGVGV4dFJlYWRlci4KQEAgLTE4MSwx MCArMTg5LDEyIEBAIHZvaWQgZmZfc3VidGl0bGVzX3JlYWRfY2h1bmsoQVZJT0NvbnRleHQgKnBi LCBBVkJQcmludCAqYnVmKTsKICAqCiAgKiBAcGFyYW0gdHIgIEkvTyBjb250ZXh0CiAgKiBAcGFy YW0gYnVmIGFuIGluaXRpYWxpemVkIGJ1ZiB3aGVyZSB0aGUgY2h1bmsgaXMgd3JpdHRlbgorICog QHJldHVybiAwIG9uIHN1Y2Nlc3MsIGVycm9yIHZhbHVlIG90aGVyd2lzZSwgZS5nLiBBVkVSUk9S KEVOT01FTSkgaWYgYnVmIGlzIGluY29tcGxldGUKICAqCiAgKiBAbm90ZSBidWYgaXMgY2xlYXJl ZCBiZWZvcmUgd3JpdGluZyBpbnRvIGl0LgogICovCi12b2lkIGZmX3N1YnRpdGxlc19yZWFkX3Rl eHRfY2h1bmsoRkZUZXh0UmVhZGVyICp0ciwgQVZCUHJpbnQgKmJ1Zik7Cithdl93YXJuX3VudXNl ZF9yZXN1bHQKK2ludCBmZl9zdWJ0aXRsZXNfcmVhZF90ZXh0X2NodW5rKEZGVGV4dFJlYWRlciAq dHIsIEFWQlByaW50ICpidWYpOwogCiAvKioKICAqIEdldCB0aGUgbnVtYmVyIG9mIGNoYXJhY3Rl cnMgdG8gaW5jcmVtZW50IHRvIGp1bXAgdG8gdGhlIG5leHQgbGluZSwgb3IgdG8KZGlmZiAtLWdp dCBhL2xpYmF2Zm9ybWF0L3RlZGNhcHRpb25zZGVjLmMgYi9saWJhdmZvcm1hdC90ZWRjYXB0aW9u c2RlYy5jCmluZGV4IDMxMTk3MzQ5YjAuLmE4YWE5ZDljZjkgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9y bWF0L3RlZGNhcHRpb25zZGVjLmMKKysrIGIvbGliYXZmb3JtYXQvdGVkY2FwdGlvbnNkZWMuYwpA QCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBpbnQgcGFyc2VfZmlsZShBVklPQ29udGV4dCAqcGIs IEZGRGVtdXhTdWJ0aXRsZXNRdWV1ZSAqc3VicykKICAgICAgICAgICAgIHJldCA9IEFWRVJST1Jf SU5WQUxJRERBVEE7CiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KLSAgICAgICAg cGt0ID0gZmZfc3VidGl0bGVzX3F1ZXVlX2luc2VydChzdWJzLCBjb250ZW50LnN0ciwgY29udGVu dC5sZW4sIDApOworICAgICAgICBwa3QgPSBmZl9zdWJ0aXRsZXNfcXVldWVfaW5zZXJ0X2Jwcmlu dChzdWJzLCAmY29udGVudCwgMCk7CiAgICAgICAgIGlmICghcGt0KSB7CiAgICAgICAgICAgICBy ZXQgPSBBVkVSUk9SKEVOT01FTSk7CiAgICAgICAgICAgICBnb3RvIGZhaWw7CmRpZmYgLS1naXQg YS9saWJhdmZvcm1hdC93ZWJ2dHRkZWMuYyBiL2xpYmF2Zm9ybWF0L3dlYnZ0dGRlYy5jCmluZGV4 IDUyMzIwYmE3ZDEuLjBiMmZjNzcxNjggMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3dlYnZ0dGRl Yy5jCisrKyBiL2xpYmF2Zm9ybWF0L3dlYnZ0dGRlYy5jCkBAIC04MSw3ICs4MSw5IEBAIHN0YXRp YyBpbnQgd2VidnR0X3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgc2l6 ZV90IGlkZW50aWZpZXJfbGVuLCBzZXR0aW5nc19sZW47CiAgICAgICAgIGludDY0X3QgdHNfc3Rh cnQsIHRzX2VuZDsKIAotICAgICAgICBmZl9zdWJ0aXRsZXNfcmVhZF9jaHVuayhzLT5wYiwgJmN1 ZSk7CisgICAgICAgIHJlcyA9IGZmX3N1YnRpdGxlc19yZWFkX2NodW5rKHMtPnBiLCAmY3VlKTsK KyAgICAgICAgaWYgKHJlcyA8IDApCisgICAgICAgICAgICBnb3RvIGVuZDsKIAogICAgICAgICBp ZiAoIWN1ZS5sZW4pCiAgICAgICAgICAgICBicmVhazsKLS0gCjIuMzcuMSAoQXBwbGUgR2l0LTEz Ny4xKQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZt cGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2Zm bXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2 aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3Jn IHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=