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.4 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 A565AC432C2 for ; Thu, 26 Sep 2019 11:21:44 +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 68369217F4 for ; Thu, 26 Sep 2019 11:21:44 +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="sJl6yxyQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 68369217F4 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 1iDRpk-0008MJ-8I; Thu, 26 Sep 2019 11:21:16 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iDRpi-0008KA-Up for xen-devel@lists.xenproject.org; Thu, 26 Sep 2019 11:21:14 +0000 X-Inumbo-ID: b5fcc440-e04f-11e9-8628-bc764e2007e4 Received: from mail-lj1-x243.google.com (unknown [2a00:1450:4864:20::243]) by localhost (Halon) with ESMTPS id b5fcc440-e04f-11e9-8628-bc764e2007e4; Thu, 26 Sep 2019 11:20:57 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id j19so1779500lja.1 for ; Thu, 26 Sep 2019 04:20:57 -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=0xbudc/HCLzyOpGQnpxjx2YsmpcxWIW14AxzgKs21n8=; b=sJl6yxyQmI2gEjZ2odWCzoIaGQy7bypnuK0jIckZEHMu80svlZvQqnHZQe2f7k2QZF PUmMw0+BxMLF/Q8thpzycPj+KmpDxDNtidAjQ22hp0IQ9vT0HM51xNln38eywDn6zO3f BxZg7YXZD1YWWNw5J6ofrFybHyjsxaGrwth1y0tJa4QG0R0kxJxGDBlSQ+WKDXmX9s3R r8K/G5DuWP+bLTd1JUuvJJKi+URWJ9g1zjcoVvRbikGw9wUt7rLugXmEMc00CKhqpXFJ RZERqwgVm0GthSDi/W2mmqExPK7XUbmruNjmmrBWywDJJL/e0wbpzbCiJXjS9q7fOpJi TGfQ== 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=0xbudc/HCLzyOpGQnpxjx2YsmpcxWIW14AxzgKs21n8=; b=fv8ZjXFYDHAhOqg7NHzl08go/S0h+c8oNaYWhV3RQn1kXWzoB8HvL67t+0uocpAgfH OICMDFilOzt5sCnTUD+LRiWbhmfnoeu8sayhXdDRjzeldkDhFUyMZX+TS2yIHr9kkhiG FoB7y/7O3sf4OM8E8r27nwGXxc4xmKdLVLN9i7Hi34Zowori8WKta53Ak8ZnhClaYVaW arc1UX3pguntJ3Fr1E66zRfPoVZSx4FtUIFICKvd2CCfgSTfREHXc+0zMD0xp/HWO6yU ZFuMjtPg4FvAsXcBPvMMHJTMcJT6bkdsQoeQAnZ2EX2jtsjCSumDUfCPZ3pQLQ3H2sUB 2aww== X-Gm-Message-State: APjAAAVNl5faswiW251F6/gMjHY9N0nXRtw7AZxRyQBTUYN3+FuNTxK+ ChKawaaaFNPRxcCEL8edV+0YVasNO2c= X-Google-Smtp-Source: APXvYqw+dSxa1heh1KyG+X237dfFH79nFG3ChXG4O9C99GDWuEEStju/fF4F516QPMwo6TnqfZv6mw== X-Received: by 2002:a2e:9615:: with SMTP id v21mr2207141ljh.46.1569496856534; Thu, 26 Sep 2019 04:20:56 -0700 (PDT) Received: from otyshchenko.kyiv.epam.com (ll-22.209.223.85.sovam.net.ua. [85.223.209.22]) by smtp.gmail.com with ESMTPSA id n4sm526810lfi.63.2019.09.26.04.20.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 26 Sep 2019 04:20:55 -0700 (PDT) From: Oleksandr Tyshchenko To: xen-devel@lists.xenproject.org Date: Thu, 26 Sep 2019 14:20:29 +0300 Message-Id: <1569496834-7796-4-git-send-email-olekstysh@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1569496834-7796-1-git-send-email-olekstysh@gmail.com> References: <1569496834-7796-1-git-send-email-olekstysh@gmail.com> Subject: [Xen-devel] [PATCH V6 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+CgotLS0KQ2hhbmdlcyBWNSAtPiBWNjoKICAgIC0g Y2hhbmdlIHVpbnQzMl90IHRvIHVuc2lnbmVkIGludCBmb3IgInBhZCIgaW4gYWRkX3BhZGRpbmco KQogICAgLSBjaGFuZ2UgYmFjayB0byBfeG1hbGxvYwogICAgLSBtb3ZlIHRtcF9zaXplIGRlY2xh cmF0aW9uL2NhbGN1bGF0aW9uIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrCiAgICAtIHVzZSAi ISIgb3ZlciAiPT0gMCIKCkNoYW5nZXMgVjQgLT4gVjU6CiAgICAtIGF2b2lkIHBvc3NpYmxlIHRy dW5jYXRpb24gd2l0aCBhbGxvY2F0aW9ucyBvZiA0R2lCIG9yIGFib3ZlCiAgICAtIGludHJvZHVj ZSBoZWxwZXIgZnVuY3Rpb25zIGFkZChzdHJpcClfcGFkZGluZyB0byBhdm9pZAogICAgICBkdXBs aWNhdGluZyB0aGUgY29kZQogICAgLSBvbWl0IHRoZSB1bm5lY2Vzc2FyeSBjYXN0cywgY2hhbmdl IHUzMiB0byB1aW50MzJfdAogICAgICB3aGVuIG1vdmluZyB0aGUgY29kZQogICAgLSB1c2UgX3h6 YWxsb2MgaW5zdGVhZCBvZiBfeG1hbGxvYyB0byBnZXQgdGhlIHRhaWwKICAgICAgcG9ydGlvbiB6 ZXJvZWQKICAgIC0gdXBkYXRlIHBvaW50ZXIgYWNjb3JkaW5nIHRvIHRoZSByZXF1c3RlZCBhbGln bm1lbnQKICAgIC0gY29tcGFyZWQgYWdhaW5zdCAic2l6ZSIgaW5zdGVhZCBvZiAidG1wX3NpemUi IGZvciB0aGUgYWxsb2NhdGlvbnMKICAgICAgYWJvdmUgUEFHRV9TSVpFCgpDaGFuZ2VzIFYzIC0+ IFY0OgogICAgLSBhZGQgY2hlY2sgZm9yIHRoZSBhbGlnbm1lbnQgY29tcGF0aWJpbGl0eQogICAg LSBwcm9wZXJseSBkZXRlY3QgY3VycmVudCBzaXplICh0YWtlIGludG8gdGhlIGFjY291bnQgYSBw b3NzaWJsZQogICAgICBmYWtlIGFsaWdubWVudCBoZWFkZXIpCiAgICAtIHVwZGF0ZSBjb21tZW50 IGluIGNvZGUvcGF0Y2ggZGVzY3JpcHRpb24KCkNoYW5nZXMgUkZDIC0+IFYzOgogICAgLSBiZWhh dmUgbGlrZSB4bWFsbG9jIGlmIGluY29taW5nIHBvaW50ZXIgaXMgWkVST19CTE9DS19QVFIgb3Ig TlVMTAogICAgLSByZXR1cm4gWkVST19CTE9DS19QVFIgYWZ0ZXIgeGZyZWUgaWYgcmVxdWVzdGVk IHNpemUgaXMgemVybwogICAgLSBhZGQgcGF0Y2ggZGVzY3JpcHRpb24KICAgIC0gdXNlIGFsbG9j YXRvciBpbnRlcm5hbHMgdG8gcmVjb2duaXplIGN1cnJlbnQgc2l6ZSBvZgogICAgICB0aGUgaW5j b21pbmcgcG9pbnRlcgogICAgLSBkbyBub3QgcmUtYWxsb2NhdGUgYW5kIGNvcHkgaWYgcmVxdWVz dGVkIHNpemUgZml0cyBpbiBhbHJlYWR5CiAgICAgIGFsbG9jYXRlZCBzcGFjZQoKICAgLi4uCgog ICBPcmlnaW5hbCBwYXRjaCB3YXMgaW5pdGlhbGx5IHBvc3RlZCBieSBTYW1lZXIgR29lbDoKICAg aHR0cHM6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTctMDYvbXNn MDA4NTguaHRtbAoKICAgVGhpcyBjb3VsZCBiZSBjb25zaWRlcmVkIGFzIGFub3RoZXIgYXR0ZW1w dCB0byBhZGQgaXQ6CiAgIGh0dHBzOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20va2V4ZWNAbGlzdHMu aW5mcmFkZWFkLm9yZy9tc2cyMTMzNS5odG1sCgogICBbQXMgaXQgd2FzIHByZXZpb3VzbHkgZGlz Y3Vzc2VkIHdpdGggSnVsaWVuIGluIElSQ10KCiAgIFRoZSByZWFzb24gZm9yIHRoaXMgcGF0Y2gg dG8gYmUgYW4gUkZDIGlzIHRoYXQgcGF0Y2ggaXRzZWxmIGlzIG5vdAogICBjb21wbGV0ZWx5IGNv cnJlY3QgYW5kIEkgZG9uJ3QgZnVsbHkgdW5kZXJzdGFuZCB3aGF0L2hvdyBzaG91bGQKICAgYmUg ZG9uZSBmb3IgdGhpcyBwYXRjaCB0byBiZSBhY2NlcHRlZC4gT3Igd2hldGhlciBjb21tdW5pdHkg ZXZlbgogICB3YW50cyB0aGlzIHRvIGdvIGluLiBTbywgdG8gYXZvaWQgYmlrZSBzaGVkZGluZywg dGhlIGZpcnN0IHRhcmdldCBpcwogICB0byBjb2xsZWN0IGZlZWRiYWNrLgoKICAgRm9yIGV2ZXJ5 b25lIHdobyB3YW50cyBtb3JlIGRldGFpbHMgd2h5IHRoaXMgaXMgbmVlZGVkIGFuZAogICB3aGVy ZSB1c2VkLCBwbGVhc2Ugc2VlIG5leHQgcGF0Y2ggb2YgdGhpcyB0aHJlYWQ6CiAgICJpb21tdS9h cm06IEFkZCBsaWdodHdlaWdodCBpb21tdV9md3NwZWMgc3VwcG9ydCIKCiAgIEluIGEgbnV0c2hl bGwsIHRoZSB1cGNvbWluZyAiaW9tbXVfZndzcGVjIiBzdXBwb3J0IG9uIEFSTQogICBpcyBnb2lu ZyB0byB1c2UgeHJlYWxsb2MgdG8gZXhwYW5kIGFuIGFycmF5IGZvciBkZXZpY2UgSURzLgogICBX ZSByZWFsbHkgd2FudCB0byBoYXZlICJpb21tdV9md3NwZWMiIHN1cHBvcnQgd2hpY2ggd2lsbCBn aXZlIHVzCiAgIGEgZ2VuZXJpYyBhYnN0cmFjdCB3YXkgdG8gYWRkIG5ldyBkZXZpY2UgdG8gdGhl IElPTU1VIGJhc2VkIG9uCiAgIHRoZSBnZW5lcmljIElPTU1VIERUIGJpbmRpbmcuCi0tLQogeGVu L2NvbW1vbi94bWFsbG9jX3Rsc2YuYyB8IDExNCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oIHwgICAxICsKIDIg ZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi94bWFsbG9jX3Rsc2YuYyBiL3hlbi9jb21tb24veG1hbGxvY190bHNm LmMKaW5kZXggMWU4ZDcyZC4uN2FiMmIzYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi94bWFsbG9j X3Rsc2YuYworKysgYi94ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jCkBAIC01NDksMTAgKzU0OSw0 MCBAQCBzdGF0aWMgdm9pZCB0bHNmX2luaXQodm9pZCkKICAqIHhtYWxsb2MoKQogICovCiAKK3N0 YXRpYyB2b2lkICpzdHJpcF9wYWRkaW5nKHZvaWQgKnApCit7CisgICAgc3RydWN0IGJoZHIgKmIg PSBwIC0gQkhEUl9PVkVSSEVBRDsKKworICAgIGlmICggYi0+c2l6ZSAmIEZSRUVfQkxPQ0sgKQor ICAgIHsKKyAgICAgICAgcCAtPSBiLT5zaXplICYgfkZSRUVfQkxPQ0s7CisgICAgICAgIGIgPSBw IC0gQkhEUl9PVkVSSEVBRDsKKyAgICAgICAgQVNTRVJUKCEoYi0+c2l6ZSAmIEZSRUVfQkxPQ0sp KTsKKyAgICB9CisKKyAgICByZXR1cm4gcDsKK30KKworc3RhdGljIHZvaWQgKmFkZF9wYWRkaW5n KHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgYWxpZ24pCit7CisgICAgdW5zaWduZWQgaW50IHBhZDsK KworICAgIGlmICggKHBhZCA9IC0obG9uZylwICYgKGFsaWduIC0gMSkpICE9IDAgKQorICAgIHsK KyAgICAgICAgdm9pZCAqcSA9IHAgKyBwYWQ7CisgICAgICAgIHN0cnVjdCBiaGRyICpiID0gcSAt IEJIRFJfT1ZFUkhFQUQ7CisKKyAgICAgICAgQVNTRVJUKHEgPiBwKTsKKyAgICAgICAgYi0+c2l6 ZSA9IHBhZCB8IEZSRUVfQkxPQ0s7CisgICAgICAgIHAgPSBxOworICAgIH0KKworICAgIHJldHVy biBwOworfQorCiB2b2lkICpfeG1hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxv bmcgYWxpZ24pCiB7CiAgICAgdm9pZCAqcCA9IE5VTEw7Ci0gICAgdTMyIHBhZDsKIAogICAgIEFT U0VSVCghaW5faXJxKCkpOwogCkBAIC01NzMsMTQgKzYwMyw3IEBAIHZvaWQgKl94bWFsbG9jKHVu c2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGlnbikKICAgICAgICAgcmV0dXJuIHht YWxsb2Nfd2hvbGVfcGFnZXMoc2l6ZSAtIGFsaWduICsgTUVNX0FMSUdOLCBhbGlnbik7CiAKICAg ICAvKiBBZGQgYWxpZ25tZW50IHBhZGRpbmcuICovCi0gICAgaWYgKCAocGFkID0gLShsb25nKXAg JiAoYWxpZ24gLSAxKSkgIT0gMCApCi0gICAgewotICAgICAgICBjaGFyICpxID0gKGNoYXIgKilw ICsgcGFkOwotICAgICAgICBzdHJ1Y3QgYmhkciAqYiA9IChzdHJ1Y3QgYmhkciAqKShxIC0gQkhE Ul9PVkVSSEVBRCk7Ci0gICAgICAgIEFTU0VSVChxID4gKGNoYXIgKilwKTsKLSAgICAgICAgYi0+ c2l6ZSA9IHBhZCB8IEZSRUVfQkxPQ0s7Ci0gICAgICAgIHAgPSBxOwotICAgIH0KKyAgICBwID0g YWRkX3BhZGRpbmcocCwgYWxpZ24pOwogCiAgICAgQVNTRVJUKCgodW5zaWduZWQgbG9uZylwICYg KGFsaWduIC0gMSkpID09IDApOwogICAgIHJldHVybiBwOwpAQCAtNTkzLDEwICs2MTYsNzEgQEAg dm9pZCAqX3h6YWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduKQog ICAgIHJldHVybiBwID8gbWVtc2V0KHAsIDAsIHNpemUpIDogcDsKIH0KIAotdm9pZCB4ZnJlZSh2 b2lkICpwKQordm9pZCAqX3hyZWFsbG9jKHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyBzaXplLCB1 bnNpZ25lZCBsb25nIGFsaWduKQogewotICAgIHN0cnVjdCBiaGRyICpiOworICAgIHVuc2lnbmVk IGxvbmcgY3Vycl9zaXplOworICAgIHZvaWQgKnA7CisKKyAgICBpZiAoICFzaXplICkKKyAgICB7 CisgICAgICAgIHhmcmVlKHB0cik7CisgICAgICAgIHJldHVybiBaRVJPX0JMT0NLX1BUUjsKKyAg ICB9CiAKKyAgICBpZiAoIHB0ciA9PSBOVUxMIHx8IHB0ciA9PSBaRVJPX0JMT0NLX1BUUiApCisg ICAgICAgIHJldHVybiBfeG1hbGxvYyhzaXplLCBhbGlnbik7CisKKyAgICBBU1NFUlQoIShhbGln biAmIChhbGlnbiAtIDEpKSk7CisgICAgaWYgKCBhbGlnbiA8IE1FTV9BTElHTiApCisgICAgICAg IGFsaWduID0gTUVNX0FMSUdOOworCisgICAgaWYgKCAhKCh1bnNpZ25lZCBsb25nKXB0ciAmIChQ QUdFX1NJWkUgLSAxKSkgKQorICAgIHsKKyAgICAgICAgY3Vycl9zaXplID0gKHVuc2lnbmVkIGxv bmcpUEZOX09SREVSKHZpcnRfdG9fcGFnZShwdHIpKSA8PCBQQUdFX1NISUZUOworCisgICAgICAg IGlmICggc2l6ZSA8PSBjdXJyX3NpemUgJiYgISgodW5zaWduZWQgbG9uZylwdHIgJiAoYWxpZ24g LSAxKSkgKQorICAgICAgICAgICAgcmV0dXJuIHB0cjsKKyAgICB9CisgICAgZWxzZQorICAgIHsK KyAgICAgICAgdW5zaWduZWQgbG9uZyB0bXBfc2l6ZTsKKyAgICAgICAgc3RydWN0IGJoZHIgKmI7 CisKKyAgICAgICAgdG1wX3NpemUgPSBzaXplICsgYWxpZ24gLSBNRU1fQUxJR047CisKKyAgICAg ICAgaWYgKCB0bXBfc2l6ZSA8IFBBR0VfU0laRSApCisgICAgICAgICAgICB0bXBfc2l6ZSA9ICh0 bXBfc2l6ZSA8IE1JTl9CTE9DS19TSVpFKSA/IE1JTl9CTE9DS19TSVpFIDoKKyAgICAgICAgICAg ICAgICBST1VORFVQX1NJWkUodG1wX3NpemUpOworCisgICAgICAgIC8qIFN0cmlwIGFsaWdubWVu dCBwYWRkaW5nLiAqLworICAgICAgICBwID0gc3RyaXBfcGFkZGluZyhwdHIpOworCisgICAgICAg IGIgPSBwIC0gQkhEUl9PVkVSSEVBRDsKKyAgICAgICAgY3Vycl9zaXplID0gYi0+c2l6ZSAmIEJM T0NLX1NJWkVfTUFTSzsKKworICAgICAgICBpZiAoIHRtcF9zaXplIDw9IGN1cnJfc2l6ZSApCisg ICAgICAgIHsKKyAgICAgICAgICAgIC8qIEFkZCBhbGlnbm1lbnQgcGFkZGluZy4gKi8KKyAgICAg ICAgICAgIHAgPSBhZGRfcGFkZGluZyhwLCBhbGlnbik7CisKKyAgICAgICAgICAgIEFTU0VSVCgh KCh1bnNpZ25lZCBsb25nKXAgJiAoYWxpZ24gLSAxKSkpOworCisgICAgICAgICAgICByZXR1cm4g cDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHAgPSBfeG1hbGxvYyhzaXplLCBhbGlnbik7Cisg ICAgaWYgKCBwICkKKyAgICB7CisgICAgICAgIG1lbWNweShwLCBwdHIsIG1pbihjdXJyX3NpemUs IHNpemUpKTsKKyAgICAgICAgeGZyZWUocHRyKTsKKyAgICB9CisKKyAgICByZXR1cm4gcDsKK30K Kwordm9pZCB4ZnJlZSh2b2lkICpwKQorewogICAgIGlmICggcCA9PSBOVUxMIHx8IHAgPT0gWkVS T19CTE9DS19QVFIgKQogICAgICAgICByZXR1cm47CiAKQEAgLTYyMSwxMyArNzA1LDcgQEAgdm9p ZCB4ZnJlZSh2b2lkICpwKQogICAgIH0KIAogICAgIC8qIFN0cmlwIGFsaWdubWVudCBwYWRkaW5n LiAqLwotICAgIGIgPSAoc3RydWN0IGJoZHIgKikoKGNoYXIgKilwIC0gQkhEUl9PVkVSSEVBRCk7 Ci0gICAgaWYgKCBiLT5zaXplICYgRlJFRV9CTE9DSyApCi0gICAgewotICAgICAgICBwID0gKGNo YXIgKilwIC0gKGItPnNpemUgJiB+RlJFRV9CTE9DSyk7Ci0gICAgICAgIGIgPSAoc3RydWN0IGJo ZHIgKikoKGNoYXIgKilwIC0gQkhEUl9PVkVSSEVBRCk7Ci0gICAgICAgIEFTU0VSVCghKGItPnNp emUgJiBGUkVFX0JMT0NLKSk7Ci0gICAgfQorICAgIHAgPSBzdHJpcF9wYWRkaW5nKHApOwogCiAg ICAgeG1lbV9wb29sX2ZyZWUocCwgeGVucG9vbCk7CiB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94ZW4veG1hbGxvYy5oIGIveGVuL2luY2x1ZGUveGVuL3htYWxsb2MuaAppbmRleCBmMDc1ZDJk Li44MzExNTJmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oCisrKyBiL3hl bi9pbmNsdWRlL3hlbi94bWFsbG9jLmgKQEAgLTUxLDYgKzUxLDcgQEAgZXh0ZXJuIHZvaWQgeGZy ZWUodm9pZCAqKTsKIC8qIFVuZGVybHlpbmcgZnVuY3Rpb25zICovCiBleHRlcm4gdm9pZCAqX3ht YWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduKTsKIGV4dGVybiB2 b2lkICpfeHphbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24pOwor ZXh0ZXJuIHZvaWQgKl94cmVhbGxvYyh2b2lkICpwdHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5z aWduZWQgbG9uZyBhbGlnbik7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCAqX3htYWxsb2NfYXJyYXko CiAgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduLCB1bnNpZ25lZCBs b25nIG51bSkKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==