From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22213C432C1 for ; Tue, 24 Sep 2019 15:31:24 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DB14720665 for ; Tue, 24 Sep 2019 15:31:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dN7PTuPE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DB14720665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iCmmR-0007rW-Cu; Tue, 24 Sep 2019 15:31:07 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iCmmP-0007r4-W3 for xen-devel@lists.xenproject.org; Tue, 24 Sep 2019 15:31:06 +0000 X-Inumbo-ID: 4af7dce0-dee0-11e9-bf31-bc764e2007e4 Received: from mail-lj1-x244.google.com (unknown [2a00:1450:4864:20::244]) by localhost (Halon) with ESMTPS id 4af7dce0-dee0-11e9-bf31-bc764e2007e4; Tue, 24 Sep 2019 15:30:53 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id y23so2348234lje.9 for ; Tue, 24 Sep 2019 08:30:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sQRBacY7IWJeeQXPRyg+OlUCm3S/btufzJlQQaOIwrY=; b=dN7PTuPEfZu/swbJ4BENv+xHvySzwTp57pMW5yXhIP/EBvompkuSw0Xi1pOlNd25nb VhXsrJluOg/OOPlEkcvtVf8k74XXeWOMbAeV8bZLNu9ZI5oCF1iokNr5zHDMZhuK7IJ9 CNfINWtFCYLF4vpwr0TKaVYZ60gUZshIMt1aRD7UMV/imydgHdPv11gPXAlhPk2EWRX6 YXYcqem83i6YY/faCp9JM2vIHHQKFMW4G4nMiZ9dOF3ZV2BQkaBbyVf7WVktNX3l/gGk rNR4OPv4lWZVtnc6hx3Ur9uyaSFtDC2uZc9UU1Pbe7/mne2G2nBEMi/RxdPav0oG+po2 fuNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sQRBacY7IWJeeQXPRyg+OlUCm3S/btufzJlQQaOIwrY=; b=QB9odalJUBNlM1KgTkxHPeRpgYJXqImaT57qKiknjwN/eqpv5FxrAu4OTyUeCuj5UW PgkP39PnsV1sice3gNdIASPT94UNLKevyGtLHSPjQJW4sZRlAw/o++biooA1P31/WlfY Ugji4GnxWKwGWT642hJF8m4DNq/fid9425+cxOPmdPGMeS6quQGmDVVY7mCoHVZERsxt Mx2VGKUpNUu0XQwSDFfa0TYbRPdpLM/gJz8Jx7kWrLjjZqZMzqxvYP+W2fOgq7eVc67B n6NIHlub5gua6EfIG0JslVXuATWZk3pe3naKmTPqT0kb08Ywh8S9iu6G69Cu7e6FX3pi zVzw== X-Gm-Message-State: APjAAAXQZpgpE3Jl4wfXhW8HyOR3tAdE99yFO7ceNPh68RF6a6E6mpuW JEou+7Xx4xLMxM+fCF1J3bhQOQAbbWE= X-Google-Smtp-Source: APXvYqyNenFd6tU2ijaWmAxnjP/Z4c+kge27jfzseo4ya1NikrUCP9JxciXWb2r6vJM50l8bBXFlKg== X-Received: by 2002:a2e:654a:: with SMTP id z71mr2458830ljb.37.1569339051795; Tue, 24 Sep 2019 08:30:51 -0700 (PDT) Received: from otyshchenko.kyiv.epam.com (ll-74.141.223.85.sovam.net.ua. [85.223.141.74]) by smtp.gmail.com with ESMTPSA id z128sm525818lfa.1.2019.09.24.08.30.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Sep 2019 08:30:51 -0700 (PDT) From: Oleksandr Tyshchenko To: xen-devel@lists.xenproject.org Date: Tue, 24 Sep 2019 18:30:22 +0300 Message-Id: <1569339027-19484-4-git-send-email-olekstysh@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1569339027-19484-1-git-send-email-olekstysh@gmail.com> References: <1569339027-19484-1-git-send-email-olekstysh@gmail.com> Subject: [Xen-devel] [PATCH V5 3/8] xen/common: Introduce _xrealloc function X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: sstabellini@kernel.org, Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Oleksandr Tyshchenko , julien.grall@arm.com, Paul Durrant , Jan Beulich , volodymyr_babchuk@epam.com MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHR5cGUtdW5zYWZlIGZ1bmN0aW9uIHdoaWNoIGJlc2lk ZXMKcmUtYWxsb2NhdGlvbiBoYW5kbGVzIHRoZSBmb2xsb3dpbmcgY29ybmVyIGNhc2VzOgoxLiBp ZiByZXF1ZXN0ZWQgc2l6ZSBpcyB6ZXJvLCBpdCB3aWxsIGJlaGF2ZSBsaWtlIHhmcmVlCjIuIGlm IGluY29taW5nIHBvaW50ZXIgaXMgbm90IHZhbGlkIChOVUxMIG9yIFpFUk9fQkxPQ0tfUFRSKSwK ICAgaXQgd2lsbCBiZWhhdmUgbGlrZSB4bWFsbG9jCgpJZiBib3RoIHBvaW50ZXIgYW5kIHNpemUg YXJlIHZhbGlkIHRoZSBmdW5jdGlvbiB3aWxsIHJlLWFsbG9jYXRlIGFuZApjb3B5IG9ubHkgaWYg cmVxdWVzdGVkIHNpemUgYW5kIGFsaWdubWVudCBkb24ndCBmaXQgaW4gYWxyZWFkeQphbGxvY2F0 ZWQgc3BhY2UuCgpTdWJzZXF1ZW50IHBhdGNoIHdpbGwgYWRkIHR5cGUtc2FmZSBoZWxwZXIgbWFj cm9zLgoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNo Y2hlbmtvQGVwYW0uY29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KQ0M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ0M6 IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDQzogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNv bT4KQ0M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ0M6 IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IFRpbSBEZWVn YW4gPHRpbUB4ZW4ub3JnPgpDQzogV2VpIExpdSA8d2xAeGVuLm9yZz4KQ0M6IFBhdWwgRHVycmFu dCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+CgotLS0KQ2hhbmdlcyBWNCAtPiBWNToKICAgIC0g YXZvaWQgcG9zc2libGUgdHJ1bmNhdGlvbiB3aXRoIGFsbG9jYXRpb25zIG9mIDRHaUIgb3IgYWJv dmUKICAgIC0gaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMgYWRkKHN0cmlwKV9wYWRkaW5nIHRv IGF2b2lkCiAgICAgIGR1cGxpY2F0aW5nIHRoZSBjb2RlCiAgICAtIG9taXQgdGhlIHVubmVjZXNz YXJ5IGNhc3RzLCBjaGFuZ2UgdTMyIHRvIHVpbnQzMl90CiAgICAgIHdoZW4gbW92aW5nIHRoZSBj b2RlCiAgICAtIHVzZSBfeHphbGxvYyBpbnN0ZWFkIG9mIF94bWFsbG9jIHRvIGdldCB0aGUgdGFp bAogICAgICBwb3J0aW9uIHplcm9lZAogICAgLSB1cGRhdGUgcG9pbnRlciBhY2NvcmRpbmcgdG8g dGhlIHJlcXVzdGVkIGFsaWdubWVudAogICAgLSBjb21wYXJlZCBhZ2FpbnN0ICJzaXplIiBpbnN0 ZWFkIG9mICJ0bXBfc2l6ZSIgZm9yIHRoZSBhbGxvY2F0aW9ucwogICAgICBhYm92ZSBQQUdFX1NJ WkUKCkNoYW5nZXMgVjMgLT4gVjQ6CiAgICAtIGFkZCBjaGVjayBmb3IgdGhlIGFsaWdubWVudCBj b21wYXRpYmlsaXR5CiAgICAtIHByb3Blcmx5IGRldGVjdCBjdXJyZW50IHNpemUgKHRha2UgaW50 byB0aGUgYWNjb3VudCBhIHBvc3NpYmxlCiAgICAgIGZha2UgYWxpZ25tZW50IGhlYWRlcikKICAg IC0gdXBkYXRlIGNvbW1lbnQgaW4gY29kZS9wYXRjaCBkZXNjcmlwdGlvbgoKQ2hhbmdlcyBSRkMg LT4gVjM6CiAgICAtIGJlaGF2ZSBsaWtlIHhtYWxsb2MgaWYgaW5jb21pbmcgcG9pbnRlciBpcyBa RVJPX0JMT0NLX1BUUiBvciBOVUxMCiAgICAtIHJldHVybiBaRVJPX0JMT0NLX1BUUiBhZnRlciB4 ZnJlZSBpZiByZXF1ZXN0ZWQgc2l6ZSBpcyB6ZXJvCiAgICAtIGFkZCBwYXRjaCBkZXNjcmlwdGlv bgogICAgLSB1c2UgYWxsb2NhdG9yIGludGVybmFscyB0byByZWNvZ25pemUgY3VycmVudCBzaXpl IG9mCiAgICAgIHRoZSBpbmNvbWluZyBwb2ludGVyCiAgICAtIGRvIG5vdCByZS1hbGxvY2F0ZSBh bmQgY29weSBpZiByZXF1ZXN0ZWQgc2l6ZSBmaXRzIGluIGFscmVhZHkKICAgICAgYWxsb2NhdGVk IHNwYWNlCgogICAuLi4KCiAgIE9yaWdpbmFsIHBhdGNoIHdhcyBpbml0aWFsbHkgcG9zdGVkIGJ5 IFNhbWVlciBHb2VsOgogICBodHRwczovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4t ZGV2ZWwvMjAxNy0wNi9tc2cwMDg1OC5odG1sCgogICBUaGlzIGNvdWxkIGJlIGNvbnNpZGVyZWQg YXMgYW5vdGhlciBhdHRlbXB0IHRvIGFkZCBpdDoKICAgaHR0cHM6Ly93d3cubWFpbC1hcmNoaXZl LmNvbS9rZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnL21zZzIxMzM1Lmh0bWwKCiAgIFtBcyBpdCB3 YXMgcHJldmlvdXNseSBkaXNjdXNzZWQgd2l0aCBKdWxpZW4gaW4gSVJDXQoKICAgVGhlIHJlYXNv biBmb3IgdGhpcyBwYXRjaCB0byBiZSBhbiBSRkMgaXMgdGhhdCBwYXRjaCBpdHNlbGYgaXMgbm90 CiAgIGNvbXBsZXRlbHkgY29ycmVjdCBhbmQgSSBkb24ndCBmdWxseSB1bmRlcnN0YW5kIHdoYXQv aG93IHNob3VsZAogICBiZSBkb25lIGZvciB0aGlzIHBhdGNoIHRvIGJlIGFjY2VwdGVkLiBPciB3 aGV0aGVyIGNvbW11bml0eSBldmVuCiAgIHdhbnRzIHRoaXMgdG8gZ28gaW4uIFNvLCB0byBhdm9p ZCBiaWtlIHNoZWRkaW5nLCB0aGUgZmlyc3QgdGFyZ2V0IGlzCiAgIHRvIGNvbGxlY3QgZmVlZGJh Y2suCgogICBGb3IgZXZlcnlvbmUgd2hvIHdhbnRzIG1vcmUgZGV0YWlscyB3aHkgdGhpcyBpcyBu ZWVkZWQgYW5kCiAgIHdoZXJlIHVzZWQsIHBsZWFzZSBzZWUgbmV4dCBwYXRjaCBvZiB0aGlzIHRo cmVhZDoKICAgImlvbW11L2FybTogQWRkIGxpZ2h0d2VpZ2h0IGlvbW11X2Z3c3BlYyBzdXBwb3J0 IgoKICAgSW4gYSBudXRzaGVsbCwgdGhlIHVwY29taW5nICJpb21tdV9md3NwZWMiIHN1cHBvcnQg b24gQVJNCiAgIGlzIGdvaW5nIHRvIHVzZSB4cmVhbGxvYyB0byBleHBhbmQgYW4gYXJyYXkgZm9y IGRldmljZSBJRHMuCiAgIFdlIHJlYWxseSB3YW50IHRvIGhhdmUgImlvbW11X2Z3c3BlYyIgc3Vw cG9ydCB3aGljaCB3aWxsIGdpdmUgdXMKICAgYSBnZW5lcmljIGFic3RyYWN0IHdheSB0byBhZGQg bmV3IGRldmljZSB0byB0aGUgSU9NTVUgYmFzZWQgb24KICAgdGhlIGdlbmVyaWMgSU9NTVUgRFQg YmluZGluZy4KLS0tCiB4ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jIHwgMTEzICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi94bWFs bG9jLmggfCAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCAxOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jIGIveGVuL2Nv bW1vbi94bWFsbG9jX3Rsc2YuYwppbmRleCBlOThhZDY1Li5hNzk3MDE5IDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jCisrKyBiL3hlbi9jb21tb24veG1hbGxvY190bHNmLmMK QEAgLTU1NCwxMCArNTU0LDQwIEBAIHN0YXRpYyB2b2lkIHRsc2ZfaW5pdCh2b2lkKQogI2RlZmlu ZSBaRVJPX0JMT0NLX1BUUiAoKHZvaWQgKiktMUwpCiAjZW5kaWYKIAorc3RhdGljIHZvaWQgKnN0 cmlwX3BhZGRpbmcodm9pZCAqcCkKK3sKKyAgICBzdHJ1Y3QgYmhkciAqYiA9IHAgLSBCSERSX09W RVJIRUFEOworCisgICAgaWYgKCBiLT5zaXplICYgRlJFRV9CTE9DSyApCisgICAgeworICAgICAg ICBwIC09IGItPnNpemUgJiB+RlJFRV9CTE9DSzsKKyAgICAgICAgYiA9IHAgLSBCSERSX09WRVJI RUFEOworICAgICAgICBBU1NFUlQoIShiLT5zaXplICYgRlJFRV9CTE9DSykpOworICAgIH0KKwor ICAgIHJldHVybiBwOworfQorCitzdGF0aWMgdm9pZCAqYWRkX3BhZGRpbmcodm9pZCAqcCwgdW5z aWduZWQgbG9uZyBhbGlnbikKK3sKKyAgICB1aW50MzJfdCBwYWQ7CisKKyAgICBpZiAoIChwYWQg PSAtKGxvbmcpcCAmIChhbGlnbiAtIDEpKSAhPSAwICkKKyAgICB7CisgICAgICAgIHZvaWQgKnEg PSBwICsgcGFkOworICAgICAgICBzdHJ1Y3QgYmhkciAqYiA9IHEgLSBCSERSX09WRVJIRUFEOwor CisgICAgICAgIEFTU0VSVChxID4gcCk7CisgICAgICAgIGItPnNpemUgPSBwYWQgfCBGUkVFX0JM T0NLOworICAgICAgICBwID0gcTsKKyAgICB9CisKKyAgICByZXR1cm4gcDsKK30KKwogdm9pZCAq X3htYWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduKQogewogICAg IHZvaWQgKnAgPSBOVUxMOwotICAgIHUzMiBwYWQ7CiAKICAgICBBU1NFUlQoIWluX2lycSgpKTsK IApAQCAtNTc4LDE0ICs2MDgsNyBAQCB2b2lkICpfeG1hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUs IHVuc2lnbmVkIGxvbmcgYWxpZ24pCiAgICAgICAgIHJldHVybiB4bWFsbG9jX3dob2xlX3BhZ2Vz KHNpemUgLSBhbGlnbiArIE1FTV9BTElHTiwgYWxpZ24pOwogCiAgICAgLyogQWRkIGFsaWdubWVu dCBwYWRkaW5nLiAqLwotICAgIGlmICggKHBhZCA9IC0obG9uZylwICYgKGFsaWduIC0gMSkpICE9 IDAgKQotICAgIHsKLSAgICAgICAgY2hhciAqcSA9IChjaGFyICopcCArIHBhZDsKLSAgICAgICAg c3RydWN0IGJoZHIgKmIgPSAoc3RydWN0IGJoZHIgKikocSAtIEJIRFJfT1ZFUkhFQUQpOwotICAg ICAgICBBU1NFUlQocSA+IChjaGFyICopcCk7Ci0gICAgICAgIGItPnNpemUgPSBwYWQgfCBGUkVF X0JMT0NLOwotICAgICAgICBwID0gcTsKLSAgICB9CisgICAgcCA9IGFkZF9wYWRkaW5nKHAsIGFs aWduKTsKIAogICAgIEFTU0VSVCgoKHVuc2lnbmVkIGxvbmcpcCAmIChhbGlnbiAtIDEpKSA9PSAw KTsKICAgICByZXR1cm4gcDsKQEAgLTU5OCwxMCArNjIxLDcwIEBAIHZvaWQgKl94emFsbG9jKHVu c2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGlnbikKICAgICByZXR1cm4gcCA/IG1l bXNldChwLCAwLCBzaXplKSA6IHA7CiB9CiAKLXZvaWQgeGZyZWUodm9pZCAqcCkKK3ZvaWQgKl94 cmVhbGxvYyh2b2lkICpwdHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGln bikKIHsKLSAgICBzdHJ1Y3QgYmhkciAqYjsKKyAgICB1bnNpZ25lZCBsb25nIGN1cnJfc2l6ZSwg dG1wX3NpemU7CisgICAgdm9pZCAqcDsKKworICAgIGlmICggIXNpemUgKQorICAgIHsKKyAgICAg ICAgeGZyZWUocHRyKTsKKyAgICAgICAgcmV0dXJuIFpFUk9fQkxPQ0tfUFRSOworICAgIH0KIAor ICAgIGlmICggcHRyID09IE5VTEwgfHwgcHRyID09IFpFUk9fQkxPQ0tfUFRSICkKKyAgICAgICAg cmV0dXJuIF94bWFsbG9jKHNpemUsIGFsaWduKTsKKworICAgIEFTU0VSVCgoYWxpZ24gJiAoYWxp Z24gLSAxKSkgPT0gMCk7CisgICAgaWYgKCBhbGlnbiA8IE1FTV9BTElHTiApCisgICAgICAgIGFs aWduID0gTUVNX0FMSUdOOworCisgICAgdG1wX3NpemUgPSBzaXplICsgYWxpZ24gLSBNRU1fQUxJ R047CisKKyAgICBpZiAoIHRtcF9zaXplIDwgUEFHRV9TSVpFICkKKyAgICAgICAgdG1wX3NpemUg PSAodG1wX3NpemUgPCBNSU5fQkxPQ0tfU0laRSkgPyBNSU5fQkxPQ0tfU0laRSA6CisgICAgICAg ICAgICBST1VORFVQX1NJWkUodG1wX3NpemUpOworCisgICAgaWYgKCAhKCh1bnNpZ25lZCBsb25n KXB0ciAmIChQQUdFX1NJWkUgLSAxKSkgKQorICAgIHsKKyAgICAgICAgY3Vycl9zaXplID0gKHVu c2lnbmVkIGxvbmcpUEZOX09SREVSKHZpcnRfdG9fcGFnZShwdHIpKSA8PCBQQUdFX1NISUZUOwor CisgICAgICAgIGlmICggc2l6ZSA8PSBjdXJyX3NpemUgJiYgKCh1bnNpZ25lZCBsb25nKXB0ciAm IChhbGlnbiAtIDEpKSA9PSAwICkKKyAgICAgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorICAg IGVsc2UKKyAgICB7CisgICAgICAgIHN0cnVjdCBiaGRyICpiOworCisgICAgICAgIC8qIFN0cmlw IGFsaWdubWVudCBwYWRkaW5nLiAqLworICAgICAgICBwID0gc3RyaXBfcGFkZGluZyhwdHIpOwor CisgICAgICAgIGIgPSBwIC0gQkhEUl9PVkVSSEVBRDsKKyAgICAgICAgY3Vycl9zaXplID0gYi0+ c2l6ZSAmIEJMT0NLX1NJWkVfTUFTSzsKKworICAgICAgICBpZiAoIHRtcF9zaXplIDw9IGN1cnJf c2l6ZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIEFkZCBhbGlnbm1lbnQgcGFkZGluZy4g Ki8KKyAgICAgICAgICAgIHAgPSBhZGRfcGFkZGluZyhwLCBhbGlnbik7CisKKyAgICAgICAgICAg IEFTU0VSVCgoKHVuc2lnbmVkIGxvbmcpcCAmIChhbGlnbiAtIDEpKSA9PSAwKTsKKworICAgICAg ICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwID0gX3h6YWxsb2Moc2l6 ZSwgYWxpZ24pOworICAgIGlmICggcCApCisgICAgeworICAgICAgICBtZW1jcHkocCwgcHRyLCBt aW4oY3Vycl9zaXplLCBzaXplKSk7CisgICAgICAgIHhmcmVlKHB0cik7CisgICAgfQorCisgICAg cmV0dXJuIHA7Cit9CisKK3ZvaWQgeGZyZWUodm9pZCAqcCkKK3sKICAgICBpZiAoIHAgPT0gTlVM TCB8fCBwID09IFpFUk9fQkxPQ0tfUFRSICkKICAgICAgICAgcmV0dXJuOwogCkBAIC02MjYsMTMg KzcwOSw3IEBAIHZvaWQgeGZyZWUodm9pZCAqcCkKICAgICB9CiAKICAgICAvKiBTdHJpcCBhbGln bm1lbnQgcGFkZGluZy4gKi8KLSAgICBiID0gKHN0cnVjdCBiaGRyICopKChjaGFyICopcCAtIEJI RFJfT1ZFUkhFQUQpOwotICAgIGlmICggYi0+c2l6ZSAmIEZSRUVfQkxPQ0sgKQotICAgIHsKLSAg ICAgICAgcCA9IChjaGFyICopcCAtIChiLT5zaXplICYgfkZSRUVfQkxPQ0spOwotICAgICAgICBi ID0gKHN0cnVjdCBiaGRyICopKChjaGFyICopcCAtIEJIRFJfT1ZFUkhFQUQpOwotICAgICAgICBB U1NFUlQoIShiLT5zaXplICYgRlJFRV9CTE9DSykpOwotICAgIH0KKyAgICBwID0gc3RyaXBfcGFk ZGluZyhwKTsKIAogICAgIHhtZW1fcG9vbF9mcmVlKHAsIHhlbnBvb2wpOwogfQpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGVuL3htYWxsb2MuaCBiL3hlbi9pbmNsdWRlL3hlbi94bWFsbG9jLmgK aW5kZXggZjA3NWQyZC4uODMxMTUyZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3htYWxs b2MuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oCkBAIC01MSw2ICs1MSw3IEBAIGV4 dGVybiB2b2lkIHhmcmVlKHZvaWQgKik7CiAvKiBVbmRlcmx5aW5nIGZ1bmN0aW9ucyAqLwogZXh0 ZXJuIHZvaWQgKl94bWFsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGln bik7CiBleHRlcm4gdm9pZCAqX3h6YWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBs b25nIGFsaWduKTsKK2V4dGVybiB2b2lkICpfeHJlYWxsb2Modm9pZCAqcHRyLCB1bnNpZ25lZCBs b25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24pOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgKl94 bWFsbG9jX2FycmF5KAogICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGln biwgdW5zaWduZWQgbG9uZyBudW0pCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=