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=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 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 692D2C4320A for ; Wed, 4 Aug 2021 23:33:04 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (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 CEC9D610A8 for ; Wed, 4 Aug 2021 23:33:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CEC9D610A8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=schaufler-ca.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-139-5Z0ZGCLCMWmpXzSBKoO4Ig-1; Wed, 04 Aug 2021 19:33:01 -0400 X-MC-Unique: 5Z0ZGCLCMWmpXzSBKoO4Ig-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 037E81853024; Wed, 4 Aug 2021 23:32:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 503B65F724; Wed, 4 Aug 2021 23:32:55 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C91334BB7C; Wed, 4 Aug 2021 23:32:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 174NWolo019632 for ; Wed, 4 Aug 2021 19:32:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8F52E200E64D; Wed, 4 Aug 2021 23:32:50 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8AB78200E65B for ; Wed, 4 Aug 2021 23:32:47 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EF4F180158D for ; Wed, 4 Aug 2021 23:32:46 +0000 (UTC) Received: from sonic313-15.consmr.mail.ne1.yahoo.com (sonic313-15.consmr.mail.ne1.yahoo.com [66.163.185.38]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-394-aAYYqaPJMZqN3VqmGYgWfA-1; Wed, 04 Aug 2021 19:32:45 -0400 X-MC-Unique: aAYYqaPJMZqN3VqmGYgWfA-1 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1628119964; bh=36ErhgdCDq4WXyNMAk/4rK8vn8Djv/OL3+0grC6jdV3=; h=X-Sonic-MF:From:Subject:To:Date:From:Subject; b=btXr7zN8JG8sS9XNL2WB1MOi9JpVPtt0CGCImOOeVudMhjrxyOFbBM0GyyQExn9EIxAg9XP3lDD6PdHu5Xsf4mjz8XP3hE9TH0pdZbUriXxByYO9XsRRbnCYs+k5tj0c16Xv/QCqGnNcPLzr+Qk8YrmSIj4q/HoO1QlFExE3yDCz4cPS9ahk5QSTKpWAQzsvavI31r2NytjMYqyRJfZqi4clcWpqmtsG27HfoNCw+vfhOpVvjFBPPc/X1OMuz4FSAeCHqb9R4f0JU2UdMjoK/9QujF0JBsUvXpnt6H2qC9LbbO0w8Nyig/Do9EU2cg8Ms5sWPrskzS7chtubj6hoeA== X-YMail-OSG: GLFPx1MVM1n9FKOq3JtL9VQijygmOAo5GRwKt79zyZ8KiRUt0c2uTVTtaK9yRnv pgdcXK4QwrmRj.mCFQoxmNY1VFKsPZSqiiKqMZvfpAocJMUF5r9qE6gy3A_Ejpg7S5Cv7GPVJm._ uJ5GY1p6MOWE9lbYjPDC4fanSFQrh.hY9_dRQCsyz_Z8W2lkBf2Iqolw4_YmPj2yVt4JA2xD4fqI VFSDfpGAxW5rvIEATnDO2UB7Hh.WGXdUX.Peb4DpLVy540GoeszKNu4cSdafnUnLhntK1WaqMp4L AFkjWxhyUWMZS1PGBO2wmBhA74JXdV1RgZh8mQ.03A7ahf4bQhMQLwJffq2dUqKLx0nvdmL1BOIo gUf79z06AubWkIxuwSR15sKDJes9rinnTmZNnJ.awqTdB8e61oeGbAgCOFSQfaaU9zFLhHbggTyO kDuTLS_jihaTrA4sgjRTl3YvgB_2B7WTFLw1Q6zicy7rVGa8eo12xKUSwKMG8uB_rq5EX15AWm1e n3o7vSZTfQfLOGbx4RuSr5xQZWmdrjIrEE_Xi3pW9xElVloFImiCxh1wWJoebqXygYt_wrh0gUdl mGg2Oy6r5E65cbP_ZgU4pEbzFXjdbJIjU71mM1ioC2EYlbKVt70mSLYw.ZFR7TxWDp4gCAMpEbgT vKuBybQMnMZMTw4FUeFFrTJIvVsSPNcEub847i8k4OnAbxHHspKXyUCBfrfbooUQvJpGqUVLAsLA wRqdbr0_XxmX3IRPHo.YN3GqTEOjmFeVTU.QLUkU5SDv96elhVgAPz3AUbbF0ztYL2yCxJVUVAH0 XYX53xG3DKDVu53aTKuwJ4i1lBmjXzRhuX7r3E6rK0XYZmFiJexjdwfISKmWKzlHr5MbWIMBzt3_ NAnE32qPrqtyJ_JIvmETsAvuEV3WNWj_p8LsJ7B2xvI4ciGqO7Weh5xAXdqCbkcov6CI8GTj9OdN vs7iN9b5JF6W2yYIpsCliYjHn8a6Dv07VO6Tr5L.w6lKbsAPctJ1nav99XVjF3jCbF5XdIRPqxcH VuhDph4UblFg8j.bJR6xAT83sL912cWm67F8BbXFm63TIEKXgr5KyFZ4yPzhTXsTSuF56F875mM6 B.SYRx6r0yGvR6c5ESwzDGdmRaMI4QtMq8O8HSI9FeYG5qjWfLRBrWcUdBFZl.j5WWsWhZqQrpwR YoM_tg643Dod7o_iHtUPcy6ZFl4fb.yBv8GECZUujYroUhu8kTvmcqD4MKVrCrBU5CTGb0TGKm.f eNDPYhoiOabyAmAl1tUUocgKjZKxYgZLtwyaUyolBi.nUN5ntfASbnbRGl.V4An5Kv4fHd_fbPbt kNeSohKCpqhSZ47u_kQmP1mDIDkuM4Yg7stC5LFEXgu0FT84pX3slxhYBmj4ytF4E6Ha7W3WhUZO tOFAUqNHiTdjB8f2zuHL3gtgV35Pp9rLMuCpq2vSoRc7baXqOUzb_gPKLH1udC0khGNyahxWoLYA hggJ5MKilLXy5o4gVrWzj2K4ewCE0OO3B5vcAPghVR3XCwHdczFuXfQmoV4.5CMCteXRqTCVQPVI hRjSiWNkEsqna0Jq58xR2tj5iYCYnnIXFEt.WbSeLUEMhcZfwuTRRGU4uP4pa51M0.0PkXrb9.OP TzrUaCX6VeA5ESh8GpAK8GoKU_gAH7ksb9pbRgtfYlRP2I0s37bf7oBx6MH3OhYrlj79h7m7.Yc8 MzifaAlRxedMGP8TNYfeQVo8OSHwODIAJhSTaZthKeDAndzQjbb5d17p7xpIF97RiU9S93nzuOOY Fc5BxEhAHVDJiX8l65F2eTq1B1XneX8DCZlc2Cxai8KHtA.IGeMb3_PCpLGrbi4T8PQ8cDe5ReE2 yOsEdtq8b0DaNgbQlGGnvqiqbw9HaofaU_Lh_pHoWliHXdLEGUXkFa26en9uDO9gg_92hAWk2OKr RUV19xjrBaQ4qNUpL51fsliP1Bfi0m4rhmzzQ4mIpTR5Beayqk2c6zKlpWUpLXE3NB6WCzWIoMlu 9Jf5U0wlTJm9g8yjQL4AdWVxKp51aatmwfhU1byRsPeKZ86qXziYUY0PickwkuLQKZLsDAr_.nFW q5VMBcouG1j6bxXyV8zPiZ2Rk5BRDSl6HkwBFy_zIT6HyftFiRThtr3eENun9DnkFxKxUvyuR6bD SVuBZ4bk02PBA6kH7OgcCcJs8.e7JO7PEaNukajP2CJGUGc8Fu2qgQhjAkbQW_8ruoxsfp0JFpns 17AYKKOXkDSZhQV9zJsPe1FfAtHEVZZLPTo6O6fw2Ot0vnzvGmvijEW23l8aWeVAEXlKWQfoUtmF TXExW2epsDBK.aseYOZLiYaZPMhLhuq5fNv8XpLjEwYn4ltDg8tZQXVOhwNjEs7Ko.8q.7TWy_eF 3O1uXPAnv3uCuHaBLhHA214VHf_BE_8omERf2KzBGLFefbHIrpmEAsgppQuRUYi5z8dGYosPNzW5 uidAcrQVaQSQr9g79f3w.r6I3swGFdDY949_syW5le6VlaLwjNtHtKf3eHB57Xu.8CSij0ho4QCs 5OGBrEHibKMxhalhM5ruhdEh2iRv6fTHUIMgW95kNQqBG9tiTtaPLGEg0RYEkWCfcDoZdNvs2LMG WkowmFJP0vd3zAQGCvP1ih.FC8HGn6SFTwg-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Wed, 4 Aug 2021 23:32:44 +0000 Received: by kubenode522.mail-prod1.omega.bf1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 693901fd20a0e4c943526ece34fb6d6f; Wed, 04 Aug 2021 23:32:39 +0000 (UTC) From: Casey Schaufler Subject: [PATCH RFC] audit-userspace: support for MAC_TASK_CONTEXTS and MAC_OBJ_CONTEXTS To: Steve Grubb , "linux-audit@redhat.com" Message-ID: <407c1b04-f6ca-327d-0227-77f97c3f6f2c@schaufler-ca.com> Date: Wed, 4 Aug 2021 16:32:37 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 References: <407c1b04-f6ca-327d-0227-77f97c3f6f2c.ref@schaufler-ca.com> X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 174NWolo019632 X-loop: linux-audit@redhat.com X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=linux-audit-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhpcyBwYXRjaCBzdXBwbGllcyB1c2Vyc3BhY2Ugc3VwcG9ydCBmb3IgdGhlIE1BQ19UQVNLX0NP TlRFWFRTCmFuZCBNQUNfT0JKX0NPTlRFWFRTIGF1ZGl0IHJlY29yZHMgcHJvcG9zZWQgYXMgcGFy dCBvZiB0aGUgTGludXgKc2VjdXJpdHkgbW9kdWxlIChMU00pIHN0YWNraW5nIGVmZm9ydC4KCkkg aGF2ZSBwb3N0ZWQgYXMgYW4gUkZDIGJlY2F1c2UsIHdlbGwsIEknZCBsaWtlIGNvbW1lbnRzLgoK VGhlIGFkZGl0aW9uYWwgY29udGV4dCB2YWx1ZXMgYXJlIGFkZGVkIHRvIHRoZSBleGlzdGluZyBs aXN0cy4KVGhlIGV4aXN0aW5nIHNlYXJjaCBtZXRob2RzIHdvcmsgb24gdGhlc2UgbGlzdHMsIHNv IHRoYXQncyBhYm91dAphbGwgaXQgdGFrZXMuCgoKLS0tCsKgbGliL2xpYmF1ZGl0LmggICAgICAg fCAgIDggKysrKwogbGliL21zZ190eXBldGFiLmggICAgfCAgIDIgKwogc3JjL2F1c2VhcmNoLXBh cnNlLmMgfCAxMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv bGliL2xpYmF1ZGl0LmggYi9saWIvbGliYXVkaXQuaAppbmRleCBlZDc1ODkyLi45YmMzYWE5IDEw MDY0NAotLS0gYS9saWIvbGliYXVkaXQuaAorKysgYi9saWIvbGliYXVkaXQuaApAQCAtMzExLDYg KzMxMSwxNCBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgQVVESVRfTUFDX0NBTElQU09fREVMCTE0 MTkgLyogTmV0TGFiZWw6IGRlbCBDQUxJUFNPIERPSSBlbnRyeSAqLwogI2VuZGlmCiAKKyNpZm5k ZWYgQVVESVRfTUFDX1RBU0tfQ09OVEVYVFMKKyNkZWZpbmUgQVVESVRfTUFDX1RBU0tfQ09OVEVY VFMJMTQyMCAvKiBNdWx0aWxwbGUgdGFzayBjb250ZXh0cyAqLworI2VuZGlmCisKKyNpZm5kZWYg QVVESVRfTUFDX09CSl9DT05URVhUUworI2RlZmluZSBBVURJVF9NQUNfT0JKX0NPTlRFWFRTCTE0 MjEgLyogTXVsdGlscGxlIG9iamVjdCBjb250ZXh0cyAqLworI2VuZGlmCisKICNpZm5kZWYgQVVE SVRfQU5PTV9MSU5LCiAjZGVmaW5lIEFVRElUX0FOT01fTElOSwkJMTcwMiAvKiBTdXNwaWNpb3Vz IHVzZSBvZiBmaWxlIGxpbmtzICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYi9tc2dfdHlwZXRh Yi5oIGIvbGliL21zZ190eXBldGFiLmgKaW5kZXggZGJhMmY3Yi4uZTZkZjI4YiAxMDA2NDQKLS0t IGEvbGliL21zZ190eXBldGFiLmgKKysrIGIvbGliL21zZ190eXBldGFiLmgKQEAgLTE0Nyw2ICsx NDcsOCBAQCBfUyhBVURJVF9NQUNfVU5MQkxfU1RDQURELCAgICAgICAgICAgIk1BQ19VTkxCTF9T VENBREQiICAgICAgICAgICAgICApCiBfUyhBVURJVF9NQUNfVU5MQkxfU1RDREVMLCAgICAgICAg ICAgIk1BQ19VTkxCTF9TVENERUwiICAgICAgICAgICAgICApCiBfUyhBVURJVF9NQUNfQ0FMSVBT T19BREQsICAgICAgICAgICAgIk1BQ19DQUxJUFNPX0FERCIgICAgICAgICAgICAgICApCiBfUyhB VURJVF9NQUNfQ0FMSVBTT19ERUwsICAgICAgICAgICAgIk1BQ19DQUxJUFNPX0RFTCIgICAgICAg ICAgICAgICApCitfUyhBVURJVF9NQUNfVEFTS19DT05URVhUUywgICAgICAgICAgIk1BQ19UQVNL X0NPTlRFWFRTIiAgICAgICAgICAgICApCitfUyhBVURJVF9NQUNfT0JKX0NPTlRFWFRTLCAgICAg ICAgICAgIk1BQ19PQkpfQ09OVEVYVFMiICAgICAgICAgICAgICApCiBfUyhBVURJVF9BTk9NX1BS T01JU0NVT1VTLCAgICAgICAgICAgIkFOT01fUFJPTUlTQ1VPVVMiICAgICAgICAgICAgICApCiBf UyhBVURJVF9BTk9NX0FCRU5ELCAgICAgICAgICAgICAgICAgIkFOT01fQUJFTkQiICAgICAgICAg ICAgICAgICAgICApCiBfUyhBVURJVF9BTk9NX0xJTkssICAgICAgICAgICAgICAgICAgIkFOT01f TElOSyIgICAgICAgICAgICAgICAgICAgICApCmRpZmYgLS1naXQgYS9zcmMvYXVzZWFyY2gtcGFy c2UuYyBiL3NyYy9hdXNlYXJjaC1wYXJzZS5jCmluZGV4IDllZTRhNGYuLjI4NjgyOWUgMTAwNjQ0 Ci0tLSBhL3NyYy9hdXNlYXJjaC1wYXJzZS5jCisrKyBiL3NyYy9hdXNlYXJjaC1wYXJzZS5jCkBA IC02Myw2ICs2Myw4IEBAIHN0YXRpYyBpbnQgcGFyc2Vfc2ltcGxlX21lc3NhZ2UoY29uc3QgbG5v ZGUgKm4sIHNlYXJjaF9pdGVtcyAqcyk7CiBzdGF0aWMgaW50IHBhcnNlX3R0eShjb25zdCBsbm9k ZSAqbiwgc2VhcmNoX2l0ZW1zICpzKTsKIHN0YXRpYyBpbnQgcGFyc2VfcGt0KGNvbnN0IGxub2Rl ICpuLCBzZWFyY2hfaXRlbXMgKnMpOwogc3RhdGljIGludCBwYXJzZV9rZXJuZWwobG5vZGUgKm4s IHNlYXJjaF9pdGVtcyAqcyk7CitzdGF0aWMgaW50IHBhcnNlX3Rhc2tfY29udGV4dHMobG5vZGUg Km4sIHNlYXJjaF9pdGVtcyAqcyk7CitzdGF0aWMgaW50IHBhcnNlX29ial9jb250ZXh0cyhsbm9k ZSAqbiwgc2VhcmNoX2l0ZW1zICpzKTsKIAogCiBzdGF0aWMgaW50IGF1ZGl0X2F2Y19pbml0KHNl YXJjaF9pdGVtcyAqcykKQEAgLTE4NCw2ICsxODYsMTIgQEAgaW50IGV4dHJhY3Rfc2VhcmNoX2l0 ZW1zKGxsaXN0ICpsKQogCQkJY2FzZSBBVURJVF9UVFk6CiAJCQkJcmV0ID0gcGFyc2VfdHR5KG4s IHMpOwogCQkJCWJyZWFrOworCQkJY2FzZSBBVURJVF9NQUNfVEFTS19DT05URVhUUzoKKwkJCQly ZXQgPSBwYXJzZV90YXNrX2NvbnRleHRzKG4sIHMpOworCQkJCWJyZWFrOworCQkJY2FzZSBBVURJ VF9NQUNfT0JKX0NPTlRFWFRTOgorCQkJCXJldCA9IHBhcnNlX29ial9jb250ZXh0cyhuLCBzKTsK KwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJaWYgKGV2ZW50X2RlYnVnKQogCQkJCQlmcHJp bnRmKHN0ZGVyciwKQEAgLTI3NjgsMyArMjc3Niw5NiBAQCBzdGF0aWMgaW50IHBhcnNlX2tlcm5l bChsbm9kZSAqbiwgc2VhcmNoX2l0ZW1zICpzKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50 IHBhcnNlX3Rhc2tfY29udGV4dChsbm9kZSAqbiwgc2VhcmNoX2l0ZW1zICpzLCBjaGFyICpjLCBp bnQgbCkKK3sKKwljaGFyICpzdHIsICp0ZXJtOworCWFub2RlIGFuOworCisJc3RyID0gc3Ryc3Ry KG4tPm1lc3NhZ2UsIGMpOworCWlmIChzdHIgPT0gTlVMTCkKKwkJcmV0dXJuIDY0OworCisJc3Ry ICs9IGw7CisJdGVybSA9IHN0cmNocihzdHIsICciJyk7CisJaWYgKHRlcm0gPT0gTlVMTCkKKwkJ cmV0dXJuIDYyOworCSp0ZXJtID0gMDsKKwlpZiAoYXVkaXRfYXZjX2luaXQocykgIT0gMCkKKwkJ cmV0dXJuIDYzOworCisJYW5vZGVfaW5pdCgmYW4pOworCWFuLnNjb250ZXh0ID0gc3RyZHVwKHN0 cik7CisJYWxpc3RfYXBwZW5kKHMtPmF2YywgJmFuKTsKKwkqdGVybSA9ICciJzsKKworCXJldHVy biAwOworfQorCisvLyBwYXJzZSBtdWx0aXBsZSBzZWN1cml0eSBtb2R1bGUgY29udGV4dHMKKy8v IHN1YmpfPGxzbT4uLi4KK3N0YXRpYyBpbnQgcGFyc2VfdGFza19jb250ZXh0cyhsbm9kZSAqbiwg c2VhcmNoX2l0ZW1zICpzKQoreworCWludCByYywgZmluYWwgPSA2NDsKKworCWlmICghZXZlbnRf c3ViamVjdCkKKwkJcmV0dXJuIDA7CisKKwlyYyA9IHBhcnNlX3Rhc2tfY29udGV4dChuLCBzLCAi c3Vial9zZWxpbnV4PVwiIiwgMTQpOworCWlmIChyYyA9PSA2MiB8fCByYyA9PSA2MykKKwkJcmV0 dXJuIHJjOworCWlmIChyYyA9PSAwKQorCQlmaW5hbCA9IDA7CisKKwlyYyA9IHBhcnNlX3Rhc2tf Y29udGV4dChuLCBzLCAic3Vial9zbWFjaz1cIiIsIDEyKTsKKwlpZiAocmMgPT0gNjIgfHwgcmMg PT0gNjMpCisJCXJldHVybiByYzsKKwlpZiAocmMgPT0gMCkKKwkJZmluYWwgPSAwOworCisJcmMg PSBwYXJzZV90YXNrX2NvbnRleHQobiwgcywgInN1YmpfYXBwYXJtb3I9XCIiLCAxNSk7CisJaWYg KHJjID09IDYyIHx8IHJjID09IDYzKQorCQlyZXR1cm4gcmM7CisJaWYgKHJjID09IDApCisJCWZp bmFsID0gMDsKKworCXJldHVybiBmaW5hbDsKK30KKworc3RhdGljIGludCBwYXJzZV9vYmpfY29u dGV4dChsbm9kZSAqbiwgc2VhcmNoX2l0ZW1zICpzLCBjaGFyICpjLCBpbnQgbCkKK3sKKwljaGFy ICpzdHIsICp0ZXJtOworCWFub2RlIGFuOworCisJc3RyID0gc3Ryc3RyKG4tPm1lc3NhZ2UsIGMp OworCWlmIChzdHIgIT0gTlVMTCkgeworCQlzdHIgKz0gbDsKKwkJdGVybSA9IHN0cmNocihzdHIs ICciJyk7CisJCWlmICh0ZXJtKQorCQkJKnRlcm0gPSAwOworCQlpZiAoYXVkaXRfYXZjX2luaXQo cykgIT0gMCkKKwkJCXJldHVybiAyOworCQlhbm9kZV9pbml0KCZhbik7CisJCWFuLnRjb250ZXh0 ID0gc3RyZHVwKHN0cik7CisJCWFsaXN0X2FwcGVuZChzLT5hdmMsICZhbik7CisJCWlmICh0ZXJt KQorCQkJKnRlcm0gPSAnIic7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8vIHBhcnNlIG11bHRp cGxlIG9iamVjdCBzZWN1cml0eSBtb2R1bGUgY29udGV4dHMKKy8vIG9ial88bHNtPi4uLgorc3Rh dGljIGludCBwYXJzZV9vYmpfY29udGV4dHMobG5vZGUgKm4sIHNlYXJjaF9pdGVtcyAqcykKK3sK KwkvLyBvYmogY29udGV4dAorCWlmICghZXZlbnRfb2JqZWN0KQorCQlyZXR1cm4gMDsKKworCWlm IChwYXJzZV9vYmpfY29udGV4dChuLCBzLCAib2JqX3NlbGludXg9XCIiLCAxMikpCisJCXJldHVy biAyOworCWlmIChwYXJzZV9vYmpfY29udGV4dChuLCBzLCAib2JqX3NtYWNrPVwiIiwgMTApKQor CQlyZXR1cm4gMjsKKworCXJldHVybiAwOworfQoKCgotLQpMaW51eC1hdWRpdCBtYWlsaW5nIGxp c3QKTGludXgtYXVkaXRAcmVkaGF0LmNvbQpodHRwczovL2xpc3RtYW4ucmVkaGF0LmNvbS9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWF1ZGl0