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 7F412C77B61 for ; Fri, 14 Apr 2023 02:34:29 +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=Eo4VU6Arr3MGx5yD5guT9Yy2dxkj5+BXbhau7A0H+5c=; b=sbaYQIdGFV/rkb NbgV3irOjKwuLztBEf5hErVcboqC6Lvy3MZOOvj6ghpM63ntyMT8jVIyVcu4rtkOb6j1GmFL9Cg0l tGs4fliZhtCg2zbxa9nsh5yJcS+7yC/NTV6PujUO3Ax4P9UGch5FcdNMEwlZl5i828qdlydUf6LHy YXcGKtYTDS31nbvqw8z4VW473G/J+BMVYMwBnPnXBtK2+9vxM2I3mrJveHg7x2QPGVYCq64WVCg06 gp94jQkPhq3j+PbYG2GzdP7wRRx9ySdZyTIi2tcTIjVt/0Jx7+TXTzGZrDeV0YF3WLEbCQa1K6HDF HoEGHi3bii/BpW9fmfKw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pn9Ge-0089U0-1v; Fri, 14 Apr 2023 02:34:28 +0000 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pn9Gb-0089Sq-01 for linux-um@lists.infradead.org; Fri, 14 Apr 2023 02:34:26 +0000 Received: by mail-wr1-x436.google.com with SMTP id e7so5958805wrc.12 for ; Thu, 13 Apr 2023 19:34:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681439661; x=1684031661; 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=02uwRv/8PR3NzKBx+uC9gzis1MPy4ECr01wcaYKpq6I=; b=iQGRvKzUy+5uzJaBoz+2grFer8sIp2I8tDSXffSr9ceH0UhynJKz151M+WVZDuMQYq jLMQ9ylyJ+AV3MRxKl+dKCnLMHQ//+8yRDjXbjvI2IMqSFsEbmOcbAkzvjN87dbHQbMy BphmKk+IJb5mxqBEpLwcpJT1U7woGGKWd1yvIDU2FcbliZaQeCcbLVrR5OkqPQe67yIp WJyPZ0/4LNb+zGSe8kkWqCJ+hsxm2Ap/ItxZfVdF7+pvMblC9RSSSyJMcTI6j3kbgUDL e5nT0+Gzia8qvi0utXkuymTzsCykyzLKIYXgOTRdzPAbnVnYwKaAZ0Q6FEQP4NlRKKHd VzBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681439661; x=1684031661; 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=02uwRv/8PR3NzKBx+uC9gzis1MPy4ECr01wcaYKpq6I=; b=jxFf87lS/zfVf17BQXQg+4qVhdeE+EDLL2WqfQ3ZunuGt1DYg251h6h9RaqhG1JBV6 hY3v4KNrYc3MmoIYonfBFawIBz4YciUZLrSs+yHlcS9cMK40w6C9jk92y9mg8NixLgZJ 9ZRKGEgwNtjzOE+rp83+ufsn9dcRxpe9u5Ctp2GtFcicAYVqPs6uVtOUHdv3O6OFqFtF bGbkjuGJso85+/jO08Wtcohf/qhJnllyHSLpgPZYjBIZHKLoElxgOFtOrg6BevDEB4bT EKvS4FjVMnA0B09N06MURYfdV7w3ZW4TfnrrSgpKp3Au9E+sLrfdxRnP0yQlTcwC70or 5P6Q== X-Gm-Message-State: AAQBX9cVzfO7tlUPYwu6JqvEe17WpM6smAlkZznXX/cnLxJsSnR2Z+9C n0F/hZ30SxqtaAfm0CFbWg9TdrfxZJxf3/BBKu0= X-Google-Smtp-Source: AKy350a9DyOtD3PsUXc6a0z+o5QTwoR3UzGlltDKsS0me3LAGszKaxYEbxtof7B+rex1TvMFhn2UIw== X-Received: by 2002:adf:e88b:0:b0:2f2:30c:d945 with SMTP id d11-20020adfe88b000000b002f2030cd945mr3088903wrm.39.1681439660813; Thu, 13 Apr 2023 19:34:20 -0700 (PDT) Received: from laptop-fedora.. ([79.175.90.109]) by smtp.gmail.com with ESMTPSA id z12-20020a5d440c000000b002f5fa5fb793sm2307163wrq.60.2023.04.13.19.34.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Apr 2023 19:34:20 -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 v2 2/2] hostfs: store permissions in extended attributes Date: Fri, 14 Apr 2023 04:33:57 +0200 Message-Id: <20230414023357.63722-1-petrovicmarko2006@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230413223024.11513-3-petrovicmarko2006@gmail.com> References: <20230413223024.11513-3-petrovicmarko2006@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230413_193425_046928_8868519B X-CRM114-Status: GOOD ( 24.75 ) 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 Rml4IEdJRCBhc3NpZ25tZW50IGVycm9yIGluIHVtbF9jaG93bigpIGFuZCBhZGQgc3VwcG9ydCBm b3IgY29ycmVjdApiZWhhdmlvciB3aGVuIHBhcmVudCBkaXJlY3RvcnkgaGFzIFNFVEdJRCBiaXQu CgpTaWduZWQtb2ZmLWJ5OiBNYXJrbyBQZXRyb3ZpxIcgPHBldHJvdmljbWFya28yMDA2QGdtYWls LmNvbT4KLS0tCiBmcy9ob3N0ZnMvaG9zdGZzLmggICAgICB8ICAgNSArLQogZnMvaG9zdGZzL2hv c3Rmc19rZXJuLmMgfCAgMjMgKysrKystLQogZnMvaG9zdGZzL2hvc3Rmc191c2VyLmMgfCAxNDIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMyBmaWxlcyBjaGFuZ2Vk LCAxNTYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvaG9z 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 ZXIuYyBiL2ZzL2hvc3Rmcy9ob3N0ZnNfdXNlci5jCmluZGV4IDVlY2M0NzA2MTcyYi4uZjJjYzY2 N2FiMGRkIDEwMDY0NAotLS0gYS9mcy9ob3N0ZnMvaG9zdGZzX3VzZXIuYworKysgYi9mcy9ob3N0 ZnMvaG9zdGZzX3VzZXIuYwpAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUgPHN5cy90eXBlcy5o PgogI2luY2x1ZGUgPHN5cy92ZnMuaD4KICNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1 ZGUgPHN5cy94YXR0ci5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiAjaW5jbHVkZSAiaG9zdGZz LmgiCiAjaW5jbHVkZSA8dXRpbWUuaD4KIApAQCAtMzgsNiArNDAsMTE4IEBAIHN0YXRpYyB2b2lk IHN0YXQ2NF90b19ob3N0ZnMoY29uc3Qgc3RydWN0IHN0YXQ2NCAqYnVmLCBzdHJ1Y3QgaG9zdGZz X3N0YXQgKnApCiAJcC0+bWluID0gb3NfbWlub3IoYnVmLT5zdF9yZGV2KTsKIH0KIAorc3RhdGlj IGludCB1bWxfY2hvd24oY29uc3QgY2hhciAqcGF0aG5hbWUsIHVuc2lnbmVkIGludCBvd25lciwg dW5zaWduZWQgaW50IGdyb3VwKQoreworCWludCBzdGF0dXM7CisKKwlpZiAodXNlX3hhdHRyKSB7 CisJCWlmIChvd25lciAhPSAtMSkgeworCQkJc3RhdHVzID0gc2V0eGF0dHIocGF0aG5hbWUsICJ1 c2VyLnVtbHVpZCIsICZvd25lciwKKwkJCQkJCQlzaXplb2YodW5zaWduZWQgaW50KSwgMCk7CisJ CQlpZiAoc3RhdHVzIDwgMCkKKwkJCQlyZXR1cm4gc3RhdHVzOworCQl9CisJCWlmIChncm91cCAh PSAtMSkgeworCQkJc3RhdHVzID0gc2V0eGF0dHIocGF0aG5hbWUsICJ1c2VyLnVtbGdpZCIsICZn cm91cCwKKwkJCQkJCQlzaXplb2YodW5zaWduZWQgaW50KSwgMCk7CisJCQlpZiAoc3RhdHVzIDwg MCkKKwkJCQlyZXR1cm4gc3RhdHVzOworCQl9CisJCXJldHVybiAwOworCX0gZWxzZSB7CisJCXJl dHVybiBjaG93bihwYXRobmFtZSwgb3duZXIsIGdyb3VwKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQg dW1sX2ZjaG93bihpbnQgZmQsIHVuc2lnbmVkIGludCBvd25lciwgdW5zaWduZWQgaW50IGdyb3Vw KQoreworCWludCBzdGF0dXM7CisKKwlpZiAodXNlX3hhdHRyKSB7CisJCWlmIChvd25lciAhPSAt MSkgeworCQkJc3RhdHVzID0gZnNldHhhdHRyKGZkLCAidXNlci51bWx1aWQiLCAmb3duZXIsCisJ CQkJCQlzaXplb2YodW5zaWduZWQgaW50KSwgMCk7CisJCQlpZiAoc3RhdHVzIDwgMCkKKwkJCQly ZXR1cm4gc3RhdHVzOworCQl9CisJCWlmIChncm91cCAhPSAtMSkgeworCQkJc3RhdHVzID0gZnNl dHhhdHRyKGZkLCAidXNlci51bWxnaWQiLCAmZ3JvdXAsCisJCQkJCQlzaXplb2YodW5zaWduZWQg aW50KSwgMCk7CisJCQlpZiAoc3RhdHVzIDwgMCkKKwkJCQlyZXR1cm4gc3RhdHVzOworCQl9CisJ CXJldHVybiAwOworCX0gZWxzZSB7CisJCXJldHVybiBmY2hvd24oZmQsIG93bmVyLCBncm91cCk7 CisJfQorfQorCitzdGF0aWMgaW50IHVtbF9jaG1vZChjb25zdCBjaGFyICpwYXRobmFtZSwgdW5z aWduZWQgaW50IG1vZGUpCit7CisJaWYgKHVzZV94YXR0cikKKwkJcmV0dXJuIHNldHhhdHRyKHBh dGhuYW1lLCAidXNlci51bWxtb2RlIiwgJm1vZGUsCisJCQkJCQlzaXplb2YodW5zaWduZWQgaW50 KSwgMCk7CisJcmV0dXJuIGNobW9kKHBhdGhuYW1lLCBtb2RlKTsKK30KKworc3RhdGljIGludCB1 bWxfZmNobW9kKGludCBmZCwgdW5zaWduZWQgaW50IG1vZGUpCit7CisJaWYgKHVzZV94YXR0cikK KwkJcmV0dXJuIGZzZXR4YXR0cihmZCwgInVzZXIudW1sbW9kZSIsICZtb2RlLAorCQkJCQkJc2l6 ZW9mKHVuc2lnbmVkIGludCksIDApOworCXJldHVybiBmY2htb2QoZmQsIG1vZGUpOworfQorCitz dGF0aWMgdm9pZCByZWFkX3Blcm1pc3Npb25zKGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBzdGF0 NjQgKnApCit7CisJdW5zaWduZWQgaW50IG1vZGUsIHVpZCwgZ2lkOworCisJaWYgKCF1c2VfeGF0 dHIpCisJCXJldHVybjsKKwlpZiAoZ2V0eGF0dHIocGF0aCwgInVzZXIudW1sbW9kZSIsICZtb2Rl LCBzaXplb2YodW5zaWduZWQgaW50KSkgIT0gLTEpCisJCXAtPnN0X21vZGUgPSBtb2RlOworCWlm IChnZXR4YXR0cihwYXRoLCAidXNlci51bWx1aWQiLCAmdWlkLCBzaXplb2YodW5zaWduZWQgaW50 KSkgIT0gLTEpCisJCXAtPnN0X3VpZCA9IHVpZDsKKwlpZiAoZ2V0eGF0dHIocGF0aCwgInVzZXIu dW1sZ2lkIiwgJmdpZCwgc2l6ZW9mKHVuc2lnbmVkIGludCkpICE9IC0xKQorCQlwLT5zdF9naWQg PSBnaWQ7Cit9CisKKy8vIFJlbW92ZSBkb3VibGUgc2xhc2ggZnJvbSB0aGUgcGF0aAorc3RhdGlj IHZvaWQgZml4X3BhdGgoY2hhciAqcGF0aCkKK3sKKwlpbnQgaSA9IDA7CisJaW50IHNraXAgPSAw OworCisJd2hpbGUgKHBhdGhbaV0gIT0gJ1wwJykgeworCQlpZiAocGF0aFtpXSA9PSAnLycgJiYg cGF0aFtpKzFdID09ICcvJykKKwkJCXNraXAgPSAxOworCQlwYXRoW2ldID0gcGF0aFtpK3NraXBd OworCQlpKys7CisJfQorfQorCisvLyBwYXRoIGlzIGluIHRoZSBmb3JtICJyb290ZnMvL3Zhci9h YmMiCitzdGF0aWMgbG9uZyBpc19zZXRfZ2lkKGNvbnN0IGNoYXIgKnBhdGgpCit7CisJaW50IGkg PSBzdHJsZW4ocGF0aCkgKyAxOworCWNoYXIgKnBhcmVudCA9IG1tYXAoTlVMTCwgaSwgUFJPVF9S RUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTllNT1VTLCAwLCAwKTsKKwlz dHJ1Y3Qgc3RhdDY0IGJ1ZiA9IHsgMCB9OworCisJc3RyY3B5KHBhcmVudCwgcGF0aCk7CisJaSA9 IGkgLSAzOworCXdoaWxlIChwYXJlbnRbaV0gIT0gJy8nKQorCQlpLS07CisJcGFyZW50W2ldID0g J1wwJzsKKwlmaXhfcGF0aChwYXJlbnQpOworCisJc3RhdDY0KHBhcmVudCwgJmJ1Zik7CisJcmVh ZF9wZXJtaXNzaW9ucyhwYXJlbnQsICZidWYpOworCW11bm1hcChwYXJlbnQsIHN0cmxlbihwYXRo KSArIDEpOworCWlmIChidWYuc3RfbW9kZSAmIFNfSVNHSUQpCisJCXJldHVybiBidWYuc3RfZ2lk OworCXJldHVybiAtMTsKK30KKwogaW50IHN0YXRfZmlsZShjb25zdCBjaGFyICpwYXRoLCBzdHJ1 Y3QgaG9zdGZzX3N0YXQgKnAsIGludCBmZCkKIHsKIAlzdHJ1Y3Qgc3RhdDY0IGJ1ZjsKQEAgLTQ4 LDYgKzE2Miw3IEBAIGludCBzdGF0X2ZpbGUoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IGhvc3Rm c19zdGF0ICpwLCBpbnQgZmQpCiAJfSBlbHNlIGlmIChsc3RhdDY0KHBhdGgsICZidWYpIDwgMCkg ewogCQlyZXR1cm4gLWVycm5vOwogCX0KKwlyZWFkX3Blcm1pc3Npb25zKHBhdGgsICZidWYpOwog CXN0YXQ2NF90b19ob3N0ZnMoJmJ1ZiwgcCk7CiAJcmV0dXJuIDA7CiB9CkBAIC0xODEsMTMgKzI5 NiwxOSBAQCB2b2lkIGNsb3NlX2Rpcih2b2lkICpzdHJlYW0pCiAJY2xvc2VkaXIoc3RyZWFtKTsK IH0KIAotaW50IGZpbGVfY3JlYXRlKGNoYXIgKm5hbWUsIGludCBtb2RlKQoraW50IGZpbGVfY3Jl YXRlKGNoYXIgKm5hbWUsIGludCBtb2RlLCB1bnNpZ25lZCBpbnQgdWlkLCB1bnNpZ25lZCBpbnQg Z2lkKQogewogCWludCBmZDsKKwlsb25nIHJldDsKIAogCWZkID0gb3BlbjY0KG5hbWUsIE9fQ1JF QVQgfCBPX1JEV1IsIG1vZGUpOwogCWlmIChmZCA8IDApCiAJCXJldHVybiAtZXJybm87CisKKwly ZXQgPSBpc19zZXRfZ2lkKG5hbWUpOworCWlmIChyZXQgIT0gLTEpCisJCWdpZCA9IHJldDsKKwl1 bWxfY2hvd24obmFtZSwgdWlkLCBnaWQpOwogCXJldHVybiBmZDsKIH0KIApAQCAtMTk5LDI1ICsz MjAsMjUgQEAgaW50IHNldF9hdHRyKGNvbnN0IGNoYXIgKmZpbGUsIHN0cnVjdCBob3N0ZnNfaWF0 dHIgKmF0dHJzLCBpbnQgZmQpCiAKIAlpZiAoYXR0cnMtPmlhX3ZhbGlkICYgSE9TVEZTX0FUVFJf TU9ERSkgewogCQlpZiAoZmQgPj0gMCkgewotCQkJaWYgKGZjaG1vZChmZCwgYXR0cnMtPmlhX21v ZGUpICE9IDApCisJCQlpZiAodW1sX2ZjaG1vZChmZCwgYXR0cnMtPmlhX21vZGUpICE9IDApCiAJ CQkJcmV0dXJuIC1lcnJubzsKLQkJfSBlbHNlIGlmIChjaG1vZChmaWxlLCBhdHRycy0+aWFfbW9k ZSkgIT0gMCkgeworCQl9IGVsc2UgaWYgKHVtbF9jaG1vZChmaWxlLCBhdHRycy0+aWFfbW9kZSkg IT0gMCkgewogCQkJcmV0dXJuIC1lcnJubzsKIAkJfQogCX0KIAlpZiAoYXR0cnMtPmlhX3ZhbGlk ICYgSE9TVEZTX0FUVFJfVUlEKSB7CiAJCWlmIChmZCA+PSAwKSB7Ci0JCQlpZiAoZmNob3duKGZk LCBhdHRycy0+aWFfdWlkLCAtMSkpCisJCQlpZiAodW1sX2ZjaG93bihmZCwgYXR0cnMtPmlhX3Vp ZCwgLTEpKQogCQkJCXJldHVybiAtZXJybm87Ci0JCX0gZWxzZSBpZiAoY2hvd24oZmlsZSwgYXR0 cnMtPmlhX3VpZCwgLTEpKSB7CisJCX0gZWxzZSBpZiAodW1sX2Nob3duKGZpbGUsIGF0dHJzLT5p YV91aWQsIC0xKSkgewogCQkJcmV0dXJuIC1lcnJubzsKIAkJfQogCX0KIAlpZiAoYXR0cnMtPmlh X3ZhbGlkICYgSE9TVEZTX0FUVFJfR0lEKSB7CiAJCWlmIChmZCA+PSAwKSB7Ci0JCQlpZiAoZmNo b3duKGZkLCAtMSwgYXR0cnMtPmlhX2dpZCkpCisJCQlpZiAodW1sX2ZjaG93bihmZCwgLTEsIGF0 dHJzLT5pYV9naWQpKQogCQkJCXJldHVybiAtZXJybm87Ci0JCX0gZWxzZSBpZiAoY2hvd24oZmls ZSwgLTEsIGF0dHJzLT5pYV9naWQpKSB7CisJCX0gZWxzZSBpZiAodW1sX2Nob3duKGZpbGUsIC0x LCBhdHRycy0+aWFfZ2lkKSkgewogCQkJcmV0dXJuIC1lcnJubzsKIAkJfQogCX0KQEAgLTI5NCwx MyArNDE1LDE4IEBAIGludCB1bmxpbmtfZmlsZShjb25zdCBjaGFyICpmaWxlKQogCXJldHVybiAw OwogfQogCi1pbnQgZG9fbWtkaXIoY29uc3QgY2hhciAqZmlsZSwgaW50IG1vZGUpCitpbnQgZG9f bWtkaXIoY29uc3QgY2hhciAqZmlsZSwgaW50IG1vZGUsIHVuc2lnbmVkIGludCB1aWQsIHVuc2ln bmVkIGludCBnaWQpCiB7CiAJaW50IGVycjsKKwlsb25nIHJldDsKIAogCWVyciA9IG1rZGlyKGZp bGUsIG1vZGUpOwogCWlmIChlcnIpCiAJCXJldHVybiAtZXJybm87CisJcmV0ID0gaXNfc2V0X2dp ZChmaWxlKTsKKwlpZiAocmV0ICE9IC0xKQorCQlnaWQgPSByZXQ7CisJdW1sX2Nob3duKGZpbGUs IHVpZCwgZ2lkKTsKIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4zOS4yCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtdW0gbWFpbGluZyBsaXN0Cmxp bnV4LXVtQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC11bQo=