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 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BE9B8C4345F for ; Sat, 27 Apr 2024 01:00:08 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s0WPj-00076a-Ov; Fri, 26 Apr 2024 20:59:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s0WPh-00075m-JG for grub-devel@gnu.org; Fri, 26 Apr 2024 20:59:37 -0400 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s0WPf-0001FL-FV for grub-devel@gnu.org; Fri, 26 Apr 2024 20:59:37 -0400 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-2def8e58471so38624921fa.0 for ; Fri, 26 Apr 2024 17:59:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714179573; x=1714784373; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=5pLAunFrjCDIU6akPuERWL6Q0sjOwxkttkHlimLzQlU=; b=Yo7x1pFIIEIxOka7jYTqAOfng674aHCLbORzfX5oZKXWruurLLj7WQOB/P2RFaCV/Q EjGzcUm0OWGD1unjoVU3AiWbBH7hTkRb8Nk2wtb0sDN1+BDFaqkeNKL4DqB/RNSR+fQS BN97j3mwPAwY6NIQfmXIFlY8RcP1Aj8qIcLxLwUFwzLBSMdFk26TVSSK1DjlGez29mfs Btix+6Ec0Spqm+qWZSY81ib/cUh6MUsMcYeOFQWP2HgIJxI0h38Qn6ml2r8/ZlvObNmO TsoCvKxQRiej+/3bbIVYidCphMWsW5gv3Rjpizu0DkERSJbJF8wvVugV6yn1JuKaO1ou EmTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714179573; x=1714784373; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=5pLAunFrjCDIU6akPuERWL6Q0sjOwxkttkHlimLzQlU=; b=tr37/Udcs5jJGuE4dfcRJZFRzFLYXHA0pFrOAqq6f9sI+GrWaZfySXBjLPTREpL2Z1 beecXB5vFBeW9yOjna9f327xMufNj2Sed65liHq04dOb5mWkJG8VghYsIL+NqIVgIIgD nk1kjrVifUd6A9oZMmSyjSRdhqLg/gvQUVTOj2R6kSnSqH92MXp8sEsh6AKdLqih0iIh jiDFQZtM25FLYBX4dy/uIt9XxtFJDkNGcnDznP9Q+F1tdLCBbJvR9fYVcl5id/8gHt5p JAJ8hnW6NNPBlJP7H3cxPddvB2t6VOAkienGwY7wJsR5RWu6Rg9UPg/+rM/FPXe34nhQ PjMQ== X-Gm-Message-State: AOJu0YyjespUVWr1nS7WZ6Yy6S6ZY4p6g6PyuEIHLJ6Lq9sojcpQM6sr QY9X9eTYqE7EMNDdM20J7oSjlrCFt62u/4dYqBsS69ZYbqq3PQkGohpW0HeJTdmIqkDv1d9gk1X Fz+YlPgJEf8Gd9Qh0heRgkvLvCzq4HLc3 X-Google-Smtp-Source: AGHT+IFfRIbs46xVUQaI1nKpOpl2xrcVIFmw5tLKdfU5W/bvseXLLSbNsX/LooArEuOqykedGypwL0z2UiZyOKJbRME= X-Received: by 2002:a2e:a99e:0:b0:2d8:6a04:3bcd with SMTP id x30-20020a2ea99e000000b002d86a043bcdmr3822325ljq.3.1714179573003; Fri, 26 Apr 2024 17:59:33 -0700 (PDT) MIME-Version: 1.0 From: Patrick Plenefisch Date: Fri, 26 Apr 2024 20:59:21 -0400 Message-ID: Subject: [PATCH 1/2 v2] LVM Cachevol and Integrity volumes break entire LVM VG To: The development of GNU GRUB Received-SPF: pass client-ip=2a00:1450:4864:20::22f; envelope-from=simonpatp@gmail.com; helo=mail-lj1-x22f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org RnJvbSA0MjI1MmYyNTNhYzY4NWJiYzdjZWExZjVjODkxNDZlZWVhYTM2NGYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXRyaWNrIFBsZW5lZmlzY2ggPHNpbW9ucGF0cEBnbWFpbC5j b20+CkRhdGU6IFN1biwgMTggRmViIDIwMjQgMTg6Mjk6NDMgLTA1MDAKU3ViamVjdDogW1BBVENI IDEvMl0gZGlzay9sdm06IE1ha2UgY2FjaGVfbHYgbW9yZSBnZW5lcmljIGFzCiBpZ25vcmVkX2Zl YXR1cmVfbHYKClNpZ25lZC1vZmYtYnk6IFBhdHJpY2sgUGxlbmVmaXNjaCA8c2ltb25wYXRwQGdt YWlsLmNvbT4KLS0tCiBncnViLWNvcmUvZGlzay9sdm0uYyB8IDE3OSArKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzcgaW5zZXJ0aW9u cygrKSwgMTAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9kaXNrL2x2bS5j IGIvZ3J1Yi1jb3JlL2Rpc2svbHZtLmMKaW5kZXggNzk0MjQ4NTQwLi4xMGJjOTY1YTQgMTAwNjQ0 Ci0tLSBhL2dydWItY29yZS9kaXNrL2x2bS5jCisrKyBiL2dydWItY29yZS9kaXNrL2x2bS5jCkBA IC0zNCwxMiArMzQsMTEgQEAKCiBHUlVCX01PRF9MSUNFTlNFICgiR1BMdjMrIik7Cgotc3RydWN0 IGNhY2hlX2x2CitzdHJ1Y3QgaWdub3JlZF9mZWF0dXJlX2x2CiB7CiAgIHN0cnVjdCBncnViX2Rp c2tmaWx0ZXJfbHYgKmx2OwotICBjaGFyICpjYWNoZV9wb29sOwogICBjaGFyICpvcmlnaW47Ci0g IHN0cnVjdCBjYWNoZV9sdiAqbmV4dDsKKyAgc3RydWN0IGlnbm9yZWRfZmVhdHVyZV9sdiAqbmV4 dDsKIH07CgoKQEAgLTEwNSwzMCArMTA0LDI5IEBAIGdydWJfbHZtX2NoZWNrX2ZsYWcgKGNvbnN0 IGNoYXIgKnAsIGNvbnN0IGNoYXIKKnN0ciwgY29uc3QgY2hhciAqZmxhZykKIH0KCiBzdGF0aWMg dm9pZAotZ3J1Yl9sdm1fZnJlZV9jYWNoZV9sdnMgKHN0cnVjdCBjYWNoZV9sdiAqY2FjaGVfbHZz KQorZ3J1Yl9sdm1fZnJlZV9pZ25vcmVkX2ZlYXR1cmVfbHZzIChzdHJ1Y3QgaWdub3JlZF9mZWF0 dXJlX2x2CippZ25vcmVkX2ZlYXR1cmVfbHZzKQogewotICBzdHJ1Y3QgY2FjaGVfbHYgKmNhY2hl OworICBzdHJ1Y3QgaWdub3JlZF9mZWF0dXJlX2x2ICppZ25vcmVkX2ZlYXR1cmU7CgotICB3aGls ZSAoKGNhY2hlID0gY2FjaGVfbHZzKSkKKyAgd2hpbGUgKChpZ25vcmVkX2ZlYXR1cmUgPSBpZ25v cmVkX2ZlYXR1cmVfbHZzKSkKICAgICB7Ci0gICAgICBjYWNoZV9sdnMgPSBjYWNoZV9sdnMtPm5l eHQ7CisgICAgICBpZ25vcmVkX2ZlYXR1cmVfbHZzID0gaWdub3JlZF9mZWF0dXJlX2x2cy0+bmV4 dDsKCi0gICAgICBpZiAoY2FjaGUtPmx2KQorICAgICAgaWYgKGlnbm9yZWRfZmVhdHVyZS0+bHYp CiAgewogICB1bnNpZ25lZCBpbnQgaTsKCi0gIGZvciAoaSA9IDA7IGkgPCBjYWNoZS0+bHYtPnNl Z21lbnRfY291bnQ7ICsraSkKLSAgICBpZiAoY2FjaGUtPmx2LT5zZWdtZW50cykKLSAgICAgIGdy dWJfZnJlZSAoY2FjaGUtPmx2LT5zZWdtZW50c1tpXS5ub2Rlcyk7Ci0gIGdydWJfZnJlZSAoY2Fj aGUtPmx2LT5zZWdtZW50cyk7Ci0gIGdydWJfZnJlZSAoY2FjaGUtPmx2LT5mdWxsbmFtZSk7Ci0g IGdydWJfZnJlZSAoY2FjaGUtPmx2LT5pZG5hbWUpOwotICBncnViX2ZyZWUgKGNhY2hlLT5sdi0+ bmFtZSk7CisgIGZvciAoaSA9IDA7IGkgPCBpZ25vcmVkX2ZlYXR1cmUtPmx2LT5zZWdtZW50X2Nv dW50OyArK2kpCisgICAgaWYgKGlnbm9yZWRfZmVhdHVyZS0+bHYtPnNlZ21lbnRzKQorICAgICAg Z3J1Yl9mcmVlIChpZ25vcmVkX2ZlYXR1cmUtPmx2LT5zZWdtZW50c1tpXS5ub2Rlcyk7CisgIGdy dWJfZnJlZSAoaWdub3JlZF9mZWF0dXJlLT5sdi0+c2VnbWVudHMpOworICBncnViX2ZyZWUgKGln bm9yZWRfZmVhdHVyZS0+bHYtPmZ1bGxuYW1lKTsKKyAgZ3J1Yl9mcmVlIChpZ25vcmVkX2ZlYXR1 cmUtPmx2LT5pZG5hbWUpOworICBncnViX2ZyZWUgKGlnbm9yZWRfZmVhdHVyZS0+bHYtPm5hbWUp OwogIH0KLSAgICAgIGdydWJfZnJlZSAoY2FjaGUtPmx2KTsKLSAgICAgIGdydWJfZnJlZSAoY2Fj aGUtPm9yaWdpbik7Ci0gICAgICBncnViX2ZyZWUgKGNhY2hlLT5jYWNoZV9wb29sKTsKLSAgICAg IGdydWJfZnJlZSAoY2FjaGUpOworICAgICAgZ3J1Yl9mcmVlIChpZ25vcmVkX2ZlYXR1cmUtPmx2 KTsKKyAgICAgIGdydWJfZnJlZSAoaWdub3JlZF9mZWF0dXJlLT5vcmlnaW4pOworICAgICAgZ3J1 Yl9mcmVlIChpZ25vcmVkX2ZlYXR1cmUpOwogICAgIH0KIH0KCkBAIC0zMjUsNyArMzIzLDcgQEAg Z3J1Yl9sdm1fZGV0ZWN0IChncnViX2Rpc2tfdCBkaXNrLAoKICAgaWYgKCEgdmcpCiAgICAgewot ICAgICAgc3RydWN0IGNhY2hlX2x2ICpjYWNoZV9sdnMgPSBOVUxMOworICAgICAgc3RydWN0IGln bm9yZWRfZmVhdHVyZV9sdiAqaWdub3JlZF9mZWF0dXJlX2x2cyA9IE5VTEw7CgogICAgICAgLyog Rmlyc3QgdGltZSB3ZSBzZWUgdGhpcyB2b2x1bWUgZ3JvdXAuIFdlJ3ZlIHRvIGNyZWF0ZSB0aGUK ICB3aG9sZSB2b2x1bWUgZ3JvdXAgc3RydWN0dXJlLiAqLwpAQCAtODEwLDEwNSArODA4LDgyIEBA IGdydWJfbHZtX2RldGVjdCAoZ3J1Yl9kaXNrX3QgZGlzaywKICAgZWxzZSBpZiAoZ3J1Yl9tZW1j bXAgKHAsICJjYWNoZVwiIiwKICAgIHNpemVvZiAoImNhY2hlXCIiKSAtIDEpID09IDApCiAgICAg ewotICAgICAgc3RydWN0IGNhY2hlX2x2ICpjYWNoZSA9IE5VTEw7CisgICAgICBzdHJ1Y3QgaWdu b3JlZF9mZWF0dXJlX2x2ICppZ25vcmVkX2ZlYXR1cmUgPSBOVUxMOwoKICAgICAgIGNoYXIgKnAy LCAqcDM7CiAgICAgICBncnViX3NpemVfdCBzejsKCi0gICAgICBjYWNoZSA9IGdydWJfemFsbG9j IChzaXplb2YgKCpjYWNoZSkpOwotICAgICAgaWYgKCFjYWNoZSkKLSBnb3RvIGNhY2hlX2x2X2Zh aWw7Ci0gICAgICBjYWNoZS0+bHYgPSBncnViX3phbGxvYyAoc2l6ZW9mICgqY2FjaGUtPmx2KSk7 Ci0gICAgICBpZiAoIWNhY2hlLT5sdikKLSBnb3RvIGNhY2hlX2x2X2ZhaWw7Ci0gICAgICBncnVi X21lbWNweSAoY2FjaGUtPmx2LCBsdiwgc2l6ZW9mICgqY2FjaGUtPmx2KSk7CisgICAgICBpZ25v cmVkX2ZlYXR1cmUgPSBncnViX3phbGxvYyAoc2l6ZW9mICgqaWdub3JlZF9mZWF0dXJlKSk7Cisg ICAgICBpZiAoIWlnbm9yZWRfZmVhdHVyZSkKKyBnb3RvIGlnbm9yZWRfZmVhdHVyZV9sdl9mYWls OworICAgICAgaWdub3JlZF9mZWF0dXJlLT5sdiA9IGdydWJfemFsbG9jIChzaXplb2YgKCppZ25v cmVkX2ZlYXR1cmUtPmx2KSk7CisgICAgICBpZiAoIWlnbm9yZWRfZmVhdHVyZS0+bHYpCisgZ290 byBpZ25vcmVkX2ZlYXR1cmVfbHZfZmFpbDsKKyAgICAgIGdydWJfbWVtY3B5IChpZ25vcmVkX2Zl YXR1cmUtPmx2LCBsdiwgc2l6ZW9mICgqaWdub3JlZF9mZWF0dXJlLT5sdikpOwoKICAgICAgIGlm IChsdi0+ZnVsbG5hbWUpCiAgewotICBjYWNoZS0+bHYtPmZ1bGxuYW1lID0gZ3J1Yl9zdHJkdXAg KGx2LT5mdWxsbmFtZSk7Ci0gIGlmICghY2FjaGUtPmx2LT5mdWxsbmFtZSkKLSAgICBnb3RvIGNh Y2hlX2x2X2ZhaWw7CisgIGlnbm9yZWRfZmVhdHVyZS0+bHYtPmZ1bGxuYW1lID0gZ3J1Yl9zdHJk dXAgKGx2LT5mdWxsbmFtZSk7CisgIGlmICghaWdub3JlZF9mZWF0dXJlLT5sdi0+ZnVsbG5hbWUp CisgICAgZ290byBpZ25vcmVkX2ZlYXR1cmVfbHZfZmFpbDsKICB9CiAgICAgICBpZiAobHYtPmlk bmFtZSkKICB7Ci0gIGNhY2hlLT5sdi0+aWRuYW1lID0gZ3J1Yl9zdHJkdXAgKGx2LT5pZG5hbWUp OwotICBpZiAoIWNhY2hlLT5sdi0+aWRuYW1lKQotICAgIGdvdG8gY2FjaGVfbHZfZmFpbDsKKyAg aWdub3JlZF9mZWF0dXJlLT5sdi0+aWRuYW1lID0gZ3J1Yl9zdHJkdXAgKGx2LT5pZG5hbWUpOwor ICBpZiAoIWlnbm9yZWRfZmVhdHVyZS0+bHYtPmlkbmFtZSkKKyAgICBnb3RvIGlnbm9yZWRfZmVh dHVyZV9sdl9mYWlsOwogIH0KICAgICAgIGlmIChsdi0+bmFtZSkKICB7Ci0gIGNhY2hlLT5sdi0+ bmFtZSA9IGdydWJfc3RyZHVwIChsdi0+bmFtZSk7Ci0gIGlmICghY2FjaGUtPmx2LT5uYW1lKQot ICAgIGdvdG8gY2FjaGVfbHZfZmFpbDsKKyAgaWdub3JlZF9mZWF0dXJlLT5sdi0+bmFtZSA9IGdy dWJfc3RyZHVwIChsdi0+bmFtZSk7CisgIGlmICghaWdub3JlZF9mZWF0dXJlLT5sdi0+bmFtZSkK KyAgICBnb3RvIGlnbm9yZWRfZmVhdHVyZV9sdl9mYWlsOwogIH0KCiAgICAgICBza2lwX2x2ID0g MTsKCi0gICAgICBwMiA9IGdydWJfc3Ryc3RyIChwLCAiY2FjaGVfcG9vbCA9IFwiIik7Ci0gICAg ICBpZiAoIXAyKQotIGdvdG8gY2FjaGVfbHZfZmFpbDsKLQotICAgICAgcDIgPSBncnViX3N0cmNo ciAocDIsICciJyk7Ci0gICAgICBpZiAoIXAyKQotIGdvdG8gY2FjaGVfbHZfZmFpbDsKLQotICAg ICAgcDMgPSArK3AyOwotICAgICAgaWYgKHAzID09IG1kYV9lbmQpCi0gZ290byBjYWNoZV9sdl9m YWlsOwotICAgICAgcDMgPSBncnViX3N0cmNociAocDMsICciJyk7Ci0gICAgICBpZiAoIXAzKQot IGdvdG8gY2FjaGVfbHZfZmFpbDsKLQotICAgICAgc3ogPSBwMyAtIHAyOwotCi0gICAgICBjYWNo ZS0+Y2FjaGVfcG9vbCA9IGdydWJfbWFsbG9jIChzeiArIDEpOwotICAgICAgaWYgKCFjYWNoZS0+ Y2FjaGVfcG9vbCkKLSBnb3RvIGNhY2hlX2x2X2ZhaWw7Ci0gICAgICBncnViX21lbWNweSAoY2Fj aGUtPmNhY2hlX3Bvb2wsIHAyLCBzeik7Ci0gICAgICBjYWNoZS0+Y2FjaGVfcG9vbFtzel0gPSAn XDAnOwoKICAgICAgIHAyID0gZ3J1Yl9zdHJzdHIgKHAsICJvcmlnaW4gPSBcIiIpOwogICAgICAg aWYgKCFwMikKLSBnb3RvIGNhY2hlX2x2X2ZhaWw7CisgZ290byBpZ25vcmVkX2ZlYXR1cmVfbHZf ZmFpbDsKCiAgICAgICBwMiA9IGdydWJfc3RyY2hyIChwMiwgJyInKTsKICAgICAgIGlmICghcDIp Ci0gZ290byBjYWNoZV9sdl9mYWlsOworIGdvdG8gaWdub3JlZF9mZWF0dXJlX2x2X2ZhaWw7Cgog ICAgICAgcDMgPSArK3AyOwogICAgICAgaWYgKHAzID09IG1kYV9lbmQpCi0gZ290byBjYWNoZV9s dl9mYWlsOworIGdvdG8gaWdub3JlZF9mZWF0dXJlX2x2X2ZhaWw7CiAgICAgICBwMyA9IGdydWJf c3RyY2hyIChwMywgJyInKTsKICAgICAgIGlmICghcDMpCi0gZ290byBjYWNoZV9sdl9mYWlsOwor IGdvdG8gaWdub3JlZF9mZWF0dXJlX2x2X2ZhaWw7CgogICAgICAgc3ogPSBwMyAtIHAyOwoKLSAg ICAgIGNhY2hlLT5vcmlnaW4gPSBncnViX21hbGxvYyAoc3ogKyAxKTsKLSAgICAgIGlmICghY2Fj aGUtPm9yaWdpbikKLSBnb3RvIGNhY2hlX2x2X2ZhaWw7Ci0gICAgICBncnViX21lbWNweSAoY2Fj aGUtPm9yaWdpbiwgcDIsIHN6KTsKLSAgICAgIGNhY2hlLT5vcmlnaW5bc3pdID0gJ1wwJzsKKyAg ICAgIGlnbm9yZWRfZmVhdHVyZS0+b3JpZ2luID0gZ3J1Yl9tYWxsb2MgKHN6ICsgMSk7CisgICAg ICBpZiAoIWlnbm9yZWRfZmVhdHVyZS0+b3JpZ2luKQorIGdvdG8gaWdub3JlZF9mZWF0dXJlX2x2 X2ZhaWw7CisgICAgICBncnViX21lbWNweSAoaWdub3JlZF9mZWF0dXJlLT5vcmlnaW4sIHAyLCBz eik7CisgICAgICBpZ25vcmVkX2ZlYXR1cmUtPm9yaWdpbltzel0gPSAnXDAnOwoKLSAgICAgIGNh Y2hlLT5uZXh0ID0gY2FjaGVfbHZzOwotICAgICAgY2FjaGVfbHZzID0gY2FjaGU7CisgICAgICBp Z25vcmVkX2ZlYXR1cmUtPm5leHQgPSBpZ25vcmVkX2ZlYXR1cmVfbHZzOworICAgICAgaWdub3Jl ZF9mZWF0dXJlX2x2cyA9IGlnbm9yZWRfZmVhdHVyZTsKICAgICAgIGJyZWFrOwoKLSAgICBjYWNo ZV9sdl9mYWlsOgotICAgICAgaWYgKGNhY2hlKQorICAgIGlnbm9yZWRfZmVhdHVyZV9sdl9mYWls OgorICAgICAgaWYgKGlnbm9yZWRfZmVhdHVyZSkKICB7Ci0gIGdydWJfZnJlZSAoY2FjaGUtPm9y aWdpbik7Ci0gIGdydWJfZnJlZSAoY2FjaGUtPmNhY2hlX3Bvb2wpOwotICBpZiAoY2FjaGUtPmx2 KQorICBncnViX2ZyZWUgKGlnbm9yZWRfZmVhdHVyZS0+b3JpZ2luKTsKKyAgaWYgKGlnbm9yZWRf ZmVhdHVyZS0+bHYpCiAgICAgewotICAgICAgZ3J1Yl9mcmVlIChjYWNoZS0+bHYtPmZ1bGxuYW1l KTsKLSAgICAgIGdydWJfZnJlZSAoY2FjaGUtPmx2LT5pZG5hbWUpOwotICAgICAgZ3J1Yl9mcmVl IChjYWNoZS0+bHYtPm5hbWUpOworICAgICAgZ3J1Yl9mcmVlIChpZ25vcmVkX2ZlYXR1cmUtPmx2 LT5mdWxsbmFtZSk7CisgICAgICBncnViX2ZyZWUgKGlnbm9yZWRfZmVhdHVyZS0+bHYtPmlkbmFt ZSk7CisgICAgICBncnViX2ZyZWUgKGlnbm9yZWRfZmVhdHVyZS0+bHYtPm5hbWUpOwogICAgIH0K LSAgZ3J1Yl9mcmVlIChjYWNoZS0+bHYpOwotICBncnViX2ZyZWUgKGNhY2hlKTsKKyAgZ3J1Yl9m cmVlIChpZ25vcmVkX2ZlYXR1cmUtPmx2KTsKKyAgZ3J1Yl9mcmVlIChpZ25vcmVkX2ZlYXR1cmUp OwogIH0KLSAgICAgIGdydWJfbHZtX2ZyZWVfY2FjaGVfbHZzIChjYWNoZV9sdnMpOworICAgICAg Z3J1Yl9sdm1fZnJlZV9pZ25vcmVkX2ZlYXR1cmVfbHZzIChpZ25vcmVkX2ZlYXR1cmVfbHZzKTsK ICAgICAgIGdvdG8gZmFpbDQ7CiAgICAgfQogICBlbHNlCkBAIC05OTMsNTYgKzk2OCw1NiBAQCBn cnViX2x2bV9kZXRlY3QgKGdydWJfZGlza190IGRpc2ssCiAgICAgICB9CgogICAgICAgewotIHN0 cnVjdCBjYWNoZV9sdiAqY2FjaGU7Cisgc3RydWN0IGlnbm9yZWRfZmVhdHVyZV9sdiAqaWdub3Jl ZF9mZWF0dXJlOwoKLSBmb3IgKGNhY2hlID0gY2FjaGVfbHZzOyBjYWNoZTsgY2FjaGUgPSBjYWNo ZS0+bmV4dCkKKyBmb3IgKGlnbm9yZWRfZmVhdHVyZSA9IGlnbm9yZWRfZmVhdHVyZV9sdnM7IGln bm9yZWRfZmVhdHVyZTsKaWdub3JlZF9mZWF0dXJlID0gaWdub3JlZF9mZWF0dXJlLT5uZXh0KQog ICB7CiAgICAgc3RydWN0IGdydWJfZGlza2ZpbHRlcl9sdiAqbHY7CgogICAgIGZvciAobHYgPSB2 Zy0+bHZzOyBsdjsgbHYgPSBsdi0+bmV4dCkKLSAgICAgIGlmIChncnViX3N0cmNtcCAobHYtPm5h bWUsIGNhY2hlLT5vcmlnaW4pID09IDApCisgICAgICBpZiAoZ3J1Yl9zdHJjbXAgKGx2LT5uYW1l LCBpZ25vcmVkX2ZlYXR1cmUtPm9yaWdpbikgPT0gMCkKICBicmVhazsKICAgICBpZiAobHYpCiAg ICAgICB7Ci0gY2FjaGUtPmx2LT5zZWdtZW50cyA9IGdydWJfY2FsbG9jIChsdi0+c2VnbWVudF9j b3VudCwgc2l6ZW9mICgqbHYtPnNlZ21lbnRzKSk7Ci0gaWYgKCFjYWNoZS0+bHYtPnNlZ21lbnRz KQorIGlnbm9yZWRfZmVhdHVyZS0+bHYtPnNlZ21lbnRzID0gZ3J1Yl9jYWxsb2MgKGx2LT5zZWdt ZW50X2NvdW50LApzaXplb2YgKCpsdi0+c2VnbWVudHMpKTsKKyBpZiAoIWlnbm9yZWRfZmVhdHVy ZS0+bHYtPnNlZ21lbnRzKQogICB7Ci0gICAgZ3J1Yl9sdm1fZnJlZV9jYWNoZV9sdnMgKGNhY2hl X2x2cyk7CisgICAgZ3J1Yl9sdm1fZnJlZV9pZ25vcmVkX2ZlYXR1cmVfbHZzIChpZ25vcmVkX2Zl YXR1cmVfbHZzKTsKICAgICBnb3RvIGZhaWw0OwogICB9Ci0gZ3J1Yl9tZW1jcHkgKGNhY2hlLT5s di0+c2VnbWVudHMsIGx2LT5zZWdtZW50cywgbHYtPnNlZ21lbnRfY291bnQgKgpzaXplb2YgKCps di0+c2VnbWVudHMpKTsKKyBncnViX21lbWNweSAoaWdub3JlZF9mZWF0dXJlLT5sdi0+c2VnbWVu dHMsIGx2LT5zZWdtZW50cywKbHYtPnNlZ21lbnRfY291bnQgKiBzaXplb2YgKCpsdi0+c2VnbWVu dHMpKTsKCiAgZm9yIChpID0gMDsgaSA8IGx2LT5zZWdtZW50X2NvdW50OyArK2kpCiAgIHsKICAg ICBzdHJ1Y3QgZ3J1Yl9kaXNrZmlsdGVyX25vZGUgKm5vZGVzID0gbHYtPnNlZ21lbnRzW2ldLm5v ZGVzOwogICAgIGdydWJfc2l6ZV90IG5vZGVfY291bnQgPSBsdi0+c2VnbWVudHNbaV0ubm9kZV9j b3VudDsKCi0gICAgY2FjaGUtPmx2LT5zZWdtZW50c1tpXS5ub2RlcyA9IGdydWJfY2FsbG9jIChu b2RlX2NvdW50LCBzaXplb2YgKCpub2RlcykpOwotICAgIGlmICghY2FjaGUtPmx2LT5zZWdtZW50 c1tpXS5ub2RlcykKKyAgICBpZ25vcmVkX2ZlYXR1cmUtPmx2LT5zZWdtZW50c1tpXS5ub2RlcyA9 IGdydWJfY2FsbG9jIChub2RlX2NvdW50LApzaXplb2YgKCpub2RlcykpOworICAgIGlmICghaWdu b3JlZF9mZWF0dXJlLT5sdi0+c2VnbWVudHNbaV0ubm9kZXMpCiAgICAgICB7CiAgZm9yIChqID0g MDsgaiA8IGk7ICsraikKLSAgZ3J1Yl9mcmVlIChjYWNoZS0+bHYtPnNlZ21lbnRzW2pdLm5vZGVz KTsKLSBncnViX2ZyZWUgKGNhY2hlLT5sdi0+c2VnbWVudHMpOwotIGNhY2hlLT5sdi0+c2VnbWVu dHMgPSBOVUxMOwotIGdydWJfbHZtX2ZyZWVfY2FjaGVfbHZzIChjYWNoZV9sdnMpOworICBncnVi X2ZyZWUgKGlnbm9yZWRfZmVhdHVyZS0+bHYtPnNlZ21lbnRzW2pdLm5vZGVzKTsKKyBncnViX2Zy ZWUgKGlnbm9yZWRfZmVhdHVyZS0+bHYtPnNlZ21lbnRzKTsKKyBpZ25vcmVkX2ZlYXR1cmUtPmx2 LT5zZWdtZW50cyA9IE5VTEw7CisgZ3J1Yl9sdm1fZnJlZV9pZ25vcmVkX2ZlYXR1cmVfbHZzIChp Z25vcmVkX2ZlYXR1cmVfbHZzKTsKICBnb3RvIGZhaWw0OwogICAgICAgfQotICAgIGdydWJfbWVt Y3B5IChjYWNoZS0+bHYtPnNlZ21lbnRzW2ldLm5vZGVzLCBub2Rlcywgbm9kZV9jb3VudCAqCnNp emVvZiAoKm5vZGVzKSk7CisgICAgZ3J1Yl9tZW1jcHkgKGlnbm9yZWRfZmVhdHVyZS0+bHYtPnNl Z21lbnRzW2ldLm5vZGVzLCBub2RlcywKbm9kZV9jb3VudCAqIHNpemVvZiAoKm5vZGVzKSk7CiAg IH0KCi0gaWYgKGNhY2hlLT5sdi0+c2VnbWVudHMpCisgaWYgKGlnbm9yZWRfZmVhdHVyZS0+bHYt PnNlZ21lbnRzKQogICB7Ci0gICAgY2FjaGUtPmx2LT5zZWdtZW50X2NvdW50ID0gbHYtPnNlZ21l bnRfY291bnQ7Ci0gICAgY2FjaGUtPmx2LT52ZyA9IHZnOwotICAgIGNhY2hlLT5sdi0+bmV4dCA9 IHZnLT5sdnM7Ci0gICAgdmctPmx2cyA9IGNhY2hlLT5sdjsKLSAgICBjYWNoZS0+bHYgPSBOVUxM OworICAgIGlnbm9yZWRfZmVhdHVyZS0+bHYtPnNlZ21lbnRfY291bnQgPSBsdi0+c2VnbWVudF9j b3VudDsKKyAgICBpZ25vcmVkX2ZlYXR1cmUtPmx2LT52ZyA9IHZnOworICAgIGlnbm9yZWRfZmVh dHVyZS0+bHYtPm5leHQgPSB2Zy0+bHZzOworICAgIHZnLT5sdnMgPSBpZ25vcmVkX2ZlYXR1cmUt Pmx2OworICAgIGlnbm9yZWRfZmVhdHVyZS0+bHYgPSBOVUxMOwogICB9CiAgICAgICB9CiAgIH0K ICAgICAgIH0KCi0gICAgICBncnViX2x2bV9mcmVlX2NhY2hlX2x2cyAoY2FjaGVfbHZzKTsKKyAg Z3J1Yl9sdm1fZnJlZV9pZ25vcmVkX2ZlYXR1cmVfbHZzIChpZ25vcmVkX2ZlYXR1cmVfbHZzKTsK ICAgICAgIGlmIChncnViX2Rpc2tmaWx0ZXJfdmdfcmVnaXN0ZXIgKHZnKSkKICBnb3RvIGZhaWw0 OwogICAgIH0KLS0gCjIuMzkuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0 dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK