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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 01049C77B6F for ; Thu, 13 Apr 2023 22:31:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=aQO99y/xYrD+s2zmrxLs46VHGEnVActTQTxUCy17nOc=; b=ZJAzB+S9jLjXpg hOL+dE51MPBOjgcO60tyB8OkdirEvL1MF1ljID0NKZ+knITAmXtx4Vz6pXfFmP3ReVhlnrpmuC+Hy bE6Bzzd3MxRlDz8AG/cPIjMvspmXmN31F8p1M6zhXjXxI3qTLT6g7a2BnA7Kr7d8/kAkSJIMEU5hK KQDzSZEOgL6RmN685qWdGQyfEWIW2gKxEO8mu/Ppd7v0av6+s0xwK0f0H+1x6673r1Gi5A2nxMl81 zD0gbkMrLdXKnu/OSqlFtOFnh7pNCFRL0T0HYdYKS9xXcUl+LgORrQA67FrTpIRxlGx2gPBZQfIVo sQUkjq81gRf1NE9FJWpA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pn5T8-007GDW-1l; Thu, 13 Apr 2023 22:31:06 +0000 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pn5T5-007GD1-2s for linux-um@lists.infradead.org; Thu, 13 Apr 2023 22:31:05 +0000 Received: by mail-wm1-x329.google.com with SMTP id k36-20020a05600c1ca400b003f0a7c483feso1973659wms.4 for ; Thu, 13 Apr 2023 15:31:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681425061; x=1684017061; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uvVJ+nvin96KhQYj9FW3afmetl+TEqz1s5o0Z2b76M8=; b=FGyPrl+fe/Eq8pSfFwbYd872s1ET74XzS7Ysh8k3CLOK2FffPHQW3QtQHVZweydgur a07x4HbM28MtgV/ro4D4MB3FU/w3aAdEzEVe26aLd4ukwv0EUxx+MVFOTUWJmgX5gKan Alatox3ThgIhocMUbwcfVQoplSoeLTP9+ld6aeGJniExleZEr5IczAuRbYXu4FvwnRDx TVYNhiNEYCqO4T59ju56OOYeWXkOvltV8OF4rCcIM5Lkbyr9OT072s372SCZm5pInpyJ 64rqqQbp4fUoXx/DydYzx2/qNCGCtOFDSDBkVUDtumSIUdZ5ysj1Q1On7zN92FLIXzUO 1xjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681425061; x=1684017061; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uvVJ+nvin96KhQYj9FW3afmetl+TEqz1s5o0Z2b76M8=; b=NAYIVyCQrJqQLMfb3z9N17zbk6saNKCFIew27mbfYCgar5GQxgOiHn+Iacfz9JsRTv SDw3UVFtgA7uKT0oG4w6Z54pY0KUn4W1LlZbngE5PyxQV8B9auzS1fiEXkBfGUH6fWEH UsJ+TvFefoKoL6ROD9HxfQh0FJZ3k3qs1Vx3KDErFu/cnMvAptEnAB+P8QbqsBvnJ1nX 2IscjB426RcjzoHTtGaZRJWwN8lHqOIoFaNbzZ/pkEptKK4WsL0xVDIAP2LrC9F2K8yH PkdSjMjwA8Rm3o/a/cEh6q9W0pQFHDbtYp8fqnwqG3upldd9dxhvUaylglSRzICt+7wR N9zQ== X-Gm-Message-State: AAQBX9eD0wIgrk3UGC3Ta5GqocgvVJ8jHBQA0dZ/MYdxY9sOBZuxvn1A XTOdGCoiCLfNCsgpZ0YX0in5z8qQn7bxvZRtfdE= X-Google-Smtp-Source: AKy350a/Ivq7Ci6mPMP5vXOe34fQqv9chObTzrRZF3/ANDkyCeyPARj7Inq5wgMbeJUWkXYjFEEs0A== X-Received: by 2002:a7b:cbcc:0:b0:3ed:eab9:976a with SMTP id n12-20020a7bcbcc000000b003edeab9976amr2462001wmi.5.1681425061113; Thu, 13 Apr 2023 15:31:01 -0700 (PDT) Received: from laptop-fedora.. ([79.175.90.109]) by smtp.gmail.com with ESMTPSA id e32-20020a5d5960000000b002f02dbddc26sm2133889wri.68.2023.04.13.15.30.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Apr 2023 15:30:54 -0700 (PDT) From: =?UTF-8?q?Marko=20Petrovi=C4=87?= To: linux-um@lists.infradead.org Cc: richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, =?UTF-8?q?Marko=20Petrovi=C4=87?= Subject: [PATCH 2/2] hostfs: store permissions in extended attributes Date: Fri, 14 Apr 2023 00:30:24 +0200 Message-Id: <20230413223024.11513-3-petrovicmarko2006@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230413223024.11513-1-petrovicmarko2006@gmail.com> References: <20230413223024.11513-1-petrovicmarko2006@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230413_153103_933174_19154D27 X-CRM114-Status: GOOD ( 21.91 ) X-BeenThere: linux-um@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-um" Errors-To: linux-um-bounces+linux-um=archiver.kernel.org@lists.infradead.org U2lnbmVkLW9mZi1ieTogTWFya28gUGV0cm92acSHIDxwZXRyb3ZpY21hcmtvMjAwNkBnbWFpbC5j b20+Ci0tLQogZnMvaG9zdGZzL2hvc3Rmcy5oICAgICAgfCAgNSArKy0KIGZzL2hvc3Rmcy9ob3N0 ZnNfa2Vybi5jIHwgMjMgKysrKysrKystLQogZnMvaG9zdGZzL2hvc3Rmc191c2VyLmMgfCA5NiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2Vk LCAxMTAgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvaG9z dGZzL2hvc3Rmcy5oIGIvZnMvaG9zdGZzL2hvc3Rmcy5oCmluZGV4IDY5Y2I3OTZmNjI3MC4uOTc1 NjMwM2ZjMDg5IDEwMDY0NAotLS0gYS9mcy9ob3N0ZnMvaG9zdGZzLmgKKysrIGIvZnMvaG9zdGZz L2hvc3Rmcy5oCkBAIC0zNyw2ICszNyw3IEBACiAgKiBpcyBvbiwgYW5kIHJlbW92ZSB0aGUgYXBw cm9wcmlhdGUgYml0cyBmcm9tIGF0dHItPmlhX21vZGUgKGF0dHIgaXMgYQogICogInN0cnVjdCBp YXR0ciAqIikuIC1CbGFpc29yQmxhZGUKICAqLworZXh0ZXJuIGludCB1c2VfeGF0dHI7CiBzdHJ1 Y3QgaG9zdGZzX3RpbWVzcGVjIHsKIAlsb25nIGxvbmcgdHZfc2VjOwogCWxvbmcgbG9uZyB0dl9u c2VjOwpAQCAtODMsMTEgKzg0LDExIEBAIGV4dGVybiBpbnQgd3JpdGVfZmlsZShpbnQgZmQsIHVu c2lnbmVkIGxvbmcgbG9uZyAqb2Zmc2V0LCBjb25zdCBjaGFyICpidWYsCiAJCSAgICAgIGludCBs ZW4pOwogZXh0ZXJuIGludCBsc2Vla19maWxlKGludCBmZCwgbG9uZyBsb25nIG9mZnNldCwgaW50 IHdoZW5jZSk7CiBleHRlcm4gaW50IGZzeW5jX2ZpbGUoaW50IGZkLCBpbnQgZGF0YXN5bmMpOwot ZXh0ZXJuIGludCBmaWxlX2NyZWF0ZShjaGFyICpuYW1lLCBpbnQgbW9kZSk7CitleHRlcm4gaW50 IGZpbGVfY3JlYXRlKGNoYXIgKm5hbWUsIGludCBtb2RlLCB1aWRfdCB1aWQsIGdpZF90IGdpZCk7 CiBleHRlcm4gaW50IHNldF9hdHRyKGNvbnN0IGNoYXIgKmZpbGUsIHN0cnVjdCBob3N0ZnNfaWF0 dHIgKmF0dHJzLCBpbnQgZmQpOwogZXh0ZXJuIGludCBtYWtlX3N5bWxpbmsoY29uc3QgY2hhciAq ZnJvbSwgY29uc3QgY2hhciAqdG8pOwogZXh0ZXJuIGludCB1bmxpbmtfZmlsZShjb25zdCBjaGFy ICpmaWxlKTsKLWV4dGVybiBpbnQgZG9fbWtkaXIoY29uc3QgY2hhciAqZmlsZSwgaW50IG1vZGUp OworZXh0ZXJuIGludCBkb19ta2Rpcihjb25zdCBjaGFyICpmaWxlLCBpbnQgbW9kZSwgdWlkX3Qg dWlkLCBnaWRfdCBnaWQpOwogZXh0ZXJuIGludCBob3N0ZnNfZG9fcm1kaXIoY29uc3QgY2hhciAq ZmlsZSk7CiBleHRlcm4gaW50IGRvX21rbm9kKGNvbnN0IGNoYXIgKmZpbGUsIGludCBtb2RlLCB1 bnNpZ25lZCBpbnQgbWFqb3IsCiAJCSAgICB1bnNpZ25lZCBpbnQgbWlub3IpOwpkaWZmIC0tZ2l0 IGEvZnMvaG9zdGZzL2hvc3Rmc19rZXJuLmMgYi9mcy9ob3N0ZnMvaG9zdGZzX2tlcm4uYwppbmRl eCAyOGI0ZjE1YzE5ZWIuLjkyMGQyMTFkNGUxOSAxMDA2NDQKLS0tIGEvZnMvaG9zdGZzL2hvc3Rm c19rZXJuLmMKKysrIGIvZnMvaG9zdGZzL2hvc3Rmc19rZXJuLmMKQEAgLTE3LDYgKzE3LDcgQEAK ICNpbmNsdWRlIDxsaW51eC93cml0ZWJhY2suaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgog I2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+CisjaW5jbHVkZSA8bGludXgvdWlkZ2lkLmg+CiAjaW5j bHVkZSAiaG9zdGZzLmgiCiAjaW5jbHVkZSA8aW5pdC5oPgogI2luY2x1ZGUgPGtlcm4uaD4KQEAg LTQwLDYgKzQxLDcgQEAgc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpob3N0ZnNfaW5vZGVfY2Fj aGU7CiAvKiBDaGFuZ2VkIGluIGhvc3Rmc19hcmdzIGJlZm9yZSB0aGUga2VybmVsIHN0YXJ0cyBy dW5uaW5nICovCiBzdGF0aWMgY2hhciAqcm9vdF9pbm8gPSAiIjsKIHN0YXRpYyBpbnQgYXBwZW5k ID0gMDsKK2ludCB1c2VfeGF0dHI7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0 aW9ucyBob3N0ZnNfaW9wczsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBo b3N0ZnNfZGlyX2lvcHM7CkBAIC01MCw2ICs1Miw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGhvc3Rm c19hcmdzKGNoYXIgKm9wdGlvbnMsIGludCAqYWRkKQogewogCWNoYXIgKnB0cjsKIAorCXVzZV94 YXR0ciA9IDA7CiAJcHRyID0gc3RyY2hyKG9wdGlvbnMsICcsJyk7CiAJaWYgKHB0ciAhPSBOVUxM KQogCQkqcHRyKysgPSAnXDAnOwpAQCAtNjQsNiArNjcsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBo b3N0ZnNfYXJncyhjaGFyICpvcHRpb25zLCBpbnQgKmFkZCkKIAkJaWYgKCpvcHRpb25zICE9ICdc MCcpIHsKIAkJCWlmICghc3RyY21wKG9wdGlvbnMsICJhcHBlbmQiKSkKIAkJCQlhcHBlbmQgPSAx OworCQkJZWxzZSBpZiAoIXN0cmNtcChvcHRpb25zLCAieGF0dHJwZXJtIikpCisJCQkJdXNlX3hh dHRyID0gMTsKIAkJCWVsc2UgcHJpbnRmKCJob3N0ZnNfYXJncyAtIHVuc3VwcG9ydGVkIG9wdGlv biAtICVzXG4iLAogCQkJCSAgICBvcHRpb25zKTsKIAkJfQpAQCAtNzksOCArODQsMTAgQEAgX191 bWxfc2V0dXAoImhvc3Rmcz0iLCBob3N0ZnNfYXJncywKICIgICAgdHJlZSBvbiB0aGUgaG9zdC4g IElmIHRoaXMgaXNuJ3Qgc3BlY2lmaWVkLCB0aGVuIGEgdXNlciBpbnNpZGUgVU1MIGNhblxuIgog IiAgICBtb3VudCBhbnl0aGluZyBvbiB0aGUgaG9zdCB0aGF0J3MgYWNjZXNzaWJsZSB0byB0aGUg dXNlciB0aGF0J3MgcnVubmluZ1xuIgogIiAgICBpdC5cbiIKLSIgICAgVGhlIG9ubHkgZmxhZyBj dXJyZW50bHkgc3VwcG9ydGVkIGlzICdhcHBlbmQnLCB3aGljaCBzcGVjaWZpZXMgdGhhdCBhbGxc biIKLSIgICAgZmlsZXMgb3BlbmVkIGJ5IGhvc3RmcyB3aWxsIGJlIG9wZW5lZCBpbiBhcHBlbmQg bW9kZS5cblxuIgorIiAgICBUaGUgb25seSBmbGFncyBjdXJyZW50bHkgc3VwcG9ydGVkIGFyZSAn YXBwZW5kJywgd2hpY2ggc3BlY2lmaWVzIHRoYXRcbiIKKyIgICAgYWxsIGZpbGVzIG9wZW5lZCBi eSBob3N0ZnMgd2lsbCBiZSBvcGVuZWQgaW4gYXBwZW5kIG1vZGUgYW5kICd4YXR0cnBlcm0nXG4i CisiICAgIHdoaWNoIHNwZWNpZmllcyB0aGF0IHBlcm1pc3Npb25zIG9mIGZpbGVzIHdpbGwgYmUg c3RvcmVkIGluIGV4dGVuZGVkXG4iCisiICAgIGF0dHJpYnV0ZXMuXG5cbiIKICk7CiAjZW5kaWYK IApAQCAtNTY2LDYgKzU3Myw4IEBAIHN0YXRpYyBpbnQgaG9zdGZzX2NyZWF0ZShzdHJ1Y3QgbW50 X2lkbWFwICppZG1hcCwgc3RydWN0IGlub2RlICpkaXIsCiAJc3RydWN0IGlub2RlICppbm9kZTsK IAljaGFyICpuYW1lOwogCWludCBlcnJvciwgZmQ7CisJdW5zaWduZWQgaW50IGN1cnJlbnR1aWQ7 CisJdW5zaWduZWQgaW50IGN1cnJlbnRnaWQ7CiAKIAlpbm9kZSA9IGhvc3Rmc19pZ2V0KGRpci0+ aV9zYik7CiAJaWYgKElTX0VSUihpbm9kZSkpIHsKQEAgLTU3OCw3ICs1ODcsOSBAQCBzdGF0aWMg aW50IGhvc3Rmc19jcmVhdGUoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBpbm9kZSAq ZGlyLAogCWlmIChuYW1lID09IE5VTEwpCiAJCWdvdG8gb3V0X3B1dDsKIAotCWZkID0gZmlsZV9j cmVhdGUobmFtZSwgbW9kZSAmIDA3NzcpOworCWN1cnJlbnR1aWQgPSBmcm9tX2t1aWQoY3VycmVu dC0+Y3JlZC0+dXNlcl9ucywgY3VycmVudC0+Y3JlZC0+ZXVpZCk7CisJY3VycmVudGdpZCA9IGZy b21fa2dpZChjdXJyZW50LT5jcmVkLT51c2VyX25zLCBjdXJyZW50LT5jcmVkLT5lZ2lkKTsKKwlm ZCA9IGZpbGVfY3JlYXRlKG5hbWUsIG1vZGUgJiAwNzc3LCBjdXJyZW50dWlkLCBjdXJyZW50Z2lk KTsKIAlpZiAoZmQgPCAwKQogCQllcnJvciA9IGZkOwogCWVsc2UKQEAgLTY3NywxMCArNjg4LDE0 IEBAIHN0YXRpYyBpbnQgaG9zdGZzX21rZGlyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1 Y3QgaW5vZGUgKmlubywKIHsKIAljaGFyICpmaWxlOwogCWludCBlcnI7CisJdW5zaWduZWQgaW50 IGN1cnJlbnR1aWQ7CisJdW5zaWduZWQgaW50IGN1cnJlbnRnaWQ7CiAKIAlpZiAoKGZpbGUgPSBk ZW50cnlfbmFtZShkZW50cnkpKSA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKLQllcnIgPSBk b19ta2RpcihmaWxlLCBtb2RlKTsKKwljdXJyZW50dWlkID0gZnJvbV9rdWlkKGN1cnJlbnQtPmNy ZWQtPnVzZXJfbnMsIGN1cnJlbnQtPmNyZWQtPmV1aWQpOworCWN1cnJlbnRnaWQgPSBmcm9tX2tn aWQoY3VycmVudC0+Y3JlZC0+dXNlcl9ucywgY3VycmVudC0+Y3JlZC0+ZWdpZCk7CisJZXJyID0g ZG9fbWtkaXIoZmlsZSwgbW9kZSwgY3VycmVudHVpZCwgY3VycmVudGdpZCk7CiAJX19wdXRuYW1l KGZpbGUpOwogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9mcy9ob3N0ZnMvaG9zdGZzX3Vz ZXIuYyBiL2ZzL2hvc3Rmcy9ob3N0ZnNfdXNlci5jCmluZGV4IDVlY2M0NzA2MTcyYi4uZmRiZDM0 YjlhZGQ2IDEwMDY0NAotLS0gYS9mcy9ob3N0ZnMvaG9zdGZzX3VzZXIuYworKysgYi9mcy9ob3N0 ZnMvaG9zdGZzX3VzZXIuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgPHN5cy90eXBlcy5o PgogI2luY2x1ZGUgPHN5cy92ZnMuaD4KICNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1 ZGUgPHN5cy94YXR0ci5oPgogI2luY2x1ZGUgImhvc3Rmcy5oIgogI2luY2x1ZGUgPHV0aW1lLmg+ CiAKQEAgLTM4LDYgKzM5LDgyIEBAIHN0YXRpYyB2b2lkIHN0YXQ2NF90b19ob3N0ZnMoY29uc3Qg c3RydWN0IHN0YXQ2NCAqYnVmLCBzdHJ1Y3QgaG9zdGZzX3N0YXQgKnApCiAJcC0+bWluID0gb3Nf bWlub3IoYnVmLT5zdF9yZGV2KTsKIH0KIAorc3RhdGljIGludCB1bWxfY2hvd24oY29uc3QgY2hh ciAqcGF0aG5hbWUsIHVuc2lnbmVkIGludCBvd25lciwgdW5zaWduZWQgaW50IGdyb3VwKQorewor CWludCBzdGF0dXM7CisKKwlpZiAodXNlX3hhdHRyKSB7CisJCWlmIChvd25lciAhPSAtMSkgewor CQkJc3RhdHVzID0gc2V0eGF0dHIocGF0aG5hbWUsICJ1c2VyLnVtbHVpZCIsICZvd25lciwKKwkJ CQkJCQlzaXplb2YodW5zaWduZWQgaW50KSwgMCk7CisJCQlpZiAoc3RhdHVzIDwgMCkKKwkJCQly ZXR1cm4gc3RhdHVzOworCQl9CisJCWlmIChncm91cCAhPSAtMSkgeworCQkJc3RhdHVzID0gc2V0 eGF0dHIocGF0aG5hbWUsICJ1c2VyLnVtbGdpZCIsICZvd25lciwKKwkJCQkJCQlzaXplb2YodW5z aWduZWQgaW50KSwgMCk7CisJCQlpZiAoc3RhdHVzIDwgMCkKKwkJCQlyZXR1cm4gc3RhdHVzOwor CQl9CisJCXJldHVybiAwOworCX0gZWxzZSB7CisJCXJldHVybiBjaG93bihwYXRobmFtZSwgb3du ZXIsIGdyb3VwKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgdW1sX2ZjaG93bihpbnQgZmQsIHVuc2ln bmVkIGludCBvd25lciwgdW5zaWduZWQgaW50IGdyb3VwKQoreworCWludCBzdGF0dXM7CisKKwlp ZiAodXNlX3hhdHRyKSB7CisJCWlmIChvd25lciAhPSAtMSkgeworCQkJc3RhdHVzID0gZnNldHhh dHRyKGZkLCAidXNlci51bWx1aWQiLCAmb3duZXIsCisJCQkJCQlzaXplb2YodW5zaWduZWQgaW50 KSwgMCk7CisJCQlpZiAoc3RhdHVzIDwgMCkKKwkJCQlyZXR1cm4gc3RhdHVzOworCQl9CisJCWlm IChncm91cCAhPSAtMSkgeworCQkJc3RhdHVzID0gZnNldHhhdHRyKGZkLCAidXNlci51bWxnaWQi LCAmb3duZXIsCisJCQkJCQlzaXplb2YodW5zaWduZWQgaW50KSwgMCk7CisJCQlpZiAoc3RhdHVz IDwgMCkKKwkJCQlyZXR1cm4gc3RhdHVzOworCQl9CisJCXJldHVybiAwOworCX0gZWxzZSB7CisJ CXJldHVybiBmY2hvd24oZmQsIG93bmVyLCBncm91cCk7CisJfQorfQorCitzdGF0aWMgaW50IHVt bF9jaG1vZChjb25zdCBjaGFyICpwYXRobmFtZSwgdW5zaWduZWQgaW50IG1vZGUpCit7CisJaWYg KHVzZV94YXR0cikKKwkJcmV0dXJuIHNldHhhdHRyKHBhdGhuYW1lLCAidXNlci51bWxtb2RlIiwg Jm1vZGUsCisJCQkJCQlzaXplb2YodW5zaWduZWQgaW50KSwgMCk7CisJcmV0dXJuIGNobW9kKHBh dGhuYW1lLCBtb2RlKTsKK30KKworc3RhdGljIGludCB1bWxfZmNobW9kKGludCBmZCwgdW5zaWdu ZWQgaW50IG1vZGUpCit7CisJaWYgKHVzZV94YXR0cikKKwkJcmV0dXJuIGZzZXR4YXR0cihmZCwg InVzZXIudW1sbW9kZSIsICZtb2RlLAorCQkJCQkJc2l6ZW9mKHVuc2lnbmVkIGludCksIDApOwor CXJldHVybiBmY2htb2QoZmQsIG1vZGUpOworfQorCitzdGF0aWMgdm9pZCByZWFkX3Blcm1pc3Np b25zKGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBob3N0ZnNfc3RhdCAqcCkKK3sKKwl1bnNpZ25l ZCBpbnQgbW9kZSwgdWlkLCBnaWQ7CisKKwlpZiAoIXVzZV94YXR0cikKKwkJcmV0dXJuOworCWlm IChnZXR4YXR0cihwYXRoLCAidXNlci51bWxtb2RlIiwgJm1vZGUsIHNpemVvZih1bnNpZ25lZCBp bnQpKSAhPSAtMSkKKwkJcC0+bW9kZSA9IG1vZGU7CisJaWYgKGdldHhhdHRyKHBhdGgsICJ1c2Vy LnVtbHVpZCIsICZ1aWQsIHNpemVvZih1bnNpZ25lZCBpbnQpKSAhPSAtMSkKKwkJcC0+dWlkID0g dWlkOworCWlmIChnZXR4YXR0cihwYXRoLCAidXNlci51bWxnaWQiLCAmZ2lkLCBzaXplb2YodW5z aWduZWQgaW50KSkgIT0gLTEpCisJCXAtPmdpZCA9IGdpZDsKK30KKwogaW50IHN0YXRfZmlsZShj b25zdCBjaGFyICpwYXRoLCBzdHJ1Y3QgaG9zdGZzX3N0YXQgKnAsIGludCBmZCkKIHsKIAlzdHJ1 Y3Qgc3RhdDY0IGJ1ZjsKQEAgLTQ5LDYgKzEyNiw3IEBAIGludCBzdGF0X2ZpbGUoY29uc3QgY2hh ciAqcGF0aCwgc3RydWN0IGhvc3Rmc19zdGF0ICpwLCBpbnQgZmQpCiAJCXJldHVybiAtZXJybm87 CiAJfQogCXN0YXQ2NF90b19ob3N0ZnMoJmJ1ZiwgcCk7CisJcmVhZF9wZXJtaXNzaW9ucyhwYXRo LCBwKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTgxLDEzICsyNTksMTQgQEAgdm9pZCBjbG9zZV9k aXIodm9pZCAqc3RyZWFtKQogCWNsb3NlZGlyKHN0cmVhbSk7CiB9CiAKLWludCBmaWxlX2NyZWF0 ZShjaGFyICpuYW1lLCBpbnQgbW9kZSkKK2ludCBmaWxlX2NyZWF0ZShjaGFyICpuYW1lLCBpbnQg bW9kZSwgdW5zaWduZWQgaW50IHVpZCwgdW5zaWduZWQgaW50IGdpZCkKIHsKIAlpbnQgZmQ7CiAK IAlmZCA9IG9wZW42NChuYW1lLCBPX0NSRUFUIHwgT19SRFdSLCBtb2RlKTsKIAlpZiAoZmQgPCAw KQogCQlyZXR1cm4gLWVycm5vOworCXVtbF9jaG93bihuYW1lLCB1aWQsIGdpZCk7CiAJcmV0dXJu IGZkOwogfQogCkBAIC0xOTksMjUgKzI3OCwyNSBAQCBpbnQgc2V0X2F0dHIoY29uc3QgY2hhciAq ZmlsZSwgc3RydWN0IGhvc3Rmc19pYXR0ciAqYXR0cnMsIGludCBmZCkKIAogCWlmIChhdHRycy0+ aWFfdmFsaWQgJiBIT1NURlNfQVRUUl9NT0RFKSB7CiAJCWlmIChmZCA+PSAwKSB7Ci0JCQlpZiAo ZmNobW9kKGZkLCBhdHRycy0+aWFfbW9kZSkgIT0gMCkKKwkJCWlmICh1bWxfZmNobW9kKGZkLCBh dHRycy0+aWFfbW9kZSkgIT0gMCkKIAkJCQlyZXR1cm4gLWVycm5vOwotCQl9IGVsc2UgaWYgKGNo bW9kKGZpbGUsIGF0dHJzLT5pYV9tb2RlKSAhPSAwKSB7CisJCX0gZWxzZSBpZiAodW1sX2NobW9k KGZpbGUsIGF0dHJzLT5pYV9tb2RlKSAhPSAwKSB7CiAJCQlyZXR1cm4gLWVycm5vOwogCQl9CiAJ fQogCWlmIChhdHRycy0+aWFfdmFsaWQgJiBIT1NURlNfQVRUUl9VSUQpIHsKIAkJaWYgKGZkID49 IDApIHsKLQkJCWlmIChmY2hvd24oZmQsIGF0dHJzLT5pYV91aWQsIC0xKSkKKwkJCWlmICh1bWxf ZmNob3duKGZkLCBhdHRycy0+aWFfdWlkLCAtMSkpCiAJCQkJcmV0dXJuIC1lcnJubzsKLQkJfSBl bHNlIGlmIChjaG93bihmaWxlLCBhdHRycy0+aWFfdWlkLCAtMSkpIHsKKwkJfSBlbHNlIGlmICh1 bWxfY2hvd24oZmlsZSwgYXR0cnMtPmlhX3VpZCwgLTEpKSB7CiAJCQlyZXR1cm4gLWVycm5vOwog CQl9CiAJfQogCWlmIChhdHRycy0+aWFfdmFsaWQgJiBIT1NURlNfQVRUUl9HSUQpIHsKIAkJaWYg KGZkID49IDApIHsKLQkJCWlmIChmY2hvd24oZmQsIC0xLCBhdHRycy0+aWFfZ2lkKSkKKwkJCWlm ICh1bWxfZmNob3duKGZkLCAtMSwgYXR0cnMtPmlhX2dpZCkpCiAJCQkJcmV0dXJuIC1lcnJubzsK LQkJfSBlbHNlIGlmIChjaG93bihmaWxlLCAtMSwgYXR0cnMtPmlhX2dpZCkpIHsKKwkJfSBlbHNl IGlmICh1bWxfY2hvd24oZmlsZSwgLTEsIGF0dHJzLT5pYV9naWQpKSB7CiAJCQlyZXR1cm4gLWVy cm5vOwogCQl9CiAJfQpAQCAtMjk0LDEzICszNzMsMTQgQEAgaW50IHVubGlua19maWxlKGNvbnN0 IGNoYXIgKmZpbGUpCiAJcmV0dXJuIDA7CiB9CiAKLWludCBkb19ta2Rpcihjb25zdCBjaGFyICpm aWxlLCBpbnQgbW9kZSkKK2ludCBkb19ta2Rpcihjb25zdCBjaGFyICpmaWxlLCBpbnQgbW9kZSwg dW5zaWduZWQgaW50IHVpZCwgdW5zaWduZWQgaW50IGdpZCkKIHsKIAlpbnQgZXJyOwogCiAJZXJy ID0gbWtkaXIoZmlsZSwgbW9kZSk7CiAJaWYgKGVycikKIAkJcmV0dXJuIC1lcnJubzsKKwl1bWxf Y2hvd24oZmlsZSwgdWlkLCBnaWQpOwogCXJldHVybiAwOwogfQogCi0tIAoyLjM5LjIKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC11bSBtYWls aW5nIGxpc3QKbGludXgtdW1AbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXVtCg==