Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vvmTQ-001nrp-1D for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Feb 2026 01:16:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vvmSQ-00H2Os-10 for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Feb 2026 01:15:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vvmSP-00H2OQ-2Z for pgsql-hackers@lists.postgresql.org; Fri, 27 Feb 2026 01:15:54 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vvmSM-00000001UBc-0v5G for pgsql-hackers@postgresql.org; Fri, 27 Feb 2026 01:15:52 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id EBA89111A57 for ; Fri, 27 Feb 2026 02:15:49 +0100 (CET) Received: from s979.loopia.se (unknown [172.22.191.5]) by s807.loopia.se (Postfix) with ESMTP id D2D08112176; Fri, 27 Feb 2026 02:15:49 +0100 (CET) Received: from localhost (unknown [172.22.191.6]) by s979.loopia.se (Postfix) with ESMTP id D034510BC44A; Fri, 27 Feb 2026 02:15:49 +0100 (CET) X-Virus-Scanned: amavis at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s472.loopia.se (amavis); dkim=pass (2048-bit key) header.d=proxel.se Received: from s980.loopia.se ([172.22.191.5]) by localhost (s472.loopia.se [172.22.190.12]) (amavis, port 10024) with LMTP id l663nGzbh-_m; Fri, 27 Feb 2026 02:15:47 +0100 (CET) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 147.28.75.140 Received: from [192.168.0.121] (customer-147-28-75-140.stosn.net [147.28.75.140]) (Authenticated sender: andreas@proxel.se) by s980.loopia.se (Postfix) with ESMTPSA id 0A1D0220155A; Fri, 27 Feb 2026 02:15:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1772154947; bh=gXyLukLZ2pNMW6pUW15Qy4ZPHgzhkP0qeDas/S+Oqd4=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=G3jK9hWAwDYW0t1owg5iK5JsycW5sLLsj128QeOSwWd+2/YQZ1hVrHonC/QgUNijK D4VIyltyjgBZoDAXFHNAawGLXIwGmaLIW4MCA4lsam5bmrYfU55bYrTF3/FRDSdvKf U+Ho56q1SKAv7qfae+YG09g9a2vH0sP766jEVxW1R6CA57m6NDStqKIim9hZhHMkpg uEfV34vYjVGF/IvvMUqWukUCsK4UKO2cSTIPvXtlFCaF2xcMaXue0bnDSXlNqzVM9b S5dVYK22Ve43mRX9AYdsdcQ9Zmh0U2ei+lkfYJNCg/T2cs3msVcLGE0BxTuzgU4vjA p62zxQ55uM/Uw== Content-Type: multipart/mixed; boundary="------------ok9jHNdFk9d4sdQ1mM00LB27" Message-ID: Date: Fri, 27 Feb 2026 02:15:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Use pg_malloc macros in src/fe_utils To: Michael Paquier Cc: Henrik TJ , PostgreSQL Hackers References: <6df1b64e-1314-9afd-41a3-3fefb76225e1@0x48.dk> <93102cd4-5e35-4392-8700-e6e2fee847fd@proxel.se> From: Andreas Karlsson Content-Language: en-US In-Reply-To: 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. --------------ok9jHNdFk9d4sdQ1mM00LB27 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/24/26 4:36 AM, Michael Paquier wrote: > On Mon, Feb 23, 2026 at 03:17:52AM +0100, Andreas Karlsson wrote: >> Looks like a nice change but why not just fix all instances of it in one >> swoop? It cannot be that many as there are 166 calls to pg_malloc() and 62 >> calls to pg_malloc0() after your patch that need to be looked at. > > FWIW, I don't really mind if these changes are proposed gradually, and > this looked fine enough on its own. So applied. Fair, here is a patch which should handle all uses in the frontend code so we follow this pattern consistently to encourage new code to use these macros. When doing this I found two things which I am ot sure what the cleanest way to handle would be so I broke them out into separate patches. 1. What should we do about when we allocate a an array of characters? Would it make sense to use pg_array_alloc() or would that jsut be silly? For example: -pad = (char *) pg_malloc(l + 1); +pad = pg_malloc_array(char, l + 1); 2. I found a small and harmless thinko. The buffer in verify_tar_file() is actually a char * but for some reason the code did the following: buffer = pg_malloc(READ_CHUNK_SIZE * sizeof(uint8)); What should we do about it? Just skip the "sizof(uint8)"? Andreas --------------ok9jHNdFk9d4sdQ1mM00LB27 Content-Type: text/x-patch; charset=UTF-8; name="v1-0001-Use-pg_malloc_object-and-pg_alloc_array-variants-.patch" Content-Disposition: attachment; filename*0="v1-0001-Use-pg_malloc_object-and-pg_alloc_array-variants-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwYzYyMjI5ZmY5YThmMWE1MTc1MzkzYjljMWQ1MWJiMzc5YWMzMWVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogRnJpLCAyNyBGZWIgMjAyNiAwMjowMzo0NiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjEgMS8zXSBVc2UgcGdfbWFsbG9jX29iamVjdCgpIGFuZCBwZ19hbGxvY19hcnJh eSgpIHZhcmlhbnRzCiBpbiBmcm9udGVuZCBjb2RlCgpXaGVyZSBwb3NzaWJsZSB1c2UgdGhl IHBnXypfb2JqZWN0KCkgYW5kIHBnXypfYXJyYXkoKSBtYWNyb3MgaW4gb3VyIGZyb250ZW5k CmNvZGUgdG8gZW5jb3VyYWdlIG5ld2x5IGFkZGVkIGNvZGUgdG8gdXNlIHRoZSBtYWNyb3Mu Ci0tLQogY29udHJpYi9vaWQybmFtZS9vaWQybmFtZS5jICAgICAgICAgICAgICAgICAgIHwg MTYgKysrLS0tCiBzcmMvYmluL2luaXRkYi9pbml0ZGIuYyAgICAgICAgICAgICAgICAgICAg ICAgfCAgNiArLS0KIHNyYy9iaW4vcGdfYW1jaGVjay9wZ19hbWNoZWNrLmMgICAgICAgICAg ICAgICB8ICA4ICstLQogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYyAg ICAgICAgIHwgIDQgKy0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5j ICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jICAg ICAgICAgICAgfCAgOCArLS0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC93YWxtZXRob2RzLmMg ICAgICAgICAgICB8IDEyICsrLS0tCiBzcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9t YW5pZmVzdC5jICAgICAgfCAgNCArLQogc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3BnX2Nv bWJpbmViYWNrdXAuYyAgIHwgIDYgKy0tCiBzcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvcmVj b25zdHJ1Y3QuYyAgICAgICAgfCAxMCArKy0tCiBzcmMvYmluL3BnX2NvbWJpbmViYWNrdXAv d3JpdGVfbWFuaWZlc3QuYyAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iaW4vcGdfcmV3aW5kL2RhdGFw YWdlbWFwLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX3Jld2luZC9saWJw cV9zb3VyY2UuYyAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ19yZXdpbmQvbG9j YWxfc291cmNlLmMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iaW4vcGdfcmV3aW5kL3Bn X3Jld2luZC5jICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX3Jld2luZC90 aW1lbGluZS5jICAgICAgICAgICAgICAgICAgfCAgNiArLS0KIHNyYy9iaW4vcGdfdXBncmFk ZS9jaGVjay5jICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvYmluL3BnX3VwZ3Jh ZGUvZnVuY3Rpb24uYyAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2Jpbi9wZ191cGdy YWRlL2luZm8uYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKystLQogc3JjL2Jpbi9wZ191 cGdyYWRlL3BhcmFsbGVsLmMgICAgICAgICAgICAgICAgIHwgMTIgKystLS0KIHNyYy9iaW4v cGdfdXBncmFkZS9zbHJ1X2lvLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmlu L3BnX3VwZ3JhZGUvdGFibGVzcGFjZS5jICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2Jp bi9wZ191cGdyYWRlL3Rhc2suYyAgICAgICAgICAgICAgICAgICAgIHwgIDggKy0tCiBzcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9hc3RyZWFtZXJfdmVyaWZ5LmMgICAgfCAgMiArLQogc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMgICAgIHwgIDYgKy0tCiBz cmMvYmluL3BnYmVuY2gvZXhwcnBhcnNlLnkgICAgICAgICAgICAgICAgICAgfCAxNiArKyst LS0KIHNyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMgICAgICAgICAgICAgICAgICAgICB8IDIy ICsrKystLS0tCiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNiArLS0KIHNyYy9iaW4vcHNxbC9jb3B5LmMgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBzcmMvYmluL3BzcWwvY3Jvc3N0YWJ2aWV3LmMgICAgICAgICAgICAg ICAgICAgfCAxNSArKystLS0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAg ICAgICAgICAgICB8ICA0ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAg ICAgICAgICAgICAgfCAgNyArKy0KIHNyYy9iaW4vcHNxbC92YXJpYWJsZXMuYyAgICAgICAg ICAgICAgICAgICAgICB8ICA2ICstLQogc3JjL2Jpbi9zY3JpcHRzL3JlaW5kZXhkYi5jICAg ICAgICAgICAgICAgICAgIHwgIDYgKy0tCiBzcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9u dGVzdGVyLmMgICAgICAgICAgfCAxMiArKy0tLQogc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNw YXJzZS55ICAgICAgICAgICAgICAgIHwgNTAgKysrKysrKysrLS0tLS0tLS0tLQogLi4uL21v ZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYyAgIHwgIDggKy0tCiBzcmMv dGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYyAgICAgICAgICAgICAgICAgfCAgNiArLS0KIDM5 IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCAxNTcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvY29udHJpYi9vaWQybmFtZS9vaWQybmFtZS5jIGIvY29udHJpYi9vaWQy bmFtZS9vaWQybmFtZS5jCmluZGV4IDYzZTZjZTJkYWU4Li4xZTllZmNkMzk1MyAxMDA2NDQK LS0tIGEvY29udHJpYi9vaWQybmFtZS9vaWQybmFtZS5jCisrKyBiL2NvbnRyaWIvb2lkMm5h bWUvb2lkMm5hbWUuYwpAQCAtMjM3LDEzICsyMzcsMTMgQEAgYWRkX29uZV9lbHQoY2hhciAq ZWx0bmFtZSwgZWFyeSAqZWFyeSkKIAlpZiAoZWFyeS0+YWxsb2MgPT0gMCkKIAl7CiAJCWVh cnkJICAtPmFsbG9jID0gODsKLQkJZWFyeQkgIC0+YXJyYXkgPSAoY2hhciAqKikgcGdfbWFs bG9jKDggKiBzaXplb2YoY2hhciAqKSk7CisJCWVhcnkJICAtPmFycmF5ID0gcGdfbWFsbG9j X2FycmF5KGNoYXIgKiwgOCk7CiAJfQogCWVsc2UgaWYgKGVhcnktPm51bSA+PSBlYXJ5LT5h bGxvYykKIAl7CiAJCWVhcnkJICAtPmFsbG9jICo9IDI7Ci0JCWVhcnkJICAtPmFycmF5ID0g KGNoYXIgKiopIHBnX3JlYWxsb2MoZWFyeS0+YXJyYXksCi0JCQkJCQkJCQkJCQkgZWFyeS0+ YWxsb2MgKiBzaXplb2YoY2hhciAqKSk7CisJCWVhcnkJICAtPmFycmF5ID0gcGdfcmVhbGxv Y19hcnJheShlYXJ5LT5hcnJheSwgY2hhciAqLAorCQkJCQkJCQkJCQkgZWFyeS0+YWxsb2Mp OwogCX0KIAogCWVhcnkJICAtPmFycmF5W2VhcnktPm51bV0gPSBwZ19zdHJkdXAoZWx0bmFt ZSk7CkBAIC00MDAsNyArNDAwLDcgQEAgc3FsX2V4ZWMoUEdjb25uICpjb25uLCBjb25zdCBj aGFyICp0b2RvLCBib29sIHF1aWV0KQogCW5maWVsZHMgPSBQUW5maWVsZHMocmVzKTsKIAog CS8qIGZvciBlYWNoIGZpZWxkLCBnZXQgdGhlIG5lZWRlZCB3aWR0aCAqLwotCWxlbmd0aCA9 IChpbnQgKikgcGdfbWFsbG9jKHNpemVvZihpbnQpICogbmZpZWxkcyk7CisJbGVuZ3RoID0g cGdfbWFsbG9jX2FycmF5KGludCwgbmZpZWxkcyk7CiAJZm9yIChqID0gMDsgaiA8IG5maWVs ZHM7IGorKykKIAkJbGVuZ3RoW2pdID0gc3RybGVuKFBRZm5hbWUocmVzLCBqKSk7CiAKQEAg LTU4NSwxMSArNTg1LDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCXN0cnVj dCBvcHRpb25zICpteV9vcHRzOwogCVBHY29ubgkgICAqcGdjb25uOwogCi0JbXlfb3B0cyA9 IChzdHJ1Y3Qgb3B0aW9ucyAqKSBwZ19tYWxsb2Moc2l6ZW9mKHN0cnVjdCBvcHRpb25zKSk7 CisJbXlfb3B0cyA9IHBnX21hbGxvY19vYmplY3Qoc3RydWN0IG9wdGlvbnMpOwogCi0JbXlf b3B0cy0+b2lkcyA9IChlYXJ5ICopIHBnX21hbGxvYyhzaXplb2YoZWFyeSkpOwotCW15X29w dHMtPnRhYmxlcyA9IChlYXJ5ICopIHBnX21hbGxvYyhzaXplb2YoZWFyeSkpOwotCW15X29w dHMtPmZpbGVudW1iZXJzID0gKGVhcnkgKikgcGdfbWFsbG9jKHNpemVvZihlYXJ5KSk7CisJ bXlfb3B0cy0+b2lkcyA9IHBnX21hbGxvY19vYmplY3QoZWFyeSk7CisJbXlfb3B0cy0+dGFi bGVzID0gcGdfbWFsbG9jX29iamVjdChlYXJ5KTsKKwlteV9vcHRzLT5maWxlbnVtYmVycyA9 IHBnX21hbGxvY19vYmplY3QoZWFyeSk7CiAKIAlteV9vcHRzLT5vaWRzLT5udW0gPSBteV9v cHRzLT5vaWRzLT5hbGxvYyA9IDA7CiAJbXlfb3B0cy0+dGFibGVzLT5udW0gPSBteV9vcHRz LT50YWJsZXMtPmFsbG9jID0gMDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRk Yi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggN2M0OWRkNDMzYTcuLjUzZWMx NTQ0ZmYzIDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYworKysgYi9zcmMv YmluL2luaXRkYi9pbml0ZGIuYwpAQCAtNDQ0LDcgKzQ0NCw3IEBAIGVzY2FwZV9xdW90ZXNf YmtpKGNvbnN0IGNoYXIgKnNyYykKIHN0YXRpYyB2b2lkCiBhZGRfc3RyaW5nbGlzdF9pdGVt KF9zdHJpbmdsaXN0ICoqbGlzdGhlYWQsIGNvbnN0IGNoYXIgKnN0cikKIHsKLQlfc3RyaW5n bGlzdCAqbmV3ZW50cnkgPSBwZ19tYWxsb2Moc2l6ZW9mKF9zdHJpbmdsaXN0KSk7CisJX3N0 cmluZ2xpc3QgKm5ld2VudHJ5ID0gcGdfbWFsbG9jX29iamVjdChfc3RyaW5nbGlzdCk7CiAJ X3N0cmluZ2xpc3QgKm9sZGVudHJ5OwogCiAJbmV3ZW50cnktPnN0ciA9IHBnX3N0cmR1cChz dHIpOwpAQCAtNjg3LDcgKzY4Nyw3IEBAIHJlYWRmaWxlKGNvbnN0IGNoYXIgKnBhdGgpCiAJ aW5pdFN0cmluZ0luZm8oJmxpbmUpOwogCiAJbWF4bGluZXMgPSAxMDI0OwotCXJlc3VsdCA9 IChjaGFyICoqKSBwZ19tYWxsb2MobWF4bGluZXMgKiBzaXplb2YoY2hhciAqKSk7CisJcmVz dWx0ID0gcGdfbWFsbG9jX2FycmF5KGNoYXIgKiwgbWF4bGluZXMpOwogCiAJbiA9IDA7CiAJ d2hpbGUgKHBnX2dldF9saW5lX2J1ZihpbmZpbGUsICZsaW5lKSkKQEAgLTY5Niw3ICs2OTYs NyBAQCByZWFkZmlsZShjb25zdCBjaGFyICpwYXRoKQogCQlpZiAobiA+PSBtYXhsaW5lcyAt IDEpCiAJCXsKIAkJCW1heGxpbmVzICo9IDI7Ci0JCQlyZXN1bHQgPSAoY2hhciAqKikgcGdf cmVhbGxvYyhyZXN1bHQsIG1heGxpbmVzICogc2l6ZW9mKGNoYXIgKikpOworCQkJcmVzdWx0 ID0gcGdfcmVhbGxvY19hcnJheShyZXN1bHQsIGNoYXIgKiwgbWF4bGluZXMpOwogCQl9CiAK IAkJcmVzdWx0W24rK10gPSBwZ19zdHJkdXAobGluZS5kYXRhKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfYW1jaGVjay9wZ19hbWNoZWNrLmMgYi9zcmMvYmluL3BnX2FtY2hlY2svcGdf YW1jaGVjay5jCmluZGV4IDAzZTI0YTI1NzdjLi4wOWJhMDU5NjQwMCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19hbWNoZWNrL3BnX2FtY2hlY2suYworKysgYi9zcmMvYmluL3BnX2FtY2hl Y2svcGdfYW1jaGVjay5jCkBAIC0xMzM4LDcgKzEzMzgsNyBAQCBleHRlbmRfcGF0dGVybl9p bmZvX2FycmF5KFBhdHRlcm5JbmZvQXJyYXkgKnBpYSkKIAlQYXR0ZXJuSW5mbyAqcmVzdWx0 OwogCiAJcGlhLT5sZW4rKzsKLQlwaWEtPmRhdGEgPSAoUGF0dGVybkluZm8gKikgcGdfcmVh bGxvYyhwaWEtPmRhdGEsIHBpYS0+bGVuICogc2l6ZW9mKFBhdHRlcm5JbmZvKSk7CisJcGlh LT5kYXRhID0gcGdfcmVhbGxvY19hcnJheShwaWEtPmRhdGEsIFBhdHRlcm5JbmZvLCBwaWEt Pmxlbik7CiAJcmVzdWx0ID0gJnBpYS0+ZGF0YVtwaWEtPmxlbiAtIDFdOwogCW1lbXNldChy ZXN1bHQsIDAsIHNpemVvZigqcmVzdWx0KSk7CiAKQEAgLTE1OTMsNyArMTU5Myw3IEBAIGNv bXBpbGVfZGF0YWJhc2VfbGlzdChQR2Nvbm4gKmNvbm4sIFNpbXBsZVB0ckxpc3QgKmRhdGFi YXNlcywKIAogCWlmIChpbml0aWFsX2RibmFtZSkKIAl7Ci0JCURhdGFiYXNlSW5mbyAqZGF0 ID0gKERhdGFiYXNlSW5mbyAqKSBwZ19tYWxsb2MwKHNpemVvZihEYXRhYmFzZUluZm8pKTsK KwkJRGF0YWJhc2VJbmZvICpkYXQgPSBwZ19tYWxsb2MwX29iamVjdChEYXRhYmFzZUluZm8p OwogCiAJCS8qIFRoaXMgZGF0YWJhc2UgaXMgaW5jbHVkZWQuICBBZGQgdG8gbGlzdCAqLwog CQlpZiAob3B0cy52ZXJib3NlKQpAQCAtMTczOCw3ICsxNzM4LDcgQEAgY29tcGlsZV9kYXRh YmFzZV9saXN0KFBHY29ubiAqY29ubiwgU2ltcGxlUHRyTGlzdCAqZGF0YWJhc2VzLAogCQkJ aWYgKG9wdHMudmVyYm9zZSkKIAkJCQlwZ19sb2dfaW5mbygiaW5jbHVkaW5nIGRhdGFiYXNl IFwiJXNcIiIsIGRhdG5hbWUpOwogCi0JCQlkYXQgPSAoRGF0YWJhc2VJbmZvICopIHBnX21h bGxvYzAoc2l6ZW9mKERhdGFiYXNlSW5mbykpOworCQkJZGF0ID0gcGdfbWFsbG9jMF9vYmpl Y3QoRGF0YWJhc2VJbmZvKTsKIAkJCWRhdC0+ZGF0bmFtZSA9IHBzdHJkdXAoZGF0bmFtZSk7 CiAJCQlzaW1wbGVfcHRyX2xpc3RfYXBwZW5kKGRhdGFiYXNlcywgZGF0KTsKIAkJfQpAQCAt MjIwMiw3ICsyMjAyLDcgQEAgY29tcGlsZV9yZWxhdGlvbl9saXN0X29uZV9kYihQR2Nvbm4g KmNvbm4sIFNpbXBsZVB0ckxpc3QgKnJlbGF0aW9ucywKIAkJewogCQkJLyogQ3VycmVudCBy ZWNvcmQgcGVydGFpbnMgdG8gYSByZWxhdGlvbiAqLwogCi0JCQlSZWxhdGlvbkluZm8gKnJl bCA9IChSZWxhdGlvbkluZm8gKikgcGdfbWFsbG9jMChzaXplb2YoUmVsYXRpb25JbmZvKSk7 CisJCQlSZWxhdGlvbkluZm8gKnJlbCA9IHBnX21hbGxvYzBfb2JqZWN0KFJlbGF0aW9uSW5m byk7CiAKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG9pZCkpOwogCQkJQXNzZXJ0KChpc19oZWFw ICYmICFpc19idHJlZSkgfHwgKGlzX2J0cmVlICYmICFpc19oZWFwKSk7CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jIGIvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYwppbmRleCAxZTNhODIwM2Y3Ny4uZmExNjlhOGQ2 NDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMK KysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYwpAQCAtMzIwLDcg KzMyMCw3IEBAIGtpbGxfYmdjaGlsZF9hdGV4aXQodm9pZCkKIHN0YXRpYyB2b2lkCiB0YWJs ZXNwYWNlX2xpc3RfYXBwZW5kKGNvbnN0IGNoYXIgKmFyZykKIHsKLQlUYWJsZXNwYWNlTGlz dENlbGwgKmNlbGwgPSAoVGFibGVzcGFjZUxpc3RDZWxsICopIHBnX21hbGxvYzAoc2l6ZW9m KFRhYmxlc3BhY2VMaXN0Q2VsbCkpOworCVRhYmxlc3BhY2VMaXN0Q2VsbCAqY2VsbCA9IHBn X21hbGxvYzBfb2JqZWN0KFRhYmxlc3BhY2VMaXN0Q2VsbCk7CiAJY2hhcgkgICAqZHN0Owog CWNoYXIJICAgKmRzdF9wdHI7CiAJY29uc3QgY2hhciAqYXJnX3B0cjsKQEAgLTYyMyw3ICs2 MjMsNyBAQCBTdGFydExvZ1N0cmVhbWVyKGNoYXIgKnN0YXJ0cG9zLCB1aW50MzIgdGltZWxp bmUsIGNoYXIgKnN5c2lkZW50aWZpZXIsCiAJCQkJbG87CiAJY2hhcgkJc3RhdHVzZGlyW01B WFBHUEFUSF07CiAKLQlwYXJhbSA9IHBnX21hbGxvYzAoc2l6ZW9mKGxvZ3N0cmVhbWVyX3Bh cmFtKSk7CisJcGFyYW0gPSBwZ19tYWxsb2MwX29iamVjdChsb2dzdHJlYW1lcl9wYXJhbSk7 CiAJcGFyYW0tPnRpbWVsaW5lID0gdGltZWxpbmU7CiAJcGFyYW0tPnN5c2lkZW50aWZpZXIg PSBzeXNpZGVudGlmaWVyOwogCXBhcmFtLT53YWxfY29tcHJlc3NfYWxnb3JpdGhtID0gd2Fs X2NvbXByZXNzX2FsZ29yaXRobTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19yZWN2bG9naWNhbC5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY3Zsb2dp Y2FsLmMKaW5kZXggYWJjNmNkODVhNmQuLmJlNzE3ODNiMzcwIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2Jhc2ViYWNrdXAvcGdfcmVjdmxvZ2ljYWwuYworKysgYi9zcmMvYmluL3BnX2Jh c2ViYWNrdXAvcGdfcmVjdmxvZ2ljYWwuYwpAQCAtODIwLDcgKzgyMCw3IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCQl9CiAKIAkJCQkJbm9wdGlvbnMgKz0gMTsKLQkJ CQkJb3B0aW9ucyA9IHBnX3JlYWxsb2Mob3B0aW9ucywgc2l6ZW9mKGNoYXIgKikgKiBub3B0 aW9ucyAqIDIpOworCQkJCQlvcHRpb25zID0gcGdfcmVhbGxvY19hcnJheShvcHRpb25zLCBj aGFyICosIG5vcHRpb25zICogMik7CiAKIAkJCQkJb3B0aW9uc1sobm9wdGlvbnMgLSAxKSAq IDJdID0gZGF0YTsKIAkJCQkJb3B0aW9uc1sobm9wdGlvbnMgLSAxKSAqIDIgKyAxXSA9IHZh bDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9zdHJlYW11dGlsLmMgYi9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCmluZGV4IDFkNDA0ZTc3OGEwLi43 NmFiZGZhMmFlNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3N0cmVhbXV0 aWwuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCkBAIC05NCw4 ICs5NCw4IEBAIEdldENvbm5lY3Rpb24odm9pZCkKIAkJCQlhcmdjb3VudCsrOwogCQl9CiAK LQkJa2V5d29yZHMgPSBwZ19tYWxsb2MwKChhcmdjb3VudCArIDEpICogc2l6ZW9mKCprZXl3 b3JkcykpOwotCQl2YWx1ZXMgPSBwZ19tYWxsb2MwKChhcmdjb3VudCArIDEpICogc2l6ZW9m KCp2YWx1ZXMpKTsKKwkJa2V5d29yZHMgPSBwZ19tYWxsb2MwX2FycmF5KGNvbnN0IGNoYXIg KiwgYXJnY291bnQgKyAxKTsKKwkJdmFsdWVzID0gcGdfbWFsbG9jMF9hcnJheShjb25zdCBj aGFyICosIGFyZ2NvdW50ICsgMSk7CiAKIAkJLyoKIAkJICogU2V0IGRibmFtZSBoZXJlIGFs cmVhZHksIHNvIGl0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IGEgZGJuYW1lIGluIHRoZQpAQCAt MTE3LDggKzExNyw4IEBAIEdldENvbm5lY3Rpb24odm9pZCkKIAl9CiAJZWxzZQogCXsKLQkJ a2V5d29yZHMgPSBwZ19tYWxsb2MwKChhcmdjb3VudCArIDEpICogc2l6ZW9mKCprZXl3b3Jk cykpOwotCQl2YWx1ZXMgPSBwZ19tYWxsb2MwKChhcmdjb3VudCArIDEpICogc2l6ZW9mKCp2 YWx1ZXMpKTsKKwkJa2V5d29yZHMgPSBwZ19tYWxsb2MwX2FycmF5KGNvbnN0IGNoYXIgKiwg YXJnY291bnQgKyAxKTsKKwkJdmFsdWVzID0gcGdfbWFsbG9jMF9hcnJheShjb25zdCBjaGFy ICosIGFyZ2NvdW50ICsgMSk7CiAJCWtleXdvcmRzW2ldID0gImRibmFtZSI7CiAJCXZhbHVl c1tpXSA9IChkYm5hbWUgPT0gTlVMTCkgPyAicmVwbGljYXRpb24iIDogZGJuYW1lOwogCQlp Kys7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvd2FsbWV0aG9kcy5jIGIv c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3dhbG1ldGhvZHMuYwppbmRleCAxN2QyMmM3OWY2OC4u NDc2NjczY2Y3MjkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC93YWxtZXRo b2RzLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3dhbG1ldGhvZHMuYwpAQCAtMjc1 LDcgKzI3NSw3IEBAIGRpcl9vcGVuX2Zvcl93cml0ZShXYWxXcml0ZU1ldGhvZCAqd3dtZXRo b2QsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLAogCQl9CiAJfQogCi0JZiA9IHBnX21hbGxvYzAo c2l6ZW9mKERpcmVjdG9yeU1ldGhvZEZpbGUpKTsKKwlmID0gcGdfbWFsbG9jMF9vYmplY3Qo RGlyZWN0b3J5TWV0aG9kRmlsZSk7CiAjaWZkZWYgSEFWRV9MSUJaCiAJaWYgKHd3bWV0aG9k LT5jb21wcmVzc2lvbl9hbGdvcml0aG0gPT0gUEdfQ09NUFJFU1NJT05fR1pJUCkKIAkJZi0+ Z3pmcCA9IGd6ZnA7CkBAIC02NDMsNyArNjQzLDcgQEAgQ3JlYXRlV2FsRGlyZWN0b3J5TWV0 aG9kKGNvbnN0IGNoYXIgKmJhc2VkaXIsCiB7CiAJRGlyZWN0b3J5TWV0aG9kRGF0YSAqd3dt ZXRob2Q7CiAKLQl3d21ldGhvZCA9IHBnX21hbGxvYzAoc2l6ZW9mKERpcmVjdG9yeU1ldGhv ZERhdGEpKTsKKwl3d21ldGhvZCA9IHBnX21hbGxvYzBfb2JqZWN0KERpcmVjdG9yeU1ldGhv ZERhdGEpOwogCSooKGNvbnN0IFdhbFdyaXRlTWV0aG9kT3BzICoqKSAmd3dtZXRob2QtPmJh c2Uub3BzKSA9CiAJCSZXYWxEaXJlY3RvcnlNZXRob2RPcHM7CiAJd3dtZXRob2QtPmJhc2Uu Y29tcHJlc3Npb25fYWxnb3JpdGhtID0gY29tcHJlc3Npb25fYWxnb3JpdGhtOwpAQCAtODI1 LDcgKzgyNSw3IEBAIHN0YXRpYyBjaGFyICoKIHRhcl9nZXRfZmlsZV9uYW1lKFdhbFdyaXRl TWV0aG9kICp3d21ldGhvZCwgY29uc3QgY2hhciAqcGF0aG5hbWUsCiAJCQkJICBjb25zdCBj aGFyICp0ZW1wX3N1ZmZpeCkKIHsKLQljaGFyCSAgICpmaWxlbmFtZSA9IHBnX21hbGxvYzAo TUFYUEdQQVRIICogc2l6ZW9mKGNoYXIpKTsKKwljaGFyCSAgICpmaWxlbmFtZSA9IHBnX21h bGxvYzBfYXJyYXkoY2hhciwgTUFYUEdQQVRIKTsKIAogCXNucHJpbnRmKGZpbGVuYW1lLCBN QVhQR1BBVEgsICIlcyVzIiwKIAkJCSBwYXRobmFtZSwgdGVtcF9zdWZmaXggPyB0ZW1wX3N1 ZmZpeCA6ICIiKTsKQEAgLTg1OSw3ICs4NTksNyBAQCB0YXJfb3Blbl9mb3Jfd3JpdGUoV2Fs V3JpdGVNZXRob2QgKnd3bWV0aG9kLCBjb25zdCBjaGFyICpwYXRobmFtZSwKICNpZmRlZiBI QVZFX0xJQloKIAkJaWYgKHd3bWV0aG9kLT5jb21wcmVzc2lvbl9hbGdvcml0aG0gPT0gUEdf Q09NUFJFU1NJT05fR1pJUCkKIAkJewotCQkJdGFyX2RhdGEtPnpwID0gKHpfc3RyZWFtcCkg cGdfbWFsbG9jKHNpemVvZih6X3N0cmVhbSkpOworCQkJdGFyX2RhdGEtPnpwID0gcGdfbWFs bG9jX29iamVjdCh6X3N0cmVhbSk7CiAJCQl0YXJfZGF0YS0+enAtPnphbGxvYyA9IFpfTlVM TDsKIAkJCXRhcl9kYXRhLT56cC0+emZyZWUgPSBaX05VTEw7CiAJCQl0YXJfZGF0YS0+enAt Pm9wYXF1ZSA9IFpfTlVMTDsKQEAgLTg5Myw3ICs4OTMsNyBAQCB0YXJfb3Blbl9mb3Jfd3Jp dGUoV2FsV3JpdGVNZXRob2QgKnd3bWV0aG9kLCBjb25zdCBjaGFyICpwYXRobmFtZSwKIAkJ cmV0dXJuIE5VTEw7CiAJfQogCi0JdGFyX2RhdGEtPmN1cnJlbnRmaWxlID0gcGdfbWFsbG9j MChzaXplb2YoVGFyTWV0aG9kRmlsZSkpOworCXRhcl9kYXRhLT5jdXJyZW50ZmlsZSA9IHBn X21hbGxvYzBfb2JqZWN0KFRhck1ldGhvZEZpbGUpOwogCXRhcl9kYXRhLT5jdXJyZW50Zmls ZS0+YmFzZS53d21ldGhvZCA9IHd3bWV0aG9kOwogCiAJdG1wcGF0aCA9IHRhcl9nZXRfZmls ZV9uYW1lKHd3bWV0aG9kLCBwYXRobmFtZSwgdGVtcF9zdWZmaXgpOwpAQCAtMTM2MCw3ICsx MzYwLDcgQEAgQ3JlYXRlV2FsVGFyTWV0aG9kKGNvbnN0IGNoYXIgKnRhcmJhc2UsCiAJY29u c3QgY2hhciAqc3VmZml4ID0gKGNvbXByZXNzaW9uX2FsZ29yaXRobSA9PSBQR19DT01QUkVT U0lPTl9HWklQKSA/CiAJCSIudGFyLmd6IiA6ICIudGFyIjsKIAotCXd3bWV0aG9kID0gcGdf bWFsbG9jMChzaXplb2YoVGFyTWV0aG9kRGF0YSkpOworCXd3bWV0aG9kID0gcGdfbWFsbG9j MF9vYmplY3QoVGFyTWV0aG9kRGF0YSk7CiAJKigoY29uc3QgV2FsV3JpdGVNZXRob2RPcHMg KiopICZ3d21ldGhvZC0+YmFzZS5vcHMpID0KIAkJJldhbFRhck1ldGhvZE9wczsKIAl3d21l dGhvZC0+YmFzZS5jb21wcmVzc2lvbl9hbGdvcml0aG0gPSBjb21wcmVzc2lvbl9hbGdvcml0 aG07CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9tYW5pZmVz dC5jIGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL2xvYWRfbWFuaWZlc3QuYwppbmRleCBj MzYzYWM2MTg3ZS4uMmU1MGI3YWY0ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29tYmlu ZWJhY2t1cC9sb2FkX21hbmlmZXN0LmMKKysrIGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3Vw L2xvYWRfbWFuaWZlc3QuYwpAQCAtODUsNyArODUsNyBAQCBsb2FkX2JhY2t1cF9tYW5pZmVz dHMoaW50IG5fYmFja3VwcywgY2hhciAqKmJhY2t1cF9kaXJlY3RvcmllcykKIAltYW5pZmVz dF9kYXRhICoqcmVzdWx0OwogCWludAkJCWk7CiAKLQlyZXN1bHQgPSBwZ19tYWxsb2Moc2l6 ZW9mKG1hbmlmZXN0X2RhdGEgKikgKiBuX2JhY2t1cHMpOworCXJlc3VsdCA9IHBnX21hbGxv Y19hcnJheShtYW5pZmVzdF9kYXRhICosIG5fYmFja3Vwcyk7CiAJZm9yIChpID0gMDsgaSA8 IG5fYmFja3VwczsgKytpKQogCQlyZXN1bHRbaV0gPSBsb2FkX2JhY2t1cF9tYW5pZmVzdChi YWNrdXBfZGlyZWN0b3JpZXNbaV0pOwogCkBAIC0xMzksNyArMTM5LDcgQEAgbG9hZF9iYWNr dXBfbWFuaWZlc3QoY2hhciAqYmFja3VwX2RpcmVjdG9yeSkKIAkvKiBDcmVhdGUgdGhlIGhh c2ggdGFibGUuICovCiAJaHQgPSBtYW5pZmVzdF9maWxlc19jcmVhdGUoaW5pdGlhbF9zaXpl LCBOVUxMKTsKIAotCXJlc3VsdCA9IHBnX21hbGxvYzAoc2l6ZW9mKG1hbmlmZXN0X2RhdGEp KTsKKwlyZXN1bHQgPSBwZ19tYWxsb2MwX29iamVjdChtYW5pZmVzdF9kYXRhKTsKIAlyZXN1 bHQtPmZpbGVzID0gaHQ7CiAJY29udGV4dC5wcml2YXRlX2RhdGEgPSByZXN1bHQ7CiAJY29u dGV4dC52ZXJzaW9uX2NiID0gY29tYmluZWJhY2t1cF92ZXJzaW9uX2NiOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3BnX2NvbWJpbmViYWNrdXAuYyBiL3NyYy9i aW4vcGdfY29tYmluZWJhY2t1cC9wZ19jb21iaW5lYmFja3VwLmMKaW5kZXggYjlmMjZjZTc4 MmUuLmFjN2ViMDk0MGQ1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAv cGdfY29tYmluZWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC9wZ19j b21iaW5lYmFja3VwLmMKQEAgLTQ1NSw3ICs0NTUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiBzdGF0aWMgdm9pZAogYWRkX3RhYmxlc3BhY2VfbWFwcGluZyhjYl9vcHRp b25zICpvcHQsIGNoYXIgKmFyZykKIHsKLQljYl90YWJsZXNwYWNlX21hcHBpbmcgKnRzbWFw ID0gcGdfbWFsbG9jMChzaXplb2YoY2JfdGFibGVzcGFjZV9tYXBwaW5nKSk7CisJY2JfdGFi bGVzcGFjZV9tYXBwaW5nICp0c21hcCA9IHBnX21hbGxvYzBfb2JqZWN0KGNiX3RhYmxlc3Bh Y2VfbWFwcGluZyk7CiAJY2hhcgkgICAqZHN0OwogCWNoYXIJICAgKmRzdF9wdHI7CiAJY2hh cgkgICAqYXJnX3B0cjsKQEAgLTExNzEsNyArMTE3MSw3IEBAIHByb2Nlc3NfZGlyZWN0b3J5 X3JlY3Vyc2l2ZWx5KE9pZCB0c29pZCwKIHN0YXRpYyB2b2lkCiByZW1lbWJlcl90b19jbGVh bnVwX2RpcmVjdG9yeShjaGFyICp0YXJnZXRfcGF0aCwgYm9vbCBybXRvcGRpcikKIHsKLQlj Yl9jbGVhbnVwX2RpciAqZGlyID0gcGdfbWFsbG9jKHNpemVvZihjYl9jbGVhbnVwX2Rpcikp OworCWNiX2NsZWFudXBfZGlyICpkaXIgPSBwZ19tYWxsb2Nfb2JqZWN0KGNiX2NsZWFudXBf ZGlyKTsKIAogCWRpci0+dGFyZ2V0X3BhdGggPSB0YXJnZXRfcGF0aDsKIAlkaXItPnJtdG9w ZGlyID0gcm10b3BkaXI7CkBAIC0xMjU5LDcgKzEyNTksNyBAQCBzY2FuX2Zvcl9leGlzdGlu Z190YWJsZXNwYWNlcyhjaGFyICpwYXRobmFtZSwgY2Jfb3B0aW9ucyAqb3B0KQogCQl9CiAK IAkJLyogQ3JlYXRlIGEgbmV3IHRhYmxlc3BhY2Ugb2JqZWN0LiAqLwotCQl0cyA9IHBnX21h bGxvYzAoc2l6ZW9mKGNiX3RhYmxlc3BhY2UpKTsKKwkJdHMgPSBwZ19tYWxsb2MwX29iamVj dChjYl90YWJsZXNwYWNlKTsKIAkJdHMtPm9pZCA9IG9pZDsKIAogCQkvKgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3JlY29uc3RydWN0LmMgYi9zcmMvYmluL3Bn X2NvbWJpbmViYWNrdXAvcmVjb25zdHJ1Y3QuYwppbmRleCBkYTYwZjdkMDI5Ny4uMzM0OWFh MjQ0MWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC9yZWNvbnN0cnVj dC5jCisrKyBiL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC9yZWNvbnN0cnVjdC5jCkBAIC0x MjAsNyArMTIwLDcgQEAgcmVjb25zdHJ1Y3RfZnJvbV9pbmNyZW1lbnRhbF9maWxlKGNoYXIg KmlucHV0X2ZpbGVuYW1lLAogCSAqIEV2ZXJ5IGJsb2NrIG11c3QgY29tZSBlaXRoZXIgZnJv bSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIGZpbGUgb3IKIAkgKiBmcm9tIG9uZSBvZiB0 aGUgcHJpb3IgYmFja3Vwcy4KIAkgKi8KLQlzb3VyY2UgPSBwZ19tYWxsb2MwKHNpemVvZihy ZmlsZSAqKSAqICgxICsgbl9wcmlvcl9iYWNrdXBzKSk7CisJc291cmNlID0gcGdfbWFsbG9j MF9hcnJheShyZmlsZSAqLCAxICsgbl9wcmlvcl9iYWNrdXBzKTsKIAogCS8qCiAJICogVXNl IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBsYXRlc3QgaW5jcmVtZW50YWwgZmlsZSB0byBm aWd1cmUgb3V0IGhvdwpAQCAtMTM1LDggKzEzNSw4IEBAIHJlY29uc3RydWN0X2Zyb21faW5j cmVtZW50YWxfZmlsZShjaGFyICppbnB1dF9maWxlbmFtZSwKIAkgKiBuZWVkIHRvIG9idGFp biBpdCBhbmQgYXQgd2hhdCBvZmZzZXQgaW4gdGhhdCBmaWxlIGl0J3Mgc3RvcmVkLgogCSAq IHNvdXJjZW1hcCBnaXZlcyB1cyB0aGUgZmlyc3Qgb2YgdGhlc2UgdGhpbmdzLCBhbmQgb2Zm c2V0bWFwIHRoZSBsYXR0ZXIuCiAJICovCi0Jc291cmNlbWFwID0gcGdfbWFsbG9jMChzaXpl b2YocmZpbGUgKikgKiBibG9ja19sZW5ndGgpOwotCW9mZnNldG1hcCA9IHBnX21hbGxvYzAo c2l6ZW9mKG9mZl90KSAqIGJsb2NrX2xlbmd0aCk7CisJc291cmNlbWFwID0gcGdfbWFsbG9j MF9hcnJheShyZmlsZSAqLCBibG9ja19sZW5ndGgpOworCW9mZnNldG1hcCA9IHBnX21hbGxv YzBfYXJyYXkob2ZmX3QsIGJsb2NrX2xlbmd0aCk7CiAKIAkvKgogCSAqIEV2ZXJ5IGJsb2Nr IHRoYXQgaXMgcHJlc2VudCBpbiB0aGUgbmV3ZXN0IGluY3JlbWVudGFsIGZpbGUgc2hvdWxk IGJlCkBAIC00ODMsNyArNDgzLDcgQEAgbWFrZV9pbmNyZW1lbnRhbF9yZmlsZShjaGFyICpm aWxlbmFtZSkKIAlpZiAocmYtPm51bV9ibG9ja3MgPiAwKQogCXsKIAkJcmYtPnJlbGF0aXZl X2Jsb2NrX251bWJlcnMgPQotCQkJcGdfbWFsbG9jMChzaXplb2YoQmxvY2tOdW1iZXIpICog cmYtPm51bV9ibG9ja3MpOworCQkJcGdfbWFsbG9jMF9hcnJheShCbG9ja051bWJlciwgcmYt Pm51bV9ibG9ja3MpOwogCQlyZWFkX2J5dGVzKHJmLCByZi0+cmVsYXRpdmVfYmxvY2tfbnVt YmVycywKIAkJCQkgICBzaXplb2YoQmxvY2tOdW1iZXIpICogcmYtPm51bV9ibG9ja3MpOwog CX0KQEAgLTUxMiw3ICs1MTIsNyBAQCBtYWtlX3JmaWxlKGNoYXIgKmZpbGVuYW1lLCBib29s IG1pc3Npbmdfb2spCiB7CiAJcmZpbGUJICAgKnJmOwogCi0JcmYgPSBwZ19tYWxsb2MwKHNp emVvZihyZmlsZSkpOworCXJmID0gcGdfbWFsbG9jMF9vYmplY3QocmZpbGUpOwogCXJmLT5m aWxlbmFtZSA9IHBzdHJkdXAoZmlsZW5hbWUpOwogCWlmICgocmYtPmZkID0gb3BlbihmaWxl bmFtZSwgT19SRE9OTFkgfCBQR19CSU5BUlksIDApKSA8IDApCiAJewpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3dyaXRlX21hbmlmZXN0LmMgYi9zcmMvYmluL3Bn X2NvbWJpbmViYWNrdXAvd3JpdGVfbWFuaWZlc3QuYwppbmRleCA0ZjNlZDJjMTczYy4uNzE1 Mjg2MDQzYjUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC93cml0ZV9t YW5pZmVzdC5jCisrKyBiL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC93cml0ZV9tYW5pZmVz dC5jCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBzaXplX3QgaGV4X2VuY29kZShjb25zdCB1 aW50OCAqc3JjLCBzaXplX3QgbGVuLCBjaGFyICpkc3QpOwogbWFuaWZlc3Rfd3JpdGVyICoK IGNyZWF0ZV9tYW5pZmVzdF93cml0ZXIoY2hhciAqZGlyZWN0b3J5LCB1aW50NjQgc3lzdGVt X2lkZW50aWZpZXIpCiB7Ci0JbWFuaWZlc3Rfd3JpdGVyICptd3JpdGVyID0gcGdfbWFsbG9j KHNpemVvZihtYW5pZmVzdF93cml0ZXIpKTsKKwltYW5pZmVzdF93cml0ZXIgKm13cml0ZXIg PSBwZ19tYWxsb2Nfb2JqZWN0KG1hbmlmZXN0X3dyaXRlcik7CiAKIAlzbnByaW50Zihtd3Jp dGVyLT5wYXRobmFtZSwgTUFYUEdQQVRILCAiJXMvYmFja3VwX21hbmlmZXN0IiwgZGlyZWN0 b3J5KTsKIAltd3JpdGVyLT5mZCA9IC0xOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jdGwv cGdfY3RsLmMgYi9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYwppbmRleCAxMjI4NTZiNTk5ZS4u M2NjNjE0NTVkY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY3RsL3BnX2N0bC5jCisrKyBi L3NyYy9iaW4vcGdfY3RsL3BnX2N0bC5jCkBAIC0zNDYsNyArMzQ2LDcgQEAgcmVhZGZpbGUo Y29uc3QgY2hhciAqcGF0aCwgaW50ICpudW1saW5lcykKIAl7CiAJCS8qIGVtcHR5IGZpbGUg Ki8KIAkJY2xvc2UoZmQpOwotCQlyZXN1bHQgPSAoY2hhciAqKikgcGdfbWFsbG9jKHNpemVv ZihjaGFyICopKTsKKwkJcmVzdWx0ID0gcGdfbWFsbG9jX29iamVjdChjaGFyICopOwogCQkq cmVzdWx0ID0gTlVMTDsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9CkBAIC0zNzQsNyArMzc0LDcg QEAgcmVhZGZpbGUoY29uc3QgY2hhciAqcGF0aCwgaW50ICpudW1saW5lcykKIAl9CiAKIAkv KiBzZXQgdXAgdGhlIHJlc3VsdCBidWZmZXIgKi8KLQlyZXN1bHQgPSAoY2hhciAqKikgcGdf bWFsbG9jKChubGluZXMgKyAxKSAqIHNpemVvZihjaGFyICopKTsKKwlyZXN1bHQgPSBwZ19t YWxsb2NfYXJyYXkoY2hhciAqLCBubGluZXMgKyAxKTsKIAkqbnVtbGluZXMgPSBubGluZXM7 CiAKIAkvKiBub3cgc3BsaXQgdGhlIGJ1ZmZlciBpbnRvIGxpbmVzICovCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX3Jld2luZC9kYXRhcGFnZW1hcC5jIGIvc3JjL2Jpbi9wZ19yZXdpbmQv ZGF0YXBhZ2VtYXAuYwppbmRleCA5NGJhYzQzZmI5Mi4uOGU4Y2RkYTUwMDUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfcmV3aW5kL2RhdGFwYWdlbWFwLmMKKysrIGIvc3JjL2Jpbi9wZ19y ZXdpbmQvZGF0YXBhZ2VtYXAuYwpAQCAtNzYsNyArNzYsNyBAQCBkYXRhcGFnZW1hcF9pdGVy YXRlKGRhdGFwYWdlbWFwX3QgKm1hcCkKIHsKIAlkYXRhcGFnZW1hcF9pdGVyYXRvcl90ICpp dGVyOwogCi0JaXRlciA9IHBnX21hbGxvYyhzaXplb2YoZGF0YXBhZ2VtYXBfaXRlcmF0b3Jf dCkpOworCWl0ZXIgPSBwZ19tYWxsb2MwX29iamVjdChkYXRhcGFnZW1hcF9pdGVyYXRvcl90 KTsKIAlpdGVyLT5tYXAgPSBtYXA7CiAJaXRlci0+bmV4dGJsa25vID0gMDsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19yZXdpbmQvbGlicHFfc291cmNlLmMgYi9zcmMvYmluL3BnX3Jl d2luZC9saWJwcV9zb3VyY2UuYwppbmRleCAxNWEwNWQ5YThkMC4uNjk1NWJjNTc1ZWEgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmV3aW5kL2xpYnBxX3NvdXJjZS5jCisrKyBiL3NyYy9i aW4vcGdfcmV3aW5kL2xpYnBxX3NvdXJjZS5jCkBAIC04NCw3ICs4NCw3IEBAIGluaXRfbGli cHFfc291cmNlKFBHY29ubiAqY29ubikKIAogCWluaXRfbGlicHFfY29ubihjb25uKTsKIAot CXNyYyA9IHBnX21hbGxvYzAoc2l6ZW9mKGxpYnBxX3NvdXJjZSkpOworCXNyYyA9IHBnX21h bGxvYzBfb2JqZWN0KGxpYnBxX3NvdXJjZSk7CiAKIAlzcmMtPmNvbW1vbi50cmF2ZXJzZV9m aWxlcyA9IGxpYnBxX3RyYXZlcnNlX2ZpbGVzOwogCXNyYy0+Y29tbW9uLmZldGNoX2ZpbGUg PSBsaWJwcV9mZXRjaF9maWxlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXdpbmQvbG9j YWxfc291cmNlLmMgYi9zcmMvYmluL3BnX3Jld2luZC9sb2NhbF9zb3VyY2UuYwppbmRleCA5 N2Q2ZjY1MDA5Yi4uNDg0MWNmMDFmYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmV3aW5k L2xvY2FsX3NvdXJjZS5jCisrKyBiL3NyYy9iaW4vcGdfcmV3aW5kL2xvY2FsX3NvdXJjZS5j CkBAIC0zOSw3ICszOSw3IEBAIGluaXRfbG9jYWxfc291cmNlKGNvbnN0IGNoYXIgKmRhdGFk aXIpCiB7CiAJbG9jYWxfc291cmNlICpzcmM7CiAKLQlzcmMgPSBwZ19tYWxsb2MwKHNpemVv Zihsb2NhbF9zb3VyY2UpKTsKKwlzcmMgPSBwZ19tYWxsb2MwX29iamVjdChsb2NhbF9zb3Vy Y2UpOwogCiAJc3JjLT5jb21tb24udHJhdmVyc2VfZmlsZXMgPSBsb2NhbF90cmF2ZXJzZV9m aWxlczsKIAlzcmMtPmNvbW1vbi5mZXRjaF9maWxlID0gbG9jYWxfZmV0Y2hfZmlsZTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jIGIvc3JjL2Jpbi9wZ19y ZXdpbmQvcGdfcmV3aW5kLmMKaW5kZXggZDBhYWZkN2U3YTYuLjlkNzQ1ZDRiMjViIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3Jld2luZC9wZ19yZXdpbmQuYworKysgYi9zcmMvYmluL3Bn X3Jld2luZC9wZ19yZXdpbmQuYwpAQCAtODc0LDcgKzg3NCw3IEBAIGdldFRpbWVsaW5lSGlz dG9yeShUaW1lTGluZUlEIHRsaSwgYm9vbCBpc19zb3VyY2UsIGludCAqbmVudHJpZXMpCiAJ ICovCiAJaWYgKHRsaSA9PSAxKQogCXsKLQkJaGlzdG9yeSA9IChUaW1lTGluZUhpc3RvcnlF bnRyeSAqKSBwZ19tYWxsb2Moc2l6ZW9mKFRpbWVMaW5lSGlzdG9yeUVudHJ5KSk7CisJCWhp c3RvcnkgPSBwZ19tYWxsb2Nfb2JqZWN0KFRpbWVMaW5lSGlzdG9yeUVudHJ5KTsKIAkJaGlz dG9yeS0+dGxpID0gdGxpOwogCQloaXN0b3J5LT5iZWdpbiA9IGhpc3RvcnktPmVuZCA9IElu dmFsaWRYTG9nUmVjUHRyOwogCQkqbmVudHJpZXMgPSAxOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19yZXdpbmQvdGltZWxpbmUuYyBiL3NyYy9iaW4vcGdfcmV3aW5kL3RpbWVsaW5lLmMK aW5kZXggNjlmNTg5ZjY3YzkuLmRkYTA2ZWFhMGJjIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X3Jld2luZC90aW1lbGluZS5jCisrKyBiL3NyYy9iaW4vcGdfcmV3aW5kL3RpbWVsaW5lLmMK QEAgLTkxLDcgKzkxLDcgQEAgcmV3aW5kX3BhcnNlVGltZUxpbmVIaXN0b3J5KGNoYXIgKmJ1 ZmZlciwgVGltZUxpbmVJRCB0YXJnZXRUTEksIGludCAqbmVudHJpZXMpCiAJCWxhc3R0bGkg PSB0bGk7CiAKIAkJbmxpbmVzKys7Ci0JCWVudHJpZXMgPSBwZ19yZWFsbG9jKGVudHJpZXMs IG5saW5lcyAqIHNpemVvZihUaW1lTGluZUhpc3RvcnlFbnRyeSkpOworCQllbnRyaWVzID0g cGdfcmVhbGxvY19hcnJheShlbnRyaWVzLCBUaW1lTGluZUhpc3RvcnlFbnRyeSwgbmxpbmVz KTsKIAogCQllbnRyeSA9ICZlbnRyaWVzW25saW5lcyAtIDFdOwogCQllbnRyeS0+dGxpID0g dGxpOwpAQCAtMTE1LDkgKzExNSw5IEBAIHJld2luZF9wYXJzZVRpbWVMaW5lSGlzdG9yeShj aGFyICpidWZmZXIsIFRpbWVMaW5lSUQgdGFyZ2V0VExJLCBpbnQgKm5lbnRyaWVzKQogCSAq LwogCW5saW5lcysrOwogCWlmIChlbnRyaWVzKQotCQllbnRyaWVzID0gcGdfcmVhbGxvYyhl bnRyaWVzLCBubGluZXMgKiBzaXplb2YoVGltZUxpbmVIaXN0b3J5RW50cnkpKTsKKwkJZW50 cmllcyA9IHBnX3JlYWxsb2NfYXJyYXkoZW50cmllcywgVGltZUxpbmVIaXN0b3J5RW50cnks IG5saW5lcyk7CiAJZWxzZQotCQllbnRyaWVzID0gcGdfbWFsbG9jKDEgKiBzaXplb2YoVGlt ZUxpbmVIaXN0b3J5RW50cnkpKTsKKwkJZW50cmllcyA9IHBnX21hbGxvY19hcnJheShUaW1l TGluZUhpc3RvcnlFbnRyeSwgMSk7CiAKIAllbnRyeSA9ICZlbnRyaWVzW25saW5lcyAtIDFd OwogCWVudHJ5LT50bGkgPSB0YXJnZXRUTEk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Vw Z3JhZGUvY2hlY2suYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCmluZGV4IDVhZmE2 NWRiOThlLi5lYjM1YzY4ZDQ1MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2No ZWNrLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMKQEAgLTQ4Miw4ICs0ODIs OCBAQCBjaGVja19mb3JfZGF0YV90eXBlc191c2FnZShDbHVzdGVySW5mbyAqY2x1c3RlcikK IAl9CiAKIAkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIHF1ZXJpZXMgYW5kIGZvciB0YXNrIHN0 YXRlcyAqLwotCXF1ZXJpZXMgPSBwZ19tYWxsb2MwKHNpemVvZihjaGFyICopICogbl9kYXRh X3R5cGVzX3VzYWdlX2NoZWNrcyk7Ci0Jc3RhdGVzID0gcGdfbWFsbG9jMChzaXplb2Yoc3Ry dWN0IGRhdGFfdHlwZV9jaGVja19zdGF0ZSkgKiBuX2RhdGFfdHlwZXNfdXNhZ2VfY2hlY2tz KTsKKwlxdWVyaWVzID0gcGdfbWFsbG9jMF9hcnJheShjaGFyICosIG5fZGF0YV90eXBlc191 c2FnZV9jaGVja3MpOworCXN0YXRlcyA9IHBnX21hbGxvYzBfYXJyYXkoc3RydWN0IGRhdGFf dHlwZV9jaGVja19zdGF0ZSwgbl9kYXRhX3R5cGVzX3VzYWdlX2NoZWNrcyk7CiAKIAlmb3Ig KGludCBpID0gMDsgaSA8IG5fZGF0YV90eXBlc191c2FnZV9jaGVja3M7IGkrKykKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvZnVuY3Rpb24uYyBiL3NyYy9iaW4vcGdf dXBncmFkZS9mdW5jdGlvbi5jCmluZGV4IDg1MGM5MjM4YzExLi5hMzE4NGY5NTY2NSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2Z1bmN0aW9uLmMKKysrIGIvc3JjL2Jpbi9w Z191cGdyYWRlL2Z1bmN0aW9uLmMKQEAgLTgzLDcgKzgzLDcgQEAgZ2V0X2xvYWRhYmxlX2xp YnJhcmllcyh2b2lkKQogCXN0cnVjdCBsb2FkYWJsZV9saWJyYXJpZXNfc3RhdGUgc3RhdGU7 CiAJY2hhcgkgICAqcXVlcnk7CiAKLQlzdGF0ZS5yZXNzID0gKFBHcmVzdWx0ICoqKSBwZ19t YWxsb2Mob2xkX2NsdXN0ZXIuZGJhcnIubmRicyAqIHNpemVvZihQR3Jlc3VsdCAqKSk7CisJ c3RhdGUucmVzcyA9IHBnX21hbGxvY19hcnJheShQR3Jlc3VsdCAqLCBvbGRfY2x1c3Rlci5k YmFyci5uZGJzKTsKIAlzdGF0ZS50b3RhbHR1cHMgPSAwOwogCiAJcXVlcnkgPSBwc3ByaW50 ZigiU0VMRUNUIERJU1RJTkNUIHByb2JpbiAiCkBAIC0xMDUsNyArMTA1LDcgQEAgZ2V0X2xv YWRhYmxlX2xpYnJhcmllcyh2b2lkKQogCSAqIHBsdWdpbnMuCiAJICovCiAJbl9saWJpbmZv cyA9IHN0YXRlLnRvdGFsdHVwcyArIGNvdW50X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdHMo KTsKLQlvc19pbmZvLmxpYnJhcmllcyA9IChMaWJyYXJ5SW5mbyAqKSBwZ19tYWxsb2Moc2l6 ZW9mKExpYnJhcnlJbmZvKSAqIG5fbGliaW5mb3MpOworCW9zX2luZm8ubGlicmFyaWVzID0g cGdfbWFsbG9jX2FycmF5KExpYnJhcnlJbmZvLCBuX2xpYmluZm9zKTsKIAl0b3RhbHR1cHMg PSAwOwogCiAJZm9yIChkYm51bSA9IDA7IGRibnVtIDwgb2xkX2NsdXN0ZXIuZGJhcnIubmRi czsgZGJudW0rKykKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMgYi9z cmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCmluZGV4IGFkNGIxNTMwZTZkLi44YzU2NzliODA5 NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYworKysgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvaW5mby5jCkBAIC01Myw4ICs1Myw3IEBAIGdlbl9kYl9maWxlX21hcHMo RGJJbmZvICpvbGRfZGIsIERiSW5mbyAqbmV3X2RiLAogCWJvb2wJCWFsbF9tYXRjaGVkID0g dHJ1ZTsKIAogCS8qIFRoZXJlIHdpbGwgY2VydGFpbmx5IG5vdCBiZSBtb3JlIG1hcHBpbmdz IHRoYW4gdGhlcmUgYXJlIG9sZCByZWxzICovCi0JbWFwcyA9IChGaWxlTmFtZU1hcCAqKSBw Z19tYWxsb2Moc2l6ZW9mKEZpbGVOYW1lTWFwKSAqCi0JCQkJCQkJCQkgb2xkX2RiLT5yZWxf YXJyLm5yZWxzKTsKKwltYXBzID0gcGdfbWFsbG9jX2FycmF5KEZpbGVOYW1lTWFwLCBvbGRf ZGItPnJlbF9hcnIubnJlbHMpOwogCiAJLyoKIAkgKiBFYWNoIG9mIHRoZSBSZWxJbmZvIGFy cmF5cyBzaG91bGQgYmUgc29ydGVkIGJ5IE9JRC4gIFNjYW4gdGhyb3VnaCB0aGVtCkBAIC0z NjQsNyArMzYzLDcgQEAgZ2V0X3RlbXBsYXRlMF9pbmZvKENsdXN0ZXJJbmZvICpjbHVzdGVy KQogCWlmIChQUW50dXBsZXMoZGJyZXMpICE9IDEpCiAJCXBnX2ZhdGFsKCJ0ZW1wbGF0ZTAg bm90IGZvdW5kIik7CiAKLQlsb2NhbGUgPSBwZ19tYWxsb2Moc2l6ZW9mKERiTG9jYWxlSW5m bykpOworCWxvY2FsZSA9IHBnX21hbGxvY19vYmplY3QoRGJMb2NhbGVJbmZvKTsKIAogCWlf ZGF0ZW5jb2RpbmcgPSBQUWZudW1iZXIoZGJyZXMsICJlbmNvZGluZyIpOwogCWlfZGF0bG9j cHJvdmlkZXIgPSBQUWZudW1iZXIoZGJyZXMsICJkYXRsb2Nwcm92aWRlciIpOwpAQCAtNDMz LDcgKzQzMiw3IEBAIGdldF9kYl9pbmZvcyhDbHVzdGVySW5mbyAqY2x1c3RlcikKIAlpX3Nw Y2xvY2F0aW9uID0gUFFmbnVtYmVyKHJlcywgInNwY2xvY2F0aW9uIik7CiAKIAludHVwcyA9 IFBRbnR1cGxlcyhyZXMpOwotCWRiaW5mb3MgPSAoRGJJbmZvICopIHBnX21hbGxvYzAoc2l6 ZW9mKERiSW5mbykgKiBudHVwcyk7CisJZGJpbmZvcyA9IHBnX21hbGxvYzBfYXJyYXkoRGJJ bmZvLCBudHVwcyk7CiAKIAlmb3IgKHR1cG51bSA9IDA7IHR1cG51bSA8IG50dXBzOyB0dXBu dW0rKykKIAl7CkBAIC01NzksNyArNTc4LDcgQEAgc3RhdGljIHZvaWQKIHByb2Nlc3NfcmVs X2luZm9zKERiSW5mbyAqZGJpbmZvLCBQR3Jlc3VsdCAqcmVzLCB2b2lkICphcmcpCiB7CiAJ aW50CQkJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKLQlSZWxJbmZvICAgICpyZWxpbmZvcyA9 IChSZWxJbmZvICopIHBnX21hbGxvYyhzaXplb2YoUmVsSW5mbykgKiBudHVwcyk7CisJUmVs SW5mbyAgICAqcmVsaW5mb3MgPSBwZ19tYWxsb2NfYXJyYXkoUmVsSW5mbywgbnR1cHMpOwog CWludAkJCWlfcmVsb2lkID0gUFFmbnVtYmVyKHJlcywgInJlbG9pZCIpOwogCWludAkJCWlf aW5kdGFibGUgPSBQUWZudW1iZXIocmVzLCAiaW5kdGFibGUiKTsKIAlpbnQJCQlpX3RvYXN0 aGVhcCA9IFBRZm51bWJlcihyZXMsICJ0b2FzdGhlYXAiKTsKQEAgLTc4NSw3ICs3ODQsNyBA QCBwcm9jZXNzX29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcyhEYkluZm8gKmRiaW5m bywgUEdyZXN1bHQgKnJlcywgdm9pZCAqYXJnKQogCQlpbnQJCQlpX2NhdWdodF91cDsKIAkJ aW50CQkJaV9pbnZhbGlkOwogCi0JCXNsb3RpbmZvcyA9IChMb2dpY2FsU2xvdEluZm8gKikg cGdfbWFsbG9jKHNpemVvZihMb2dpY2FsU2xvdEluZm8pICogbnVtX3Nsb3RzKTsKKwkJc2xv dGluZm9zID0gcGdfbWFsbG9jX2FycmF5KExvZ2ljYWxTbG90SW5mbywgbnVtX3Nsb3RzKTsK IAogCQlpX3Nsb3RuYW1lID0gUFFmbnVtYmVyKHJlcywgInNsb3RfbmFtZSIpOwogCQlpX3Bs dWdpbiA9IFBRZm51bWJlcihyZXMsICJwbHVnaW4iKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfdXBncmFkZS9wYXJhbGxlbC5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BhcmFsbGVsLmMK aW5kZXggNjk0NWY3MWZjZjEuLmYwNDA2ZGU4NGVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X3VwZ3JhZGUvcGFyYWxsZWwuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGFyYWxsZWwu YwpAQCAtODUsMTMgKzg1LDEzIEBAIHBhcmFsbGVsX2V4ZWNfcHJvZyhjb25zdCBjaGFyICps b2dfZmlsZSwgY29uc3QgY2hhciAqb3B0X2xvZ19maWxlLAogCQkvKiBwYXJhbGxlbCAqLwog I2lmZGVmIFdJTjMyCiAJCWlmICh0aHJlYWRfaGFuZGxlcyA9PSBOVUxMKQotCQkJdGhyZWFk X2hhbmRsZXMgPSBwZ19tYWxsb2ModXNlcl9vcHRzLmpvYnMgKiBzaXplb2YoSEFORExFKSk7 CisJCQl0aHJlYWRfaGFuZGxlcyA9IHBnX21hbGxvY19hcnJheShIQU5ETEUsIHVzZXJfb3B0 cy5qb2JzKTsKIAogCQlpZiAoZXhlY190aHJlYWRfYXJncyA9PSBOVUxMKQogCQl7CiAJCQlp bnQJCQlpOwogCi0JCQlleGVjX3RocmVhZF9hcmdzID0gcGdfbWFsbG9jKHVzZXJfb3B0cy5q b2JzICogc2l6ZW9mKGV4ZWNfdGhyZWFkX2FyZyAqKSk7CisJCQlleGVjX3RocmVhZF9hcmdz ID0gcGdfbWFsbG9jX2FycmF5KGV4ZWNfdGhyZWFkX2FyZyAqLCB1c2VyX29wdHMuam9icyk7 CiAKIAkJCS8qCiAJCQkgKiBGb3Igc2FmZXR5IGFuZCBwZXJmb3JtYW5jZSwgd2Uga2VlcCB0 aGUgYXJncyBhbGxvY2F0ZWQgZHVyaW5nCkBAIC05OSw3ICs5OSw3IEBAIHBhcmFsbGVsX2V4 ZWNfcHJvZyhjb25zdCBjaGFyICpsb2dfZmlsZSwgY29uc3QgY2hhciAqb3B0X2xvZ19maWxl LAogCQkJICogdGhyZWFkIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgdGhhdCBhbGxvY2F0ZWQg aXQuCiAJCQkgKi8KIAkJCWZvciAoaSA9IDA7IGkgPCB1c2VyX29wdHMuam9iczsgaSsrKQot CQkJCWV4ZWNfdGhyZWFkX2FyZ3NbaV0gPSBwZ19tYWxsb2MwKHNpemVvZihleGVjX3RocmVh ZF9hcmcpKTsKKwkJCQlleGVjX3RocmVhZF9hcmdzW2ldID0gcGdfbWFsbG9jMF9vYmplY3Qo ZXhlY190aHJlYWRfYXJnKTsKIAkJfQogCiAJCWN1cl90aHJlYWRfYXJncyA9ICh2b2lkICoq KSBleGVjX3RocmVhZF9hcmdzOwpAQCAtMTg4LDEzICsxODgsMTMgQEAgcGFyYWxsZWxfdHJh bnNmZXJfYWxsX25ld19kYnMoRGJJbmZvQXJyICpvbGRfZGJfYXJyLCBEYkluZm9BcnIgKm5l d19kYl9hcnIsCiAJCS8qIHBhcmFsbGVsICovCiAjaWZkZWYgV0lOMzIKIAkJaWYgKHRocmVh ZF9oYW5kbGVzID09IE5VTEwpCi0JCQl0aHJlYWRfaGFuZGxlcyA9IHBnX21hbGxvYyh1c2Vy X29wdHMuam9icyAqIHNpemVvZihIQU5ETEUpKTsKKwkJCXRocmVhZF9oYW5kbGVzID0gcGdf bWFsbG9jX2FycmF5KEhBTkRMRSwgdXNlcl9vcHRzLmpvYnMpOwogCiAJCWlmICh0cmFuc2Zl cl90aHJlYWRfYXJncyA9PSBOVUxMKQogCQl7CiAJCQlpbnQJCQlpOwogCi0JCQl0cmFuc2Zl cl90aHJlYWRfYXJncyA9IHBnX21hbGxvYyh1c2VyX29wdHMuam9icyAqIHNpemVvZih0cmFu c2Zlcl90aHJlYWRfYXJnICopKTsKKwkJCXRyYW5zZmVyX3RocmVhZF9hcmdzID0gcGdfbWFs bG9jX2FycmF5KHRyYW5zZmVyX3RocmVhZF9hcmcgKiwgdXNlcl9vcHRzLmpvYnMpOwogCiAJ CQkvKgogCQkJICogRm9yIHNhZmV0eSBhbmQgcGVyZm9ybWFuY2UsIHdlIGtlZXAgdGhlIGFy Z3MgYWxsb2NhdGVkIGR1cmluZwpAQCAtMjAyLDcgKzIwMiw3IEBAIHBhcmFsbGVsX3RyYW5z ZmVyX2FsbF9uZXdfZGJzKERiSW5mb0FyciAqb2xkX2RiX2FyciwgRGJJbmZvQXJyICpuZXdf ZGJfYXJyLAogCQkJICogdGhyZWFkIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgdGhhdCBhbGxv Y2F0ZWQgaXQuCiAJCQkgKi8KIAkJCWZvciAoaSA9IDA7IGkgPCB1c2VyX29wdHMuam9iczsg aSsrKQotCQkJCXRyYW5zZmVyX3RocmVhZF9hcmdzW2ldID0gcGdfbWFsbG9jMChzaXplb2Yo dHJhbnNmZXJfdGhyZWFkX2FyZykpOworCQkJCXRyYW5zZmVyX3RocmVhZF9hcmdzW2ldID0g cGdfbWFsbG9jMF9vYmplY3QodHJhbnNmZXJfdGhyZWFkX2FyZyk7CiAJCX0KIAogCQljdXJf dGhyZWFkX2FyZ3MgPSAodm9pZCAqKikgdHJhbnNmZXJfdGhyZWFkX2FyZ3M7CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvc2xydV9pby5jIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3NscnVfaW8uYwppbmRleCBhZTNlMjI0ZDdiMS4uMjE4OGEyODc4NTAgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfdXBncmFkZS9zbHJ1X2lvLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3NscnVfaW8uYwpAQCAtMjYsNyArMjYsNyBAQCBzdGF0aWMgdm9pZCBTbHJ1Rmx1c2goU2xy dVNlZ1N0YXRlICpzdGF0ZSk7CiBzdGF0aWMgU2xydVNlZ1N0YXRlICoKIEFsbG9jU2xydVNl Z1N0YXRlKGNvbnN0IGNoYXIgKmRpcikKIHsKLQlTbHJ1U2VnU3RhdGUgKnN0YXRlID0gcGdf bWFsbG9jKHNpemVvZigqc3RhdGUpKTsKKwlTbHJ1U2VnU3RhdGUgKnN0YXRlID0gcGdfbWFs bG9jX29iamVjdChTbHJ1U2VnU3RhdGUpOwogCiAJc3RhdGUtPmRpciA9IHBzdHJkdXAoZGly KTsKIAlzdGF0ZS0+Zm4gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRl L3RhYmxlc3BhY2UuYyBiL3NyYy9iaW4vcGdfdXBncmFkZS90YWJsZXNwYWNlLmMKaW5kZXgg MGVjNTY0NGE2MzkuLjk1ZWE3ODE5NDU3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvdGFibGVzcGFjZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS90YWJsZXNwYWNlLmMK QEAgLTY5LDkgKzY5LDkgQEAgZ2V0X3RhYmxlc3BhY2VfcGF0aHModm9pZCkKIAlpZiAoUFFu dHVwbGVzKHJlcykgIT0gMCkKIAl7CiAJCW9sZF9jbHVzdGVyLnRhYmxlc3BhY2VzID0KLQkJ CShjaGFyICoqKSBwZ19tYWxsb2Mob2xkX2NsdXN0ZXIubnVtX3RhYmxlc3BhY2VzICogc2l6 ZW9mKGNoYXIgKikpOworCQkJcGdfbWFsbG9jX2FycmF5KGNoYXIgKiwgb2xkX2NsdXN0ZXIu bnVtX3RhYmxlc3BhY2VzKTsKIAkJbmV3X2NsdXN0ZXIudGFibGVzcGFjZXMgPQotCQkJKGNo YXIgKiopIHBnX21hbGxvYyhuZXdfY2x1c3Rlci5udW1fdGFibGVzcGFjZXMgKiBzaXplb2Yo Y2hhciAqKSk7CisJCQlwZ19tYWxsb2NfYXJyYXkoY2hhciAqLCBuZXdfY2x1c3Rlci5udW1f dGFibGVzcGFjZXMpOwogCX0KIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191 cGdyYWRlL3Rhc2suYyBiL3NyYy9iaW4vcGdfdXBncmFkZS90YXNrLmMKaW5kZXggM2Q5NTg1 Mjc1MjguLmI2ZWIyOWUxZjNhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvdGFz ay5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS90YXNrLmMKQEAgLTExNiw3ICsxMTYsNyBA QCB0eXBlZGVmIHN0cnVjdCBVcGdyYWRlVGFza1Nsb3QKIFVwZ3JhZGVUYXNrICoKIHVwZ3Jh ZGVfdGFza19jcmVhdGUodm9pZCkKIHsKLQlVcGdyYWRlVGFzayAqdGFzayA9IHBnX21hbGxv YzAoc2l6ZW9mKFVwZ3JhZGVUYXNrKSk7CisJVXBncmFkZVRhc2sgKnRhc2sgPSBwZ19tYWxs b2MwX29iamVjdChVcGdyYWRlVGFzayk7CiAKIAl0YXNrLT5xdWVyaWVzID0gY3JlYXRlUFFF eHBCdWZmZXIoKTsKIApAQCAtMTU0LDggKzE1NCw4IEBAIHVwZ3JhZGVfdGFza19hZGRfc3Rl cChVcGdyYWRlVGFzayAqdGFzaywgY29uc3QgY2hhciAqcXVlcnksCiB7CiAJVXBncmFkZVRh c2tTdGVwICpuZXdfc3RlcDsKIAotCXRhc2stPnN0ZXBzID0gcGdfcmVhbGxvYyh0YXNrLT5z dGVwcywKLQkJCQkJCQkgKyt0YXNrLT5udW1fc3RlcHMgKiBzaXplb2YoVXBncmFkZVRhc2tT dGVwKSk7CisJdGFzay0+c3RlcHMgPSBwZ19yZWFsbG9jX2FycmF5KHRhc2stPnN0ZXBzLCBV cGdyYWRlVGFza1N0ZXAsCisJCQkJCQkJCSAgICsrdGFzay0+bnVtX3N0ZXBzKTsKIAogCW5l d19zdGVwID0gJnRhc2stPnN0ZXBzW3Rhc2stPm51bV9zdGVwcyAtIDFdOwogCW5ld19zdGVw LT5wcm9jZXNzX2NiID0gcHJvY2Vzc19jYjsKQEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lkCiB1 cGdyYWRlX3Rhc2tfcnVuKGNvbnN0IFVwZ3JhZGVUYXNrICp0YXNrLCBjb25zdCBDbHVzdGVy SW5mbyAqY2x1c3RlcikKIHsKIAlpbnQJCQlqb2JzID0gTWF4KDEsIHVzZXJfb3B0cy5qb2Jz KTsKLQlVcGdyYWRlVGFza1Nsb3QgKnNsb3RzID0gcGdfbWFsbG9jMChzaXplb2YoVXBncmFk ZVRhc2tTbG90KSAqIGpvYnMpOworCVVwZ3JhZGVUYXNrU2xvdCAqc2xvdHMgPSBwZ19tYWxs b2MwX2FycmF5KFVwZ3JhZGVUYXNrU2xvdCwgam9icyk7CiAKIAlkYnNfY29tcGxldGUgPSAw OwogCWRic19wcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5 YmFja3VwL2FzdHJlYW1lcl92ZXJpZnkuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL2Fz dHJlYW1lcl92ZXJpZnkuYwppbmRleCAwZWRjODEyM2I0My4uMjZjOTgxODY1MzAgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL2FzdHJlYW1lcl92ZXJpZnkuYworKysg Yi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9hc3RyZWFtZXJfdmVyaWZ5LmMKQEAgLTc5LDcg Kzc5LDcgQEAgYXN0cmVhbWVyX3ZlcmlmeV9jb250ZW50X25ldyhhc3RyZWFtZXIgKm5leHQs IHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsCiAJc3RyZWFtZXItPnRibHNwY19vaWQgPSB0 YmxzcGNfb2lkOwogCiAJaWYgKCFjb250ZXh0LT5za2lwX2NoZWNrc3VtcykKLQkJc3RyZWFt ZXItPmNoZWNrc3VtX2N0eCA9IHBnX21hbGxvYyhzaXplb2YocGdfY2hlY2tzdW1fY29udGV4 dCkpOworCQlzdHJlYW1lci0+Y2hlY2tzdW1fY3R4ID0gcGdfbWFsbG9jX29iamVjdChwZ19j aGVja3N1bV9jb250ZXh0KTsKIAogCXJldHVybiAmc3RyZWFtZXItPmJhc2U7CiB9CmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyBiL3Ny Yy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IGY5ZjJkNDU3 ZjJmLi5jYmM5NDQ3Mzg0ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVy aWZ5YmFja3VwLmMKQEAgLTQxOCw3ICs0MTgsNyBAQCBwYXJzZV9tYW5pZmVzdF9maWxlKGNo YXIgKm1hbmlmZXN0X3BhdGgpCiAJLyogQ3JlYXRlIHRoZSBoYXNoIHRhYmxlLiAqLwogCWh0 ID0gbWFuaWZlc3RfZmlsZXNfY3JlYXRlKGluaXRpYWxfc2l6ZSwgTlVMTCk7CiAKLQlyZXN1 bHQgPSBwZ19tYWxsb2MwKHNpemVvZihtYW5pZmVzdF9kYXRhKSk7CisJcmVzdWx0ID0gcGdf bWFsbG9jMF9vYmplY3QobWFuaWZlc3RfZGF0YSk7CiAJcmVzdWx0LT5maWxlcyA9IGh0Owog CWNvbnRleHQucHJpdmF0ZV9kYXRhID0gcmVzdWx0OwogCWNvbnRleHQudmVyc2lvbl9jYiA9 IHZlcmlmeWJhY2t1cF92ZXJzaW9uX2NiOwpAQCAtOTcwLDcgKzk3MCw3IEBAIHByZWNoZWNr X3Rhcl9iYWNrdXBfZmlsZSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpyZWxw YXRoLAogCSAqIEFwcGVuZCB0aGUgaW5mb3JtYXRpb24gdG8gdGhlIGxpc3QgZm9yIGNvbXBs ZXRlIHZlcmlmaWNhdGlvbiBhdCBhIGxhdGVyCiAJICogc3RhZ2UuCiAJICovCi0JdGFyID0g cGdfbWFsbG9jKHNpemVvZih0YXJfZmlsZSkpOworCXRhciA9IHBnX21hbGxvY19vYmplY3Qo dGFyX2ZpbGUpOwogCXRhci0+cmVscGF0aCA9IHBzdHJkdXAocmVscGF0aCk7CiAJdGFyLT50 YmxzcGNfb2lkID0gdGJsc3BjX29pZDsKIAl0YXItPmNvbXByZXNzX2FsZ29yaXRobSA9IGNv bXByZXNzX2FsZ29yaXRobTsKQEAgLTEwNjUsNyArMTA2NSw3IEBAIHZlcmlmeV9iYWNrdXBf Y2hlY2tzdW1zKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQpCiAKIAlwcm9ncmVzc19yZXBv cnQoZmFsc2UpOwogCi0JYnVmZmVyID0gcGdfbWFsbG9jKFJFQURfQ0hVTktfU0laRSAqIHNp emVvZih1aW50OCkpOworCWJ1ZmZlciA9IHBnX21hbGxvY19hcnJheSh1aW50OCwgUkVBRF9D SFVOS19TSVpFKTsKIAogCW1hbmlmZXN0X2ZpbGVzX3N0YXJ0X2l0ZXJhdGUobWFuaWZlc3Qt PmZpbGVzLCAmaXQpOwogCXdoaWxlICgobSA9IG1hbmlmZXN0X2ZpbGVzX2l0ZXJhdGUobWFu aWZlc3QtPmZpbGVzLCAmaXQpKSAhPSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ2Jl bmNoL2V4cHJwYXJzZS55IGIvc3JjL2Jpbi9wZ2JlbmNoL2V4cHJwYXJzZS55CmluZGV4IDhk ZDZjODgxMWYyLi42ZGQ4MDk5NTBmZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ2JlbmNoL2V4 cHJwYXJzZS55CisrKyBiL3NyYy9iaW4vcGdiZW5jaC9leHBycGFyc2UueQpAQCAtMTY3LDcg KzE2Nyw3IEBAIGZ1bmN0aW9uOiBGVU5DVElPTgkJCXsgJCQgPSBmaW5kX2Z1bmMoeXlzY2Fu bmVyLCAkMSk7IHBnX2ZyZWUoJDEpOyB9CiBzdGF0aWMgUGdCZW5jaEV4cHIgKgogbWFrZV9u dWxsX2NvbnN0YW50KHZvaWQpCiB7Ci0JUGdCZW5jaEV4cHIgKmV4cHIgPSBwZ19tYWxsb2Mo c2l6ZW9mKFBnQmVuY2hFeHByKSk7CisJUGdCZW5jaEV4cHIgKmV4cHIgPSBwZ19tYWxsb2Nf b2JqZWN0KFBnQmVuY2hFeHByKTsKIAogCWV4cHItPmV0eXBlID0gRU5PREVfQ09OU1RBTlQ7 CiAJZXhwci0+dS5jb25zdGFudC50eXBlID0gUEdCVF9OVUxMOwpAQCAtMTc4LDcgKzE3OCw3 IEBAIG1ha2VfbnVsbF9jb25zdGFudCh2b2lkKQogc3RhdGljIFBnQmVuY2hFeHByICoKIG1h a2VfaW50ZWdlcl9jb25zdGFudChpbnQ2NCBpdmFsKQogewotCVBnQmVuY2hFeHByICpleHBy ID0gcGdfbWFsbG9jKHNpemVvZihQZ0JlbmNoRXhwcikpOworCVBnQmVuY2hFeHByICpleHBy ID0gcGdfbWFsbG9jX29iamVjdChQZ0JlbmNoRXhwcik7CiAKIAlleHByLT5ldHlwZSA9IEVO T0RFX0NPTlNUQU5UOwogCWV4cHItPnUuY29uc3RhbnQudHlwZSA9IFBHQlRfSU5UOwpAQCAt MTg5LDcgKzE4OSw3IEBAIG1ha2VfaW50ZWdlcl9jb25zdGFudChpbnQ2NCBpdmFsKQogc3Rh dGljIFBnQmVuY2hFeHByICoKIG1ha2VfZG91YmxlX2NvbnN0YW50KGRvdWJsZSBkdmFsKQog ewotCVBnQmVuY2hFeHByICpleHByID0gcGdfbWFsbG9jKHNpemVvZihQZ0JlbmNoRXhwcikp OworCVBnQmVuY2hFeHByICpleHByID0gcGdfbWFsbG9jX29iamVjdChQZ0JlbmNoRXhwcik7 CiAKIAlleHByLT5ldHlwZSA9IEVOT0RFX0NPTlNUQU5UOwogCWV4cHItPnUuY29uc3RhbnQu dHlwZSA9IFBHQlRfRE9VQkxFOwpAQCAtMjAwLDcgKzIwMCw3IEBAIG1ha2VfZG91YmxlX2Nv bnN0YW50KGRvdWJsZSBkdmFsKQogc3RhdGljIFBnQmVuY2hFeHByICoKIG1ha2VfYm9vbGVh bl9jb25zdGFudChib29sIGJ2YWwpCiB7Ci0JUGdCZW5jaEV4cHIgKmV4cHIgPSBwZ19tYWxs b2Moc2l6ZW9mKFBnQmVuY2hFeHByKSk7CisJUGdCZW5jaEV4cHIgKmV4cHIgPSBwZ19tYWxs b2Nfb2JqZWN0KFBnQmVuY2hFeHByKTsKIAogCWV4cHItPmV0eXBlID0gRU5PREVfQ09OU1RB TlQ7CiAJZXhwci0+dS5jb25zdGFudC50eXBlID0gUEdCVF9CT09MRUFOOwpAQCAtMjExLDcg KzIxMSw3IEBAIG1ha2VfYm9vbGVhbl9jb25zdGFudChib29sIGJ2YWwpCiBzdGF0aWMgUGdC ZW5jaEV4cHIgKgogbWFrZV92YXJpYWJsZShjaGFyICp2YXJuYW1lKQogewotCVBnQmVuY2hF eHByICpleHByID0gcGdfbWFsbG9jKHNpemVvZihQZ0JlbmNoRXhwcikpOworCVBnQmVuY2hF eHByICpleHByID0gcGdfbWFsbG9jX29iamVjdChQZ0JlbmNoRXhwcik7CiAKIAlleHByLT5l dHlwZSA9IEVOT0RFX1ZBUklBQkxFOwogCWV4cHItPnUudmFyaWFibGUudmFybmFtZSA9IHZh cm5hbWU7CkBAIC00MTUsMTIgKzQxNSwxMiBAQCBtYWtlX2VsaXN0KFBnQmVuY2hFeHByICpl eHByLCBQZ0JlbmNoRXhwckxpc3QgKmxpc3QpCiAKIAlpZiAobGlzdCA9PSBOVUxMKQogCXsK LQkJbGlzdCA9IHBnX21hbGxvYyhzaXplb2YoUGdCZW5jaEV4cHJMaXN0KSk7CisJCWxpc3Qg PSBwZ19tYWxsb2Nfb2JqZWN0KFBnQmVuY2hFeHByTGlzdCk7CiAJCWxpc3QtPmhlYWQgPSBO VUxMOwogCQlsaXN0LT50YWlsID0gTlVMTDsKIAl9CiAKLQljb25zID0gcGdfbWFsbG9jKHNp emVvZihQZ0JlbmNoRXhwckxpbmspKTsKKwljb25zID0gcGdfbWFsbG9jX29iamVjdChQZ0Jl bmNoRXhwckxpbmspOwogCWNvbnMtPmV4cHIgPSBleHByOwogCWNvbnMtPm5leHQgPSBOVUxM OwogCkBAIC00NTMsNyArNDUzLDcgQEAgbWFrZV9mdW5jKHl5c2Nhbl90IHl5c2Nhbm5lciwg aW50IGZudW1iZXIsIFBnQmVuY2hFeHByTGlzdCAqYXJncykKIHsKIAlpbnQJCQlsZW4gPSBl bGlzdF9sZW5ndGgoYXJncyk7CiAKLQlQZ0JlbmNoRXhwciAqZXhwciA9IHBnX21hbGxvYyhz aXplb2YoUGdCZW5jaEV4cHIpKTsKKwlQZ0JlbmNoRXhwciAqZXhwciA9IHBnX21hbGxvY19v YmplY3QoUGdCZW5jaEV4cHIpOwogCiAJQXNzZXJ0KGZudW1iZXIgPj0gMCk7CiAKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMgYi9zcmMvYmluL3BnYmVuY2gvcGdi ZW5jaC5jCmluZGV4IGNiNGU5ODYwOTJlLi4xZGFlOTE4Y2MwOSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ2JlbmNoL3BnYmVuY2guYworKysgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5j CkBAIC0xNzc0LDcgKzE3NzQsNyBAQCBlbmxhcmdlVmFyaWFibGVzKFZhcmlhYmxlcyAqdmFy aWFibGVzLCBpbnQgbmVlZGVkKQogCXsKIAkJdmFyaWFibGVzLT5tYXhfdmFycyA9IG5lZWRl ZCArIFZBUklBQkxFU19BTExPQ19NQVJHSU47CiAJCXZhcmlhYmxlcy0+dmFycyA9IChWYXJp YWJsZSAqKQotCQkJcGdfcmVhbGxvYyh2YXJpYWJsZXMtPnZhcnMsIHZhcmlhYmxlcy0+bWF4 X3ZhcnMgKiBzaXplb2YoVmFyaWFibGUpKTsKKwkJCXBnX3JlYWxsb2NfYXJyYXkodmFyaWFi bGVzLT52YXJzLCBWYXJpYWJsZSwgdmFyaWFibGVzLT5tYXhfdmFycyk7CiAJfQogfQogCkBA IC0zMDY3LDcgKzMwNjcsNyBAQCBhbGxvY0NTdGF0ZVByZXBhcmVkKENTdGF0ZSAqc3QpCiB7 CiAJQXNzZXJ0KHN0LT5wcmVwYXJlZCA9PSBOVUxMKTsKIAotCXN0LT5wcmVwYXJlZCA9IHBn X21hbGxvYyhzaXplb2YoYm9vbCAqKSAqIG51bV9zY3JpcHRzKTsKKwlzdC0+cHJlcGFyZWQg PSBwZ19tYWxsb2NfYXJyYXkoYm9vbCAqLCBudW1fc2NyaXB0cyk7CiAJZm9yIChpbnQgaSA9 IDA7IGkgPCBudW1fc2NyaXB0czsgaSsrKQogCXsKIAkJUGFyc2VkU2NyaXB0ICpzY3JpcHQg PSAmc3FsX3NjcmlwdFtpXTsKQEAgLTMwNzUsNyArMzA3NSw3IEBAIGFsbG9jQ1N0YXRlUHJl cGFyZWQoQ1N0YXRlICpzdCkKIAogCQlmb3IgKG51bWNtZHMgPSAwOyBzY3JpcHQtPmNvbW1h bmRzW251bWNtZHNdICE9IE5VTEw7IG51bWNtZHMrKykKIAkJCTsKLQkJc3QtPnByZXBhcmVk W2ldID0gcGdfbWFsbG9jMChzaXplb2YoYm9vbCkgKiBudW1jbWRzKTsKKwkJc3QtPnByZXBh cmVkW2ldID0gcGdfbWFsbG9jMF9hcnJheShib29sLCBudW1jbWRzKTsKIAl9CiB9CiAKQEAg LTU2NTksNyArNTY1OSw3IEBAIGNyZWF0ZV9zcWxfY29tbWFuZChQUUV4cEJ1ZmZlciBidWYp CiAJCXJldHVybiBOVUxMOwogCiAJLyogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgQ29tbWFu ZCBzdHJ1Y3R1cmUgKi8KLQlteV9jb21tYW5kID0gKENvbW1hbmQgKikgcGdfbWFsbG9jKHNp emVvZihDb21tYW5kKSk7CisJbXlfY29tbWFuZCA9IHBnX21hbGxvYzBfb2JqZWN0KENvbW1h bmQpOwogCWluaXRQUUV4cEJ1ZmZlcigmbXlfY29tbWFuZC0+bGluZXMpOwogCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZteV9jb21tYW5kLT5saW5lcywgcCk7CiAJbXlfY29tbWFuZC0+Zmly c3RfbGluZSA9IE5VTEw7CS8qIHRoaXMgaXMgc2V0IGxhdGVyICovCkBAIC01NzU1LDcgKzU3 NTUsNyBAQCBwcm9jZXNzX2JhY2tzbGFzaF9jb21tYW5kKFBzcWxTY2FuU3RhdGUgc3N0YXRl LCBjb25zdCBjaGFyICpzb3VyY2UsCiAJfQogCiAJLyogQWxsb2NhdGUgYW5kIGluaXRpYWxp emUgQ29tbWFuZCBzdHJ1Y3R1cmUgKi8KLQlteV9jb21tYW5kID0gKENvbW1hbmQgKikgcGdf bWFsbG9jMChzaXplb2YoQ29tbWFuZCkpOworCW15X2NvbW1hbmQgPSBwZ19tYWxsb2MwX29i amVjdChDb21tYW5kKTsKIAlteV9jb21tYW5kLT50eXBlID0gTUVUQV9DT01NQU5EOwogCW15 X2NvbW1hbmQtPmFyZ2MgPSAwOwogCWluaXRTaW1wbGVTdGF0cygmbXlfY29tbWFuZC0+c3Rh dHMpOwpAQCAtNjAxMSw3ICs2MDExLDcgQEAgUGFyc2VTY3JpcHQoY29uc3QgY2hhciAqc2Ny aXB0LCBjb25zdCBjaGFyICpkZXNjLCBpbnQgd2VpZ2h0KQogCS8qIEluaXRpYWxpemUgYWxs IGZpZWxkcyBvZiBwcyAqLwogCXBzLmRlc2MgPSBkZXNjOwogCXBzLndlaWdodCA9IHdlaWdo dDsKLQlwcy5jb21tYW5kcyA9IChDb21tYW5kICoqKSBwZ19tYWxsb2Moc2l6ZW9mKENvbW1h bmQgKikgKiBhbGxvY19udW0pOworCXBzLmNvbW1hbmRzID0gcGdfbWFsbG9jX2FycmF5KENv bW1hbmQgKiwgYWxsb2NfbnVtKTsKIAlpbml0U3RhdHMoJnBzLnN0YXRzLCAwKTsKIAogCS8q IFByZXBhcmUgdG8gcGFyc2Ugc2NyaXB0ICovCkBAIC02MTE0LDcgKzYxMTQsNyBAQCBQYXJz ZVNjcmlwdChjb25zdCBjaGFyICpzY3JpcHQsIGNvbnN0IGNoYXIgKmRlc2MsIGludCB3ZWln aHQpCiAJCXsKIAkJCWFsbG9jX251bSArPSBDT01NQU5EU19BTExPQ19OVU07CiAJCQlwcy5j b21tYW5kcyA9IChDb21tYW5kICoqKQotCQkJCXBnX3JlYWxsb2MocHMuY29tbWFuZHMsIHNp emVvZihDb21tYW5kICopICogYWxsb2NfbnVtKTsKKwkJCQlwZ19yZWFsbG9jX2FycmF5KHBz LmNvbW1hbmRzLCBDb21tYW5kICosIGFsbG9jX251bSk7CiAJCX0KIAogCQkvKiBEb25lIGlm IHdlIHJlYWNoZWQgRU9GICovCkBAIC02ODQ0LDcgKzY4NDQsNyBAQCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKIAkJfQogCX0KIAotCXN0YXRlID0gKENTdGF0ZSAqKSBwZ19tYWxs b2MwKHNpemVvZihDU3RhdGUpKTsKKwlzdGF0ZSA9IHBnX21hbGxvYzBfb2JqZWN0KENTdGF0 ZSk7CiAKIAkvKiBzZXQgcmFuZG9tIHNlZWQgZWFybHksIGJlY2F1c2UgaXQgbWF5IGJlIHVz ZWQgd2hpbGUgcGFyc2luZyBzY3JpcHRzLiAqLwogCWlmICghc2V0X3JhbmRvbV9zZWVkKGdl dGVudigiUEdCRU5DSF9SQU5ET01fU0VFRCIpKSkKQEAgLTcyOTgsNyArNzI5OCw3IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJaWYgKG5jbGllbnRzID4gMSkKIAl7Ci0J CXN0YXRlID0gKENTdGF0ZSAqKSBwZ19yZWFsbG9jKHN0YXRlLCBzaXplb2YoQ1N0YXRlKSAq IG5jbGllbnRzKTsKKwkJc3RhdGUgPSBwZ19yZWFsbG9jX2FycmF5KHN0YXRlLCBDU3RhdGUs IG5jbGllbnRzKTsKIAkJbWVtc2V0KHN0YXRlICsgMSwgMCwgc2l6ZW9mKENTdGF0ZSkgKiAo bmNsaWVudHMgLSAxKSk7CiAKIAkJLyogY29weSBhbnkgLUQgc3dpdGNoIHZhbHVlcyB0byBh bGwgY2xpZW50cyAqLwpAQCAtNzQxMiw3ICs3NDEyLDcgQEAgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAJUFFmaW5pc2goY29uKTsKIAogCS8qIHNldCB1cCB0aHJlYWQgZGF0YSBz dHJ1Y3R1cmVzICovCi0JdGhyZWFkcyA9IChUU3RhdGUgKikgcGdfbWFsbG9jKHNpemVvZihU U3RhdGUpICogbnRocmVhZHMpOworCXRocmVhZHMgPSBwZ19tYWxsb2NfYXJyYXkoVFN0YXRl LCBudGhyZWFkcyk7CiAJbmNsaWVudHNfZGVhbHQgPSAwOwogCiAJZm9yIChpID0gMDsgaSA8 IG50aHJlYWRzOyBpKyspCkBAIC03OTkzLDcgKzc5OTMsNyBAQCBzb2NrZXRfaGFzX2lucHV0 KHNvY2tldF9zZXQgKnNhLCBpbnQgZmQsIGludCBpZHgpCiBzdGF0aWMgc29ja2V0X3NldCAq CiBhbGxvY19zb2NrZXRfc2V0KGludCBjb3VudCkKIHsKLQlyZXR1cm4gKHNvY2tldF9zZXQg KikgcGdfbWFsbG9jMChzaXplb2Yoc29ja2V0X3NldCkpOworCXJldHVybiBwZ19tYWxsb2Mw X29iamVjdChzb2NrZXRfc2V0KTsKIH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDIx M2Q0ODUwMGRlLi42MzdmMjcwM2RiMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1h bmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC00MTY4LDggKzQxNjgsOCBA QCBkb19jb25uZWN0KGVudW0gdHJpdmFsdWUgcmV1c2VfcHJldmlvdXNfc3BlY2lmaWNhdGlv biwKIAkvKiBMb29wIHRpbGwgd2UgaGF2ZSBhIGNvbm5lY3Rpb24gb3IgZmFpbCwgd2hpY2gg d2UgbWlnaHQndmUgYWxyZWFkeSAqLwogCXdoaWxlIChzdWNjZXNzKQogCXsKLQkJY29uc3Qg Y2hhciAqKmtleXdvcmRzID0gcGdfbWFsbG9jKChuY29ubm9wdHMgKyAxKSAqIHNpemVvZigq a2V5d29yZHMpKTsKLQkJY29uc3QgY2hhciAqKnZhbHVlcyA9IHBnX21hbGxvYygobmNvbm5v cHRzICsgMSkgKiBzaXplb2YoKnZhbHVlcykpOworCQljb25zdCBjaGFyICoqa2V5d29yZHMg PSBwZ19tYWxsb2NfYXJyYXkoY29uc3QgY2hhciAqLCBuY29ubm9wdHMgKyAxKTsKKwkJY29u c3QgY2hhciAqKnZhbHVlcyA9IHBnX21hbGxvY19hcnJheShjb25zdCBjaGFyICosIG5jb25u b3B0cyArIDEpOwogCQlpbnQJCQlwYXJhbW51bSA9IDA7CiAJCVBRY29ubmluZm9PcHRpb24g KmNpOwogCkBAIC01NjY1LDcgKzU2NjUsNyBAQCBzYXZlUHNldEluZm8oY29uc3QgcHJpbnRR dWVyeU9wdCAqcG9wdCkKIHsKIAlwcmludFF1ZXJ5T3B0ICpzYXZlOwogCi0Jc2F2ZSA9IChw cmludFF1ZXJ5T3B0ICopIHBnX21hbGxvYyhzaXplb2YocHJpbnRRdWVyeU9wdCkpOworCXNh dmUgPSBwZ19tYWxsb2Nfb2JqZWN0KHByaW50UXVlcnlPcHQpOwogCiAJLyogRmxhdC1jb3B5 IGFsbCB0aGUgc2NhbGFyIGZpZWxkcywgdGhlbiBkdXBsaWNhdGUgc3ViLXN0cnVjdHVyZXMu ICovCiAJbWVtY3B5KHNhdmUsIHBvcHQsIHNpemVvZihwcmludFF1ZXJ5T3B0KSk7CmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvY29weS5jIGIvc3JjL2Jpbi9wc3FsL2NvcHkuYwppbmRl eCA4OTJjMjg4OTRlZC4uNmE4YTk3OTJlN2QgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9j b3B5LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvcHkuYwpAQCAtOTksNyArOTksNyBAQCBwYXJz ZV9zbGFzaF9jb3B5KGNvbnN0IGNoYXIgKmFyZ3MpCiAJCXJldHVybiBOVUxMOwogCX0KIAot CXJlc3VsdCA9IHBnX21hbGxvYzAoc2l6ZW9mKHN0cnVjdCBjb3B5X29wdGlvbnMpKTsKKwly ZXN1bHQgPSBwZ19tYWxsb2MwX29iamVjdChzdHJ1Y3QgY29weV9vcHRpb25zKTsKIAogCXJl c3VsdC0+YmVmb3JlX3RvZnJvbSA9IHBnX3N0cmR1cCgiIik7CS8qIGluaXRpYWxpemUgZm9y IGFwcGVuZGluZyAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY3Jvc3N0YWJ2aWV3 LmMgYi9zcmMvYmluL3BzcWwvY3Jvc3N0YWJ2aWV3LmMKaW5kZXggM2IyNjhlNDE2NDEuLjEx MWU4ODIzYmRiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY3Jvc3N0YWJ2aWV3LmMKKysr IGIvc3JjL2Jpbi9wc3FsL2Nyb3NzdGFidmlldy5jCkBAIC0yNDUsMTEgKzI0NSw5IEBAIFBy aW50UmVzdWx0SW5Dcm9zc3RhYihjb25zdCBQR3Jlc3VsdCAqcmVzKQogCW51bV9jb2x1bW5z ID0gcGl2X2NvbHVtbnMuY291bnQ7CiAJbnVtX3Jvd3MgPSBwaXZfcm93cy5jb3VudDsKIAot CWFycmF5X2NvbHVtbnMgPSAocGl2b3RfZmllbGQgKikKLQkJcGdfbWFsbG9jKHNpemVvZihw aXZvdF9maWVsZCkgKiBudW1fY29sdW1ucyk7CisJYXJyYXlfY29sdW1ucyA9IHBnX21hbGxv Y19hcnJheShwaXZvdF9maWVsZCwgbnVtX2NvbHVtbnMpOwogCi0JYXJyYXlfcm93cyA9IChw aXZvdF9maWVsZCAqKQotCQlwZ19tYWxsb2Moc2l6ZW9mKHBpdm90X2ZpZWxkKSAqIG51bV9y b3dzKTsKKwlhcnJheV9yb3dzID0gcGdfbWFsbG9jX2FycmF5KHBpdm90X2ZpZWxkLCBudW1f cm93cyk7CiAKIAlhdmxDb2xsZWN0RmllbGRzKCZwaXZfY29sdW1ucywgcGl2X2NvbHVtbnMu cm9vdCwgYXJyYXlfY29sdW1ucywgMCk7CiAJYXZsQ29sbGVjdEZpZWxkcygmcGl2X3Jvd3Ms IHBpdl9yb3dzLnJvb3QsIGFycmF5X3Jvd3MsIDApOwpAQCAtMzEyLDcgKzMxMCw3IEBAIHBy aW50Q3Jvc3N0YWIoY29uc3QgUEdyZXN1bHQgKnJlc3VsdCwKIAkgKiBtYXAgYXNzb2NpYXRp bmcgZWFjaCBwaXZfY29sdW1uc1tdLnJhbmsgdG8gaXRzIGluZGV4IGluIHBpdl9jb2x1bW5z LgogCSAqIFRoaXMgYXZvaWRzIGFuIE8oTl4yKSBsb29wIGxhdGVyLgogCSAqLwotCWhvcml6 X21hcCA9IChpbnQgKikgcGdfbWFsbG9jKHNpemVvZihpbnQpICogbnVtX2NvbHVtbnMpOwor CWhvcml6X21hcCA9IHBnX21hbGxvY19hcnJheShpbnQsIG51bV9jb2x1bW5zKTsKIAlmb3Ig KGkgPSAwOyBpIDwgbnVtX2NvbHVtbnM7IGkrKykKIAkJaG9yaXpfbWFwW3Bpdl9jb2x1bW5z W2ldLnJhbmtdID0gaTsKIApAQCAtNDM3LDcgKzQzNSw3IEBAIGVycm9yOgogc3RhdGljIHZv aWQKIGF2bEluaXQoYXZsX3RyZWUgKnRyZWUpCiB7Ci0JdHJlZS0+ZW5kID0gKGF2bF9ub2Rl ICopIHBnX21hbGxvYzAoc2l6ZW9mKGF2bF9ub2RlKSk7CisJdHJlZS0+ZW5kID0gcGdfbWFs bG9jMF9vYmplY3QoYXZsX25vZGUpOwogCXRyZWUtPmVuZC0+Y2hpbGRyZW5bMF0gPSB0cmVl LT5lbmQtPmNoaWxkcmVuWzFdID0gdHJlZS0+ZW5kOwogCXRyZWUtPmNvdW50ID0gMDsKIAl0 cmVlLT5yb290ID0gdHJlZS0+ZW5kOwpAQCAtNTMyLDggKzUzMCw3IEBAIGF2bEluc2VydE5v ZGUoYXZsX3RyZWUgKnRyZWUsIGF2bF9ub2RlICoqbm9kZSwgcGl2b3RfZmllbGQgZmllbGQp CiAKIAlpZiAoY3VycmVudCA9PSB0cmVlLT5lbmQpCiAJewotCQlhdmxfbm9kZSAgICpuZXdf bm9kZSA9IChhdmxfbm9kZSAqKQotCQkJcGdfbWFsbG9jKHNpemVvZihhdmxfbm9kZSkpOwor CQlhdmxfbm9kZSAgICpuZXdfbm9kZSA9IHBnX21hbGxvY19vYmplY3QoYXZsX25vZGUpOwog CiAJCW5ld19ub2RlLT5oZWlnaHQgPSAxOwogCQluZXdfbm9kZS0+ZmllbGQgPSBmaWVsZDsK QEAgLTU5MSw3ICs1ODgsNyBAQCByYW5rU29ydChpbnQgbnVtX2NvbHVtbnMsIHBpdm90X2Zp ZWxkICpwaXZfY29sdW1ucykKIAkJCQkJCQkJICogZXZlcnkgaGVhZGVyIGVudHJ5XSAqLwog CWludAkJCWk7CiAKLQlobWFwID0gKGludCAqKSBwZ19tYWxsb2Moc2l6ZW9mKGludCkgKiBu dW1fY29sdW1ucyAqIDIpOworCWhtYXAgPSBwZ19tYWxsb2NfYXJyYXkoaW50LCBudW1fY29s dW1ucyAqIDIpOwogCWZvciAoaSA9IDA7IGkgPCBudW1fY29sdW1uczsgaSsrKQogCXsKIAkJ Y2hhcgkgICAqdmFsID0gcGl2X2NvbHVtbnNbaV0uc29ydF92YWx1ZTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5k ZXggNTcxYTZhMDAzZDUuLjQzNTI5OTFlNTQxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMzc5Nyw3ICsz Nzk3LDcgQEAgZGVzY3JpYmVSb2xlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJv c2UsIGJvb2wgc2hvd1N5c3RlbSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJbnJvd3MgPSBQUW50 dXBsZXMocmVzKTsKLQlhdHRyID0gcGdfbWFsbG9jMCgobnJvd3MgKyAxKSAqIHNpemVvZigq YXR0cikpOworCWF0dHIgPSBwZ19tYWxsb2MwX2FycmF5KGNoYXIgKiwgbnJvd3MgKyAxKTsK IAogCXByaW50VGFibGVJbml0KCZjb250LCAmbXlvcHQsIF8oIkxpc3Qgb2Ygcm9sZXMiKSwg bmNvbHMsIG5yb3dzKTsKIApAQCAtNTMwNiw3ICs1MzA2LDcgQEAgbGlzdFNjaGVtYXMoY29u c3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pCiAJCQkg KiBzdG9yaW5nICJQdWJsaWNhdGlvbnM6IiBzdHJpbmcpICsgcHVibGljYXRpb24gc2NoZW1h IG1hcHBpbmcKIAkJCSAqIGNvdW50ICsgIDEgKGZvciBzdG9yaW5nIE5VTEwpLgogCQkJICov Ci0JCQlmb290ZXJzID0gKGNoYXIgKiopIHBnX21hbGxvYygoMSArIHB1Yl9zY2hlbWFfdHVw bGVzICsgMSkgKiBzaXplb2YoY2hhciAqKSk7CisJCQlmb290ZXJzID0gcGdfbWFsbG9jX2Fy cmF5KGNoYXIgKiwgMSArIHB1Yl9zY2hlbWFfdHVwbGVzICsgMSk7CiAJCQlmb290ZXJzWzBd ID0gcGdfc3RyZHVwKF8oIlB1YmxpY2F0aW9uczoiKSk7CiAKIAkJCS8qIE1pZ2h0IGJlIGFu IGVtcHR5IHNldCAtIHRoYXQncyBvayAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IDhiOTFiYzAwMDYyLi5iMmRiYTZkMTBhYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpA QCAtNjMyNCw4ICs2MzI0LDcgQEAgYXBwZW5kX3ZhcmlhYmxlX25hbWVzKGNoYXIgKioqdmFy bmFtZXMsIGludCAqbnZhcnMsCiAJaWYgKCpudmFycyA+PSAqbWF4dmFycykKIAl7CiAJCSpt YXh2YXJzICo9IDI7Ci0JCSp2YXJuYW1lcyA9IChjaGFyICoqKSBwZ19yZWFsbG9jKCp2YXJu YW1lcywKLQkJCQkJCQkJCQkgKCgqbWF4dmFycykgKyAxKSAqIHNpemVvZihjaGFyICopKTsK KwkJKnZhcm5hbWVzID0gcGdfcmVhbGxvY19hcnJheSgqdmFybmFtZXMsIGNoYXIgKiwgKCpt YXh2YXJzKSArIDEpOwogCX0KIAogCSgqdmFybmFtZXMpWygqbnZhcnMpKytdID0gcHNwcmlu dGYoIiVzJXMlcyIsIHByZWZpeCwgdmFybmFtZSwgc3VmZml4KTsKQEAgLTYzNTAsNyArNjM0 OSw3IEBAIGNvbXBsZXRlX2Zyb21fdmFyaWFibGVzKGNvbnN0IGNoYXIgKnRleHQsIGNvbnN0 IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqc3VmZml4CiAJaW50CQkJaTsKIAlzdHJ1Y3Qg X3ZhcmlhYmxlICpwdHI7CiAKLQl2YXJuYW1lcyA9IChjaGFyICoqKSBwZ19tYWxsb2MoKG1h eHZhcnMgKyAxKSAqIHNpemVvZihjaGFyICopKTsKKwl2YXJuYW1lcyA9IHBnX21hbGxvY19h cnJheShjaGFyICosIG1heHZhcnMgKyAxKTsKIAogCWZvciAocHRyID0gcHNldC52YXJzLT5u ZXh0OyBwdHI7IHB0ciA9IHB0ci0+bmV4dCkKIAl7CkBAIC02OTI4LDcgKzY5MjcsNyBAQCBn ZXRfcHJldmlvdXNfd29yZHMoaW50IHBvaW50LCBjaGFyICoqYnVmZmVyLCBpbnQgKm53b3Jk cykKIAkgKiBUaGlzIGlzIHVzdWFsbHkgbXVjaCBtb3JlIHNwYWNlIHRoYW4gd2UgbmVlZCwg YnV0IGl0J3MgY2hlYXBlciB0aGFuCiAJICogZG9pbmcgYSBzZXBhcmF0ZSBtYWxsb2MoKSBm b3IgZWFjaCB3b3JkLgogCSAqLwotCXByZXZpb3VzX3dvcmRzID0gKGNoYXIgKiopIHBnX21h bGxvYyhwb2ludCAqIHNpemVvZihjaGFyICopKTsKKwlwcmV2aW91c193b3JkcyA9IHBnX21h bGxvY19hcnJheShjaGFyICosIHBvaW50KTsKIAkqYnVmZmVyID0gb3V0cHRyID0gKGNoYXIg KikgcGdfbWFsbG9jKHBvaW50ICogMik7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL3ZhcmlhYmxlcy5jIGIvc3JjL2Jpbi9wc3FsL3ZhcmlhYmxlcy5jCmluZGV4IDFjZDA4 MmRiMTU3Li5mMmEyOGJjOTgyMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3ZhcmlhYmxl cy5jCisrKyBiL3NyYy9iaW4vcHNxbC92YXJpYWJsZXMuYwpAQCAtNTQsNyArNTQsNyBAQCBD cmVhdGVWYXJpYWJsZVNwYWNlKHZvaWQpCiB7CiAJc3RydWN0IF92YXJpYWJsZSAqcHRyOwog Ci0JcHRyID0gcGdfbWFsbG9jKHNpemVvZiAqcHRyKTsKKwlwdHIgPSBwZ19tYWxsb2Nfb2Jq ZWN0KHN0cnVjdCBfdmFyaWFibGUpOwogCXB0ci0+bmFtZSA9IE5VTEw7CiAJcHRyLT52YWx1 ZSA9IE5VTEw7CiAJcHRyLT5zdWJzdGl0dXRlX2hvb2sgPSBOVUxMOwpAQCAtMzUzLDcgKzM1 Myw3IEBAIFNldFZhcmlhYmxlKFZhcmlhYmxlU3BhY2Ugc3BhY2UsIGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogCS8qIG5vdCBwcmVzZW50LCBtYWtlIG5ldyBlbnRy eSAuLi4gdW5sZXNzIHdlIHdlcmUgYXNrZWQgdG8gZGVsZXRlICovCiAJaWYgKHZhbHVlKQog CXsKLQkJY3VycmVudCA9IHBnX21hbGxvYyhzaXplb2YgKmN1cnJlbnQpOworCQljdXJyZW50 ID0gcGdfbWFsbG9jX29iamVjdChzdHJ1Y3QgX3ZhcmlhYmxlKTsKIAkJY3VycmVudC0+bmFt ZSA9IHBnX3N0cmR1cChuYW1lKTsKIAkJY3VycmVudC0+dmFsdWUgPSBwZ19zdHJkdXAodmFs dWUpOwogCQljdXJyZW50LT5zdWJzdGl0dXRlX2hvb2sgPSBOVUxMOwpAQCAtNDE2LDcgKzQx Niw3IEBAIFNldFZhcmlhYmxlSG9va3MoVmFyaWFibGVTcGFjZSBzcGFjZSwgY29uc3QgY2hh ciAqbmFtZSwKIAl9CiAKIAkvKiBub3QgcHJlc2VudCwgbWFrZSBuZXcgZW50cnkgKi8KLQlj dXJyZW50ID0gcGdfbWFsbG9jKHNpemVvZiAqY3VycmVudCk7CisJY3VycmVudCA9IHBnX21h bGxvY19vYmplY3Qoc3RydWN0IF92YXJpYWJsZSk7CiAJY3VycmVudC0+bmFtZSA9IHBnX3N0 cmR1cChuYW1lKTsKIAljdXJyZW50LT52YWx1ZSA9IE5VTEw7CiAJY3VycmVudC0+c3Vic3Rp dHV0ZV9ob29rID0gc2hvb2s7CmRpZmYgLS1naXQgYS9zcmMvYmluL3NjcmlwdHMvcmVpbmRl eGRiLmMgYi9zcmMvYmluL3NjcmlwdHMvcmVpbmRleGRiLmMKaW5kZXggOGJhYjc0YjU5MTcu LmQ3ZmIxNmQzYzg1IDEwMDY0NAotLS0gYS9zcmMvYmluL3NjcmlwdHMvcmVpbmRleGRiLmMK KysrIGIvc3JjL2Jpbi9zY3JpcHRzL3JlaW5kZXhkYi5jCkBAIC0zMjIsNyArMzIyLDcgQEAg cmVpbmRleF9vbmVfZGF0YWJhc2UoQ29ublBhcmFtcyAqY3BhcmFtcywgUmVpbmRleFR5cGUg dHlwZSwKIAkJCQkgKiBkYXRhYmFzZSBpdHNlbGYsIHNvIGJ1aWxkIGEgbGlzdCB3aXRoIGEg c2luZ2xlIGVudHJ5LgogCQkJCSAqLwogCQkJCUFzc2VydCh1c2VyX2xpc3QgPT0gTlVMTCk7 Ci0JCQkJcHJvY2Vzc19saXN0ID0gcGdfbWFsbG9jMChzaXplb2YoU2ltcGxlU3RyaW5nTGlz dCkpOworCQkJCXByb2Nlc3NfbGlzdCA9IHBnX21hbGxvYzBfb2JqZWN0KFNpbXBsZVN0cmlu Z0xpc3QpOwogCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9hcHBlbmQocHJvY2Vzc19saXN0LCBQ UWRiKGNvbm4pKTsKIAkJCQlicmVhazsKIApAQCAtNzEzLDcgKzcxMyw3IEBAIGdldF9wYXJh bGxlbF90YWJsZXNfbGlzdChQR2Nvbm4gKmNvbm4sIFJlaW5kZXhUeXBlIHR5cGUsCiAJCXJl dHVybiBOVUxMOwogCX0KIAotCXRhYmxlcyA9IHBnX21hbGxvYzAoc2l6ZW9mKFNpbXBsZVN0 cmluZ0xpc3QpKTsKKwl0YWJsZXMgPSBwZ19tYWxsb2MwX29iamVjdChTaW1wbGVTdHJpbmdM aXN0KTsKIAogCS8qIEJ1aWxkIHF1YWxpZmllZCBpZGVudGlmaWVycyBmb3IgZWFjaCB0YWJs ZSAqLwogCWZvciAoaW50IGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKQEAgLTgwOSw3ICs4MDks NyBAQCBnZXRfcGFyYWxsZWxfdGFiaWR4X2xpc3QoUEdjb25uICpjb25uLAogCQlyZXR1cm47 CiAJfQogCi0JKnRhYmxlX2xpc3QgPSBwZ19tYWxsb2MwKHNpemVvZihTaW1wbGVPaWRMaXN0 KSk7CisJKnRhYmxlX2xpc3QgPSBwZ19tYWxsb2MwX29iamVjdChTaW1wbGVPaWRMaXN0KTsK IAogCS8qCiAJICogQnVpbGQgdHdvIGxpc3RzLCBvbmUgd2l0aCB0YWJsZSBPSURzIGFuZCB0 aGUgb3RoZXIgd2l0aCBmdWxseS1xdWFsaWZpZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lz b2xhdGlvbi9pc29sYXRpb250ZXN0ZXIuYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRp b250ZXN0ZXIuYwppbmRleCBhMGFlYzA0ZDk5NC4uNDQwYzg3NWI4YWMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb250ZXN0ZXIuYworKysgYi9zcmMvdGVzdC9p c29sYXRpb24vaXNvbGF0aW9udGVzdGVyLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAkgKiBleHRyYSBmb3IgbG9jayB3YWl0IGRldGVjdGlv biBhbmQgZ2xvYmFsIHdvcmsuCiAJICovCiAJbmNvbm5zID0gMSArIHRlc3RzcGVjLT5uc2Vz c2lvbnM7Ci0JY29ubnMgPSAoSXNvQ29ubkluZm8gKikgcGdfbWFsbG9jMChuY29ubnMgKiBz aXplb2YoSXNvQ29ubkluZm8pKTsKKwljb25ucyA9IHBnX21hbGxvYzBfYXJyYXkoSXNvQ29u bkluZm8sIG5jb25ucyk7CiAJYXRleGl0KGRpc2Nvbm5lY3RfYXRleGl0KTsKIAogCWZvciAo aSA9IDA7IGkgPCBuY29ubnM7IGkrKykKQEAgLTI2Miw3ICsyNjIsNyBAQCBjaGVja190ZXN0 c3BlYyhUZXN0U3BlYyAqdGVzdHNwZWMpCiAJZm9yIChpID0gMDsgaSA8IHRlc3RzcGVjLT5u c2Vzc2lvbnM7IGkrKykKIAkJbmFsbHN0ZXBzICs9IHRlc3RzcGVjLT5zZXNzaW9uc1tpXS0+ bnN0ZXBzOwogCi0JYWxsc3RlcHMgPSBwZ19tYWxsb2MobmFsbHN0ZXBzICogc2l6ZW9mKFN0 ZXAgKikpOworCWFsbHN0ZXBzID0gcGdfbWFsbG9jX2FycmF5KFN0ZXAgKiwgbmFsbHN0ZXBz KTsKIAogCWsgPSAwOwogCWZvciAoaSA9IDA7IGkgPCB0ZXN0c3BlYy0+bnNlc3Npb25zOyBp KyspCkBAIC00MTcsOCArNDE3LDggQEAgcnVuX2FsbF9wZXJtdXRhdGlvbnMoVGVzdFNwZWMg KnRlc3RzcGVjKQogCQluc3RlcHMgKz0gdGVzdHNwZWMtPnNlc3Npb25zW2ldLT5uc3RlcHM7 CiAKIAkvKiBDcmVhdGUgUGVybXV0YXRpb25TdGVwIHdvcmtzcGFjZSBhcnJheSAqLwotCXN0 ZXBzID0gKFBlcm11dGF0aW9uU3RlcCAqKSBwZ19tYWxsb2MwKHNpemVvZihQZXJtdXRhdGlv blN0ZXApICogbnN0ZXBzKTsKLQlzdGVwcHRycyA9IChQZXJtdXRhdGlvblN0ZXAgKiopIHBn X21hbGxvYyhzaXplb2YoUGVybXV0YXRpb25TdGVwICopICogbnN0ZXBzKTsKKwlzdGVwcyA9 IHBnX21hbGxvYzBfYXJyYXkoUGVybXV0YXRpb25TdGVwLCBuc3RlcHMpOworCXN0ZXBwdHJz ID0gcGdfbWFsbG9jX2FycmF5KFBlcm11dGF0aW9uU3RlcCAqLCBuc3RlcHMpOwogCWZvciAo aSA9IDA7IGkgPCBuc3RlcHM7IGkrKykKIAkJc3RlcHB0cnNbaV0gPSBzdGVwcyArIGk7CiAK QEAgLTQzMSw3ICs0MzEsNyBAQCBydW5fYWxsX3Blcm11dGF0aW9ucyhUZXN0U3BlYyAqdGVz dHNwZWMpCiAJICogQSBwaWxlIGlzIGFjdHVhbGx5IGp1c3QgYW4gaW50ZWdlciB3aGljaCB0 ZWxscyBob3cgbWFueSBzdGVwcyB3ZSd2ZQogCSAqIGFscmVhZHkgcGlja2VkIGZyb20gdGhp cyBwaWxlLgogCSAqLwotCXBpbGVzID0gcGdfbWFsbG9jKHNpemVvZihpbnQpICogdGVzdHNw ZWMtPm5zZXNzaW9ucyk7CisJcGlsZXMgPSBwZ19tYWxsb2NfYXJyYXkoaW50LCB0ZXN0c3Bl Yy0+bnNlc3Npb25zKTsKIAlmb3IgKGkgPSAwOyBpIDwgdGVzdHNwZWMtPm5zZXNzaW9uczsg aSsrKQogCQlwaWxlc1tpXSA9IDA7CiAKQEAgLTUyNCw3ICs1MjQsNyBAQCBydW5fcGVybXV0 YXRpb24oVGVzdFNwZWMgKnRlc3RzcGVjLCBpbnQgbnN0ZXBzLCBQZXJtdXRhdGlvblN0ZXAg KipzdGVwcykKIAlpbnQJCQlud2FpdGluZyA9IDA7CiAJUGVybXV0YXRpb25TdGVwICoqd2Fp dGluZzsKIAotCXdhaXRpbmcgPSBwZ19tYWxsb2Moc2l6ZW9mKFBlcm11dGF0aW9uU3RlcCAq KSAqIHRlc3RzcGVjLT5uc2Vzc2lvbnMpOworCXdhaXRpbmcgPSBwZ19tYWxsb2NfYXJyYXko UGVybXV0YXRpb25TdGVwICosIHRlc3RzcGVjLT5uc2Vzc2lvbnMpOwogCiAJcHJpbnRmKCJc bnN0YXJ0aW5nIHBlcm11dGF0aW9uOiIpOwogCWZvciAoaSA9IDA7IGkgPCBuc3RlcHM7IGkr KykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcGFyc2UueSBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9zcGVjcGFyc2UueQppbmRleCBiNjFkNzg5ZDhmMC4uZjZiOTA1OGU1 NTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcGFyc2UueQorKysgYi9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3BhcnNlLnkKQEAgLTgzLDggKzgzLDggQEAgc2V0dXBf bGlzdDoKIAkJCX0KIAkJCXwgc2V0dXBfbGlzdCBzZXR1cAogCQkJewotCQkJCSQkLmVsZW1l bnRzID0gcGdfcmVhbGxvYygkMS5lbGVtZW50cywKLQkJCQkJCQkJCQkgKCQxLm5lbGVtZW50 cyArIDEpICogc2l6ZW9mKHZvaWQgKikpOworCQkJCSQkLmVsZW1lbnRzID0gcGdfcmVhbGxv Y19hcnJheSgkMS5lbGVtZW50cywgdm9pZCAqLAorCQkJCQkJCQkJCQkgICAkMS5uZWxlbWVu dHMgKyAxKTsKIAkJCQkkJC5lbGVtZW50c1skMS5uZWxlbWVudHNdID0gJDI7CiAJCQkJJCQu bmVsZW1lbnRzID0gJDEubmVsZW1lbnRzICsgMTsKIAkJCX0KQEAgLTEwNywxNSArMTA3LDE1 IEBAIG9wdF90ZWFyZG93bjoKIHNlc3Npb25fbGlzdDoKIAkJCXNlc3Npb25fbGlzdCBzZXNz aW9uCiAJCQl7Ci0JCQkJJCQuZWxlbWVudHMgPSBwZ19yZWFsbG9jKCQxLmVsZW1lbnRzLAot CQkJCQkJCQkJCSAoJDEubmVsZW1lbnRzICsgMSkgKiBzaXplb2Yodm9pZCAqKSk7CisJCQkJ JCQuZWxlbWVudHMgPSBwZ19yZWFsbG9jX2FycmF5KCQxLmVsZW1lbnRzLCB2b2lkICosCisJ CQkJCQkJCQkJCSAgICQxLm5lbGVtZW50cyArIDEpOwogCQkJCSQkLmVsZW1lbnRzWyQxLm5l bGVtZW50c10gPSAkMjsKIAkJCQkkJC5uZWxlbWVudHMgPSAkMS5uZWxlbWVudHMgKyAxOwog CQkJfQogCQkJfCBzZXNzaW9uCiAJCQl7CiAJCQkJJCQubmVsZW1lbnRzID0gMTsKLQkJCQkk JC5lbGVtZW50cyA9IHBnX21hbGxvYyhzaXplb2Yodm9pZCAqKSk7CisJCQkJJCQuZWxlbWVu dHMgPSBwZ19tYWxsb2Nfb2JqZWN0KHZvaWQgKik7CiAJCQkJJCQuZWxlbWVudHNbMF0gPSAk MTsKIAkJCX0KIAkJOwpAQCAtMTIzLDcgKzEyMyw3IEBAIHNlc3Npb25fbGlzdDoKIHNlc3Np b246CiAJCQlTRVNTSU9OIGlkZW50aWZpZXIgb3B0X3NldHVwIHN0ZXBfbGlzdCBvcHRfdGVh cmRvd24KIAkJCXsKLQkJCQkkJCA9IHBnX21hbGxvYyhzaXplb2YoU2Vzc2lvbikpOworCQkJ CSQkID0gcGdfbWFsbG9jX29iamVjdChTZXNzaW9uKTsKIAkJCQkkJC0+bmFtZSA9ICQyOwog CQkJCSQkLT5zZXR1cHNxbCA9ICQzOwogCQkJCSQkLT5zdGVwcyA9IChTdGVwICoqKSAkNC5l bGVtZW50czsKQEAgLTEzNSwxNSArMTM1LDE1IEBAIHNlc3Npb246CiBzdGVwX2xpc3Q6CiAJ CQlzdGVwX2xpc3Qgc3RlcAogCQkJewotCQkJCSQkLmVsZW1lbnRzID0gcGdfcmVhbGxvYygk MS5lbGVtZW50cywKLQkJCQkJCQkJCQkgKCQxLm5lbGVtZW50cyArIDEpICogc2l6ZW9mKHZv aWQgKikpOworCQkJCSQkLmVsZW1lbnRzID0gcGdfcmVhbGxvY19hcnJheSgkMS5lbGVtZW50 cywgdm9pZCAqLAorCQkJCQkJCQkJCQkgICAkMS5uZWxlbWVudHMgKyAxKTsKIAkJCQkkJC5l bGVtZW50c1skMS5uZWxlbWVudHNdID0gJDI7CiAJCQkJJCQubmVsZW1lbnRzID0gJDEubmVs ZW1lbnRzICsgMTsKIAkJCX0KIAkJCXwgc3RlcAogCQkJewogCQkJCSQkLm5lbGVtZW50cyA9 IDE7Ci0JCQkJJCQuZWxlbWVudHMgPSBwZ19tYWxsb2Moc2l6ZW9mKHZvaWQgKikpOworCQkJ CSQkLmVsZW1lbnRzID0gcGdfbWFsbG9jX29iamVjdCh2b2lkICopOwogCQkJCSQkLmVsZW1l bnRzWzBdID0gJDE7CiAJCQl9CiAJCTsKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdGVwX2xpc3Q6 CiBzdGVwOgogCQkJU1RFUCBpZGVudGlmaWVyIHNxbGJsb2NrCiAJCQl7Ci0JCQkJJCQgPSBw Z19tYWxsb2Moc2l6ZW9mKFN0ZXApKTsKKwkJCQkkJCA9IHBnX21hbGxvY19vYmplY3QoU3Rl cCk7CiAJCQkJJCQtPm5hbWUgPSAkMjsKIAkJCQkkJC0+c3FsID0gJDM7CiAJCQkJJCQtPnNl c3Npb24gPSAtMTsgLyogdW50aWwgZmlsbGVkICovCkBAIC0xNzUsMTUgKzE3NSwxNSBAQCBv cHRfcGVybXV0YXRpb25fbGlzdDoKIHBlcm11dGF0aW9uX2xpc3Q6CiAJCQlwZXJtdXRhdGlv bl9saXN0IHBlcm11dGF0aW9uCiAJCQl7Ci0JCQkJJCQuZWxlbWVudHMgPSBwZ19yZWFsbG9j KCQxLmVsZW1lbnRzLAotCQkJCQkJCQkJCSAoJDEubmVsZW1lbnRzICsgMSkgKiBzaXplb2Yo dm9pZCAqKSk7CisJCQkJJCQuZWxlbWVudHMgPSBwZ19yZWFsbG9jX2FycmF5KCQxLmVsZW1l bnRzLCB2b2lkICosCisJCQkJCQkJCQkJCSAgICQxLm5lbGVtZW50cyArIDEpOwogCQkJCSQk LmVsZW1lbnRzWyQxLm5lbGVtZW50c10gPSAkMjsKIAkJCQkkJC5uZWxlbWVudHMgPSAkMS5u ZWxlbWVudHMgKyAxOwogCQkJfQogCQkJfCBwZXJtdXRhdGlvbgogCQkJewogCQkJCSQkLm5l bGVtZW50cyA9IDE7Ci0JCQkJJCQuZWxlbWVudHMgPSBwZ19tYWxsb2Moc2l6ZW9mKHZvaWQg KikpOworCQkJCSQkLmVsZW1lbnRzID0gcGdfbWFsbG9jX29iamVjdCh2b2lkICopOwogCQkJ CSQkLmVsZW1lbnRzWzBdID0gJDE7CiAJCQl9CiAJCTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBw ZXJtdXRhdGlvbl9saXN0OgogcGVybXV0YXRpb246CiAJCQlQRVJNVVRBVElPTiBwZXJtdXRh dGlvbl9zdGVwX2xpc3QKIAkJCXsKLQkJCQkkJCA9IHBnX21hbGxvYyhzaXplb2YoUGVybXV0 YXRpb24pKTsKKwkJCQkkJCA9IHBnX21hbGxvY19vYmplY3QoUGVybXV0YXRpb24pOwogCQkJ CSQkLT5uc3RlcHMgPSAkMi5uZWxlbWVudHM7CiAJCQkJJCQtPnN0ZXBzID0gKFBlcm11dGF0 aW9uU3RlcCAqKikgJDIuZWxlbWVudHM7CiAJCQl9CkBAIC0yMDEsMTUgKzIwMSwxNSBAQCBw ZXJtdXRhdGlvbjoKIHBlcm11dGF0aW9uX3N0ZXBfbGlzdDoKIAkJCXBlcm11dGF0aW9uX3N0 ZXBfbGlzdCBwZXJtdXRhdGlvbl9zdGVwCiAJCQl7Ci0JCQkJJCQuZWxlbWVudHMgPSBwZ19y ZWFsbG9jKCQxLmVsZW1lbnRzLAotCQkJCQkJCQkJCSAoJDEubmVsZW1lbnRzICsgMSkgKiBz aXplb2Yodm9pZCAqKSk7CisJCQkJJCQuZWxlbWVudHMgPSBwZ19yZWFsbG9jX2FycmF5KCQx LmVsZW1lbnRzLCB2b2lkICosCisJCQkJCQkJCQkJCSAgICQxLm5lbGVtZW50cyArIDEpOwog CQkJCSQkLmVsZW1lbnRzWyQxLm5lbGVtZW50c10gPSAkMjsKIAkJCQkkJC5uZWxlbWVudHMg PSAkMS5uZWxlbWVudHMgKyAxOwogCQkJfQogCQkJfCBwZXJtdXRhdGlvbl9zdGVwCiAJCQl7 CiAJCQkJJCQubmVsZW1lbnRzID0gMTsKLQkJCQkkJC5lbGVtZW50cyA9IHBnX21hbGxvYyhz aXplb2Yodm9pZCAqKSk7CisJCQkJJCQuZWxlbWVudHMgPSBwZ19tYWxsb2Nfb2JqZWN0KHZv aWQgKik7CiAJCQkJJCQuZWxlbWVudHNbMF0gPSAkMTsKIAkJCX0KIAkJOwpAQCAtMjE3LDcg KzIxNyw3IEBAIHBlcm11dGF0aW9uX3N0ZXBfbGlzdDoKIHBlcm11dGF0aW9uX3N0ZXA6CiAJ CQlpZGVudGlmaWVyCiAJCQl7Ci0JCQkJJCQgPSBwZ19tYWxsb2Moc2l6ZW9mKFBlcm11dGF0 aW9uU3RlcCkpOworCQkJCSQkID0gcGdfbWFsbG9jX29iamVjdChQZXJtdXRhdGlvblN0ZXAp OwogCQkJCSQkLT5uYW1lID0gJDE7CiAJCQkJJCQtPmJsb2NrZXJzID0gTlVMTDsKIAkJCQkk JC0+bmJsb2NrZXJzID0gMDsKQEAgLTIyNSw3ICsyMjUsNyBAQCBwZXJtdXRhdGlvbl9zdGVw OgogCQkJfQogCQkJfCBpZGVudGlmaWVyICcoJyBibG9ja2VyX2xpc3QgJyknCiAJCQl7Ci0J CQkJJCQgPSBwZ19tYWxsb2Moc2l6ZW9mKFBlcm11dGF0aW9uU3RlcCkpOworCQkJCSQkID0g cGdfbWFsbG9jX29iamVjdChQZXJtdXRhdGlvblN0ZXApOwogCQkJCSQkLT5uYW1lID0gJDE7 CiAJCQkJJCQtPmJsb2NrZXJzID0gKFBlcm11dGF0aW9uU3RlcEJsb2NrZXIgKiopICQzLmVs ZW1lbnRzOwogCQkJCSQkLT5uYmxvY2tlcnMgPSAkMy5uZWxlbWVudHM7CkBAIC0yMzYsMTUg KzIzNiwxNSBAQCBwZXJtdXRhdGlvbl9zdGVwOgogYmxvY2tlcl9saXN0OgogCQkJYmxvY2tl cl9saXN0ICcsJyBibG9ja2VyCiAJCQl7Ci0JCQkJJCQuZWxlbWVudHMgPSBwZ19yZWFsbG9j KCQxLmVsZW1lbnRzLAotCQkJCQkJCQkJCSAoJDEubmVsZW1lbnRzICsgMSkgKiBzaXplb2Yo dm9pZCAqKSk7CisJCQkJJCQuZWxlbWVudHMgPSBwZ19yZWFsbG9jX2FycmF5KCQxLmVsZW1l bnRzLCB2b2lkICosCisJCQkJCQkJCQkJCSAgICQxLm5lbGVtZW50cyArIDEpOwogCQkJCSQk LmVsZW1lbnRzWyQxLm5lbGVtZW50c10gPSAkMzsKIAkJCQkkJC5uZWxlbWVudHMgPSAkMS5u ZWxlbWVudHMgKyAxOwogCQkJfQogCQkJfCBibG9ja2VyCiAJCQl7CiAJCQkJJCQubmVsZW1l bnRzID0gMTsKLQkJCQkkJC5lbGVtZW50cyA9IHBnX21hbGxvYyhzaXplb2Yodm9pZCAqKSk7 CisJCQkJJCQuZWxlbWVudHMgPSBwZ19tYWxsb2Nfb2JqZWN0KHZvaWQgKik7CiAJCQkJJCQu ZWxlbWVudHNbMF0gPSAkMTsKIAkJCX0KIAkJOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGJsb2Nr ZXJfbGlzdDoKIGJsb2NrZXI6CiAJCQlpZGVudGlmaWVyCiAJCQl7Ci0JCQkJJCQgPSBwZ19t YWxsb2Moc2l6ZW9mKFBlcm11dGF0aW9uU3RlcEJsb2NrZXIpKTsKKwkJCQkkJCA9IHBnX21h bGxvY19vYmplY3QoUGVybXV0YXRpb25TdGVwQmxvY2tlcik7CiAJCQkJJCQtPnN0ZXBuYW1l ID0gJDE7CiAJCQkJJCQtPmJsb2NrdHlwZSA9IFBTQl9PVEhFUl9TVEVQOwogCQkJCSQkLT5u dW1fbm90aWNlcyA9IC0xOwpAQCAtMjYxLDcgKzI2MSw3IEBAIGJsb2NrZXI6CiAJCQl9CiAJ CQl8IGlkZW50aWZpZXIgTk9USUNFUyBJTlRFR0VSCiAJCQl7Ci0JCQkJJCQgPSBwZ19tYWxs b2Moc2l6ZW9mKFBlcm11dGF0aW9uU3RlcEJsb2NrZXIpKTsKKwkJCQkkJCA9IHBnX21hbGxv Y19vYmplY3QoUGVybXV0YXRpb25TdGVwQmxvY2tlcik7CiAJCQkJJCQtPnN0ZXBuYW1lID0g JDE7CiAJCQkJJCQtPmJsb2NrdHlwZSA9IFBTQl9OVU1fTk9USUNFUzsKIAkJCQkkJC0+bnVt X25vdGljZXMgPSAkMzsKQEAgLTI3MCw3ICsyNzAsNyBAQCBibG9ja2VyOgogCQkJfQogCQkJ fCAnKicKIAkJCXsKLQkJCQkkJCA9IHBnX21hbGxvYyhzaXplb2YoUGVybXV0YXRpb25TdGVw QmxvY2tlcikpOworCQkJCSQkID0gcGdfbWFsbG9jX29iamVjdChQZXJtdXRhdGlvblN0ZXBC bG9ja2VyKTsKIAkJCQkkJC0+c3RlcG5hbWUgPSBOVUxMOwogCQkJCSQkLT5ibG9ja3R5cGUg PSBQU0JfT05DRTsKIAkJCQkkJC0+bnVtX25vdGljZXMgPSAtMTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYyBiL3NyYy90 ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYwppbmRleCA0MDli M2E3ZmE0NS4uYWEwYTZiYmU3NjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvbGli cHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYworKysgYi9zcmMvdGVzdC9tb2R1bGVzL2xp YnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMKQEAgLTI2MCw4ICsyNjAsOCBAQCBjb3B5 X2Nvbm5lY3Rpb24oUEdjb25uICpjb25uKQogCQlub3B0cysrOwogCW5vcHRzKys7CQkJCQkv KiBmb3IgdGhlIE5VTEwgdGVybWluYXRvciAqLwogCi0Ja2V5d29yZHMgPSBwZ19tYWxsb2Mo c2l6ZW9mKGNoYXIgKikgKiBub3B0cyk7Ci0JdmFscyA9IHBnX21hbGxvYyhzaXplb2YoY2hh ciAqKSAqIG5vcHRzKTsKKwlrZXl3b3JkcyA9IHBnX21hbGxvY19hcnJheShjb25zdCBjaGFy ICosIG5vcHRzKTsKKwl2YWxzID0gcGdfbWFsbG9jX2FycmF5KGNvbnN0IGNoYXIgKiwgbm9w dHMpOwogCiAJaSA9IDA7CiAJZm9yIChQUWNvbm5pbmZvT3B0aW9uICpvcHQgPSBvcHRzOyBv cHQtPmtleXdvcmQgIT0gTlVMTDsgKytvcHQpCkBAIC0xMzM3LDggKzEzMzcsOCBAQCB0ZXN0 X3Byb3RvY29sX3ZlcnNpb24oUEdjb25uICpjb25uKQogCQlub3B0cysrOwogCW5vcHRzKys7 CQkJCQkvKiBOVUxMIHRlcm1pbmF0b3IgKi8KIAotCWtleXdvcmRzID0gcGdfbWFsbG9jMChz aXplb2YoY2hhciAqKSAqIG5vcHRzKTsKLQl2YWxzID0gcGdfbWFsbG9jMChzaXplb2YoY2hh ciAqKSAqIG5vcHRzKTsKKwlrZXl3b3JkcyA9IHBnX21hbGxvYzBfYXJyYXkoY29uc3QgY2hh ciAqLCBub3B0cyk7CisJdmFscyA9IHBnX21hbGxvYzBfYXJyYXkoY29uc3QgY2hhciAqLCBu b3B0cyk7CiAKIAlpID0gMDsKIAlmb3IgKFBRY29ubmluZm9PcHRpb24gKm9wdCA9IG9wdHM7 IG9wdC0+a2V5d29yZCAhPSBOVUxMOyArK29wdCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGdfcmVncmVzcy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzLmMKaW5k ZXggYjVjMGNiNjQ3YTguLmI4YjZhOTExOTg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3BnX3JlZ3Jlc3MuYworKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYwpA QCAtMTk2LDcgKzE5Niw3IEBAIHVubGltaXRfY29yZV9zaXplKHZvaWQpCiB2b2lkCiBhZGRf c3RyaW5nbGlzdF9pdGVtKF9zdHJpbmdsaXN0ICoqbGlzdGhlYWQsIGNvbnN0IGNoYXIgKnN0 cikKIHsKLQlfc3RyaW5nbGlzdCAqbmV3ZW50cnkgPSBwZ19tYWxsb2Moc2l6ZW9mKF9zdHJp bmdsaXN0KSk7CisJX3N0cmluZ2xpc3QgKm5ld2VudHJ5ID0gcGdfbWFsbG9jX29iamVjdChf c3RyaW5nbGlzdCk7CiAJX3N0cmluZ2xpc3QgKm9sZGVudHJ5OwogCiAJbmV3ZW50cnktPnN0 ciA9IHBnX3N0cmR1cChzdHIpOwpAQCAtNjc0LDcgKzY3NCw3IEBAIGxvYWRfcmVzdWx0bWFw KHZvaWQpCiAJCSAqLwogCQlpZiAoc3RyaW5nX21hdGNoZXNfcGF0dGVybihob3N0X3BsYXRm b3JtLCBwbGF0Zm9ybSkpCiAJCXsKLQkJCV9yZXN1bHRtYXAgKmVudHJ5ID0gcGdfbWFsbG9j KHNpemVvZihfcmVzdWx0bWFwKSk7CisJCQlfcmVzdWx0bWFwICplbnRyeSA9IHBnX21hbGxv Y19vYmplY3QoX3Jlc3VsdG1hcCk7CiAKIAkJCWVudHJ5LT50ZXN0ID0gcGdfc3RyZHVwKGJ1 Zik7CiAJCQllbnRyeS0+dHlwZSA9IHBnX3N0cmR1cChmaWxlX3R5cGUpOwpAQCAtMTU1Nyw3 ICsxNTU3LDcgQEAgd2FpdF9mb3JfdGVzdHMoUElEX1RZUEUgKiBwaWRzLCBpbnQgKnN0YXR1 c2VzLCBpbnN0cl90aW1lICpzdG9wdGltZXMsCiAJaW50CQkJaTsKIAogI2lmZGVmIFdJTjMy Ci0JUElEX1RZUEUgICAqYWN0aXZlX3BpZHMgPSBwZ19tYWxsb2MobnVtX3Rlc3RzICogc2l6 ZW9mKFBJRF9UWVBFKSk7CisJUElEX1RZUEUgICAqYWN0aXZlX3BpZHMgPSBwZ19tYWxsb2Nf YXJyYXkoUElEX1RZUEUsIG51bV90ZXN0cyk7CiAKIAltZW1jcHkoYWN0aXZlX3BpZHMsIHBp ZHMsIG51bV90ZXN0cyAqIHNpemVvZihQSURfVFlQRSkpOwogI2VuZGlmCi0tIAoyLjQ3LjMK Cg== --------------ok9jHNdFk9d4sdQ1mM00LB27 Content-Type: text/x-patch; charset=UTF-8; name="v1-0002-TODO-What-to-do-about-when-we-allocate-an-array-o.patch" Content-Disposition: attachment; filename*0="v1-0002-TODO-What-to-do-about-when-we-allocate-an-array-o.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxZTZmY2ZhNTFkZjEwOTEyZTY2NWNjOWJkNTgzZTQ5ZWIwM2Y2ZjEzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogRnJpLCAyNyBGZWIgMjAyNiAwMjoxMToxNyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjEgMi8zXSBUT0RPOiBXaGF0IHRvIGRvIGFib3V0IHdoZW4gd2UgYWxsb2NhdGUg YW4gYXJyYXkgb2YKIGNoYXI/CgotLS0KIGNvbnRyaWIvb2lkMm5hbWUvb2lkMm5hbWUuYyAg ICAgICAgfCA4ICsrKystLS0tCiBzcmMvYmluL2luaXRkYi9pbml0ZGIuYyAgICAgICAgICAg IHwgNCArKy0tCiBzcmMvYmluL3BnX2Jhc2ViYWNrdXAvd2FsbWV0aG9kcy5jIHwgMiArLQog MyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29udHJpYi9vaWQybmFtZS9vaWQybmFtZS5jIGIvY29udHJpYi9vaWQybmFt ZS9vaWQybmFtZS5jCmluZGV4IDFlOWVmY2QzOTUzLi5jZmEzNDJhMjkyNiAxMDA2NDQKLS0t IGEvY29udHJpYi9vaWQybmFtZS9vaWQybmFtZS5jCisrKyBiL2NvbnRyaWIvb2lkMm5hbWUv b2lkMm5hbWUuYwpAQCAtMjc1LDcgKzI3NSw3IEBAIGdldF9jb21tYV9lbHRzKGVhcnkgKmVh cnkpCiAJZm9yIChpID0gMDsgaSA8IGVhcnktPm51bTsgaSsrKQogCQlsZW5ndGggKz0gc3Ry bGVuKGVhcnktPmFycmF5W2ldKTsKIAotCXJldCA9IChjaGFyICopIHBnX21hbGxvYyhsZW5n dGggKiAyICsgNCAqIGVhcnktPm51bSk7CisJcmV0ID0gcGdfbWFsbG9jX2FycmF5KGNoYXIs IGxlbmd0aCAqIDIgKyA0ICogZWFyeS0+bnVtKTsKIAlwdHIgPSByZXQ7CiAKIAlmb3IgKGkg PSAwOyBpIDwgZWFyeS0+bnVtOyBpKyspCkBAIC00MjMsNyArNDIzLDcgQEAgc3FsX2V4ZWMo UEdjb25uICpjb25uLCBjb25zdCBjaGFyICp0b2RvLCBib29sIHF1aWV0KQogCQkJbCArPSBs ZW5ndGhbal0gKyAyOwogCQl9CiAJCWZwcmludGYoc3Rkb3V0LCAiXG4iKTsKLQkJcGFkID0g KGNoYXIgKikgcGdfbWFsbG9jKGwgKyAxKTsKKwkJcGFkID0gcGdfbWFsbG9jX2FycmF5KGNo YXIsIGwgKyAxKTsKIAkJbWVtc2V0KHBhZCwgJy0nLCBsKTsKIAkJcGFkW2xdID0gJ1wwJzsK IAkJZnByaW50ZihzdGRvdXQsICIlc1xuIiwgcGFkKTsKQEAgLTUxNSw4ICs1MTUsOCBAQCBz cWxfZXhlY19zZWFyY2h0YWJsZXMoUEdjb25uICpjb25uLCBzdHJ1Y3Qgb3B0aW9ucyAqb3B0 cykKIAljb21tYV9maWxlbnVtYmVycyA9IGdldF9jb21tYV9lbHRzKG9wdHMtPmZpbGVudW1i ZXJzKTsKIAogCS8qIDgwIGV4dHJhIGNoYXJzIGZvciBTUUwgZXhwcmVzc2lvbiAqLwotCXF1 YWxpZmllcnMgPSAoY2hhciAqKSBwZ19tYWxsb2Moc3RybGVuKGNvbW1hX29pZHMpICsgc3Ry bGVuKGNvbW1hX3RhYmxlcykgKwotCQkJCQkJCQkJc3RybGVuKGNvbW1hX2ZpbGVudW1iZXJz KSArIDgwKTsKKwlxdWFsaWZpZXJzID0gcGdfbWFsbG9jX2FycmF5KGNoYXIsIHN0cmxlbihj b21tYV9vaWRzKSArIHN0cmxlbihjb21tYV90YWJsZXMpICsKKwkJCQkJCQkJIHN0cmxlbihj b21tYV9maWxlbnVtYmVycykgKyA4MCk7CiAJcHRyID0gcXVhbGlmaWVyczsKIAogCWlmIChv cHRzLT5vaWRzLT5udW0gPiAwKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRi LmMgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwppbmRleCA1M2VjMTU0NGZmMy4uYjY5MTZi YWQyMDEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCisrKyBiL3NyYy9i aW4vaW5pdGRiL2luaXRkYi5jCkBAIC00MjYsNyArNDI2LDcgQEAgZXNjYXBlX3F1b3Rlc19i a2koY29uc3QgY2hhciAqc3JjKQogCWNoYXIJICAgKnJlc3VsdHA7CiAJY2hhcgkgICAqZGF0 YXA7CiAKLQlyZXN1bHQgPSAoY2hhciAqKSBwZ19tYWxsb2Moc3RybGVuKGRhdGEpICsgMyk7 CisJcmVzdWx0ID0gcGdfbWFsbG9jX2FycmF5KGNoYXIsIHN0cmxlbihkYXRhKSArIDMpOwog CXJlc3VsdHAgPSByZXN1bHQ7CiAJKnJlc3VsdHArKyA9ICdcJyc7CiAJZm9yIChkYXRhcCA9 IGRhdGE7ICpkYXRhcDsgZGF0YXArKykKQEAgLTQ5Miw3ICs0OTIsNyBAQCByZXBsYWNlX3Rv a2VuKGNoYXIgKipsaW5lcywgY29uc3QgY2hhciAqdG9rZW4sIGNvbnN0IGNoYXIgKnJlcGxh Y2VtZW50KQogCiAJCS8qIGlmIHdlIGdldCBoZXJlIGEgY2hhbmdlIGlzIG5lZWRlZCAtIHNl dCB1cCBuZXcgbGluZSAqLwogCi0JCW5ld2xpbmUgPSAoY2hhciAqKSBwZ19tYWxsb2Moc3Ry bGVuKGxpbmVzW2ldKSArIGRpZmYgKyAxKTsKKwkJbmV3bGluZSA9IHBnX21hbGxvY19hcnJh eShjaGFyLCBzdHJsZW4obGluZXNbaV0pICsgZGlmZiArIDEpOwogCiAJCXByZSA9IHdoZXJl IC0gbGluZXNbaV07CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC93YWxt ZXRob2RzLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvd2FsbWV0aG9kcy5jCmluZGV4IDQ3 NjY3M2NmNzI5Li4zYTZiM2I1ZjQ1YiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFj a3VwL3dhbG1ldGhvZHMuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvd2FsbWV0aG9k cy5jCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIGNoYXIgKgogZGlyX2dldF9maWxlX25h bWUoV2FsV3JpdGVNZXRob2QgKnd3bWV0aG9kLAogCQkJCSAgY29uc3QgY2hhciAqcGF0aG5h bWUsIGNvbnN0IGNoYXIgKnRlbXBfc3VmZml4KQogewotCWNoYXIJICAgKmZpbGVuYW1lID0g cGdfbWFsbG9jMChNQVhQR1BBVEggKiBzaXplb2YoY2hhcikpOworCWNoYXIJICAgKmZpbGVu YW1lID0gcGdfbWFsbG9jMF9hcnJheShjaGFyLCBNQVhQR1BBVEgpOwogCiAJc25wcmludGYo ZmlsZW5hbWUsIE1BWFBHUEFUSCwgIiVzJXMlcyIsCiAJCQkgcGF0aG5hbWUsCi0tIAoyLjQ3 LjMKCg== --------------ok9jHNdFk9d4sdQ1mM00LB27 Content-Type: text/x-patch; charset=UTF-8; name="v1-0003-TODO-uint8-vs-char-confusion.patch" Content-Disposition: attachment; filename="v1-0003-TODO-uint8-vs-char-confusion.patch" Content-Transfer-Encoding: base64 RnJvbSAyMDU2YTFmNmMxNDIyZTBmMmE1NmI0YTgzMmRkZjkyZWNmODI1NmZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogRnJpLCAyNyBGZWIgMjAyNiAwMjoxMTozMCArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjEgMy8zXSBUT0RPOiB1aW50OCB2cyBjaGFyIGNvbmZ1c2lvbgoKLS0tCiBzcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jIGIvc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKaW5kZXggY2JjOTQ0NzM4NGYuLjU2MmU5 MjEyZTMwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnli YWNrdXAuYworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAu YwpAQCAtMTAwNyw3ICsxMDA3LDcgQEAgdmVyaWZ5X3Rhcl9maWxlKHZlcmlmaWVyX2NvbnRl eHQgKmNvbnRleHQsIGNoYXIgKnJlbHBhdGgsIGNoYXIgKmZ1bGxwYXRoLAogCQlyZXR1cm47 CiAJfQogCi0JYnVmZmVyID0gcGdfbWFsbG9jKFJFQURfQ0hVTktfU0laRSAqIHNpemVvZih1 aW50OCkpOworCWJ1ZmZlciA9IHBnX21hbGxvY19hcnJheShjaGFyLCBSRUFEX0NIVU5LX1NJ WkUpOwogCiAJLyogUGVyZm9ybSB0aGUgcmVhZHMgKi8KIAl3aGlsZSAoKHJjID0gcmVhZChm ZCwgYnVmZmVyLCBSRUFEX0NIVU5LX1NJWkUpKSA+IDApCi0tIAoyLjQ3LjMKCg== --------------ok9jHNdFk9d4sdQ1mM00LB27--