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=-3.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 CC907C2D0A3 for ; Mon, 9 Nov 2020 17:42:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5B62A20639 for ; Mon, 9 Nov 2020 17:42:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LXxbzlKw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731522AbgKIRmt (ORCPT ); Mon, 9 Nov 2020 12:42:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36758 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731430AbgKIRmt (ORCPT ); Mon, 9 Nov 2020 12:42:49 -0500 Received: from mail-yb1-xb34.google.com (mail-yb1-xb34.google.com [IPv6:2607:f8b0:4864:20::b34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89F46C0613CF for ; Mon, 9 Nov 2020 09:42:49 -0800 (PST) Received: by mail-yb1-xb34.google.com with SMTP id i193so8983055yba.1 for ; Mon, 09 Nov 2020 09:42:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=hpiaBTulqsz+Cdjiin02yr4TMNDGi8WOpigMh6dMHFk=; b=LXxbzlKwP+sHsJfepuRjZpqW0zaoGMc39CuZhvyzNv2H7SG3Nvl9SYTz9QJgBFomJ9 h3POI7eWln4GaenQomkQUKwn3d9TPKUEyWbZOxE4/HS204piXHEmDbbnz4dYp4nwDg3g 9veuESpWFK0lNwtOXyf9uPz7fssM2LQlObMxelDVJKX2dGOGux/+OP+ASUCXiaRFKC67 YSJxGFlnIL/DD3MuKfFbR0qMC+G/BBASSRfacJcMfsvYBoC/Mq2JVVl2VswSU5Rnl3u3 NWobq0G4zK5XbeJlyPdkOHtAVI5cfW1f6rMzZSUkyH9A4rEQORpBDcbXaAxWtYoXaUUf YIkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=hpiaBTulqsz+Cdjiin02yr4TMNDGi8WOpigMh6dMHFk=; b=rH0FXgNCH7T4AT1mFunB3r6ywKF1nGIu3sRBOoLpEQCcxsEW5WSMgrESRKW881/o+l yAN7VlEtJdFWYrTE3Sr3lAh+C5dERrojw62fiWKvitOaSbC4HgUEcxOT+xpPyPOH2AgE VZ8y5J3hhOvqOolVE7RQ8jyV2YuzV+M5h+32fn5+ohHkSupJEhrepDMSQTkvmE67qZpp LKBEuN8z6qhUMvKsgoh+jws7ED7sNDLxW46b29h45hf60x4li+iVjX7YMnhXTVAnngfV 0NV0E3ZlEkC7R4yiMxJrLMc/zTW+mG9TBjrmehKRFzLgX6ui2Vc256d4/EF3hExoQqWp Inlg== X-Gm-Message-State: AOAM531/Ko4/xhpZhRecBP7VwWKjFCr7Dk/0cxTeUvJbegdtQBLwQXi+ U3WyGlXLIM6rUEbf87RIUybPmNfMPoH8uvp6J8mrDhA46gU= X-Google-Smtp-Source: ABdhPJyYnPg4bY4zJXmMxzLabxEFxw3Yqg9TgS2JSFU0XruEVzfYZAVdAm5huEtU+qIgYQVUiWxLdLpLSogG6I0BG5U= X-Received: by 2002:a25:7608:: with SMTP id r8mr8402340ybc.131.1604943768775; Mon, 09 Nov 2020 09:42:48 -0800 (PST) MIME-Version: 1.0 From: Shyam Prasad N Date: Mon, 9 Nov 2020 23:12:38 +0530 Message-ID: Subject: [PATCH 1/2] cifs: Fix unix perm bits to cifsacl conversion for "other" bits. To: Steve French , CIFS Content-Type: multipart/mixed; boundary="00000000000039129605b3b01701" Precedence: bulk List-ID: X-Mailing-List: linux-cifs@vger.kernel.org --00000000000039129605b3b01701 Content-Type: text/plain; charset="UTF-8" Hi Steve, Here's the patch as per the discussion. I'm trying to maintain a preferred order of ACEs as much as possible. I had to modify the reverse conversion logic, since deny ACEs can appear in the middle of the list now. Tested thoroughly with many permission modes, conversions and reverse conversions. FYI, there's a sticky bit implementation which I've patched on top of this fix. Will send that for review soon. -- -Shyam --00000000000039129605b3b01701 Content-Type: application/octet-stream; name="0001-cifs-Fix-unix-perm-bits-to-cifsacl-conversion-for-ot.patch" Content-Disposition: attachment; filename="0001-cifs-Fix-unix-perm-bits-to-cifsacl-conversion-for-ot.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_khau2mb90 RnJvbSAyMDg4Y2NlMTM1MjJjNTkzODZlZTFjN2QzNTVkMjUzOWNjZDc5ZGI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHlhbSBQcmFzYWQgTiA8c3ByYXNhZEBtaWNyb3NvZnQuY29t PgpEYXRlOiBNb24sIDE3IEF1ZyAyMDIwIDAzOjIzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g Y2lmczogRml4IHVuaXggcGVybSBiaXRzIHRvIGNpZnNhY2wgY29udmVyc2lvbiBmb3IgIm90aGVy IgogYml0cy4KCldpdGggdGhlICJjaWZzYWNsIiBtb3VudCBvcHRpb24sIHRoZSBtb2RlIGJpdHMg c2V0IG9uIHRoZSBmaWxlL2RpcgppcyBjb252ZXJ0ZWQgdG8gY29ycmVzcG9uZGluZyBBQ0VzIGlu IERBQ0wuIEhvd2V2ZXIsIG9ubHkgdGhlCkFMTE9XRUQgQUNFcyB3ZXJlIGJlaW5nIHNldCBmb3Ig Im93bmVyIiBhbmQgImdyb3VwIiBTSURzLiBTaW5jZQpvd25lciBpcyBhIHN1YnNldCBvZiBncm91 cCwgYW5kIGdyb3VwIGlzIGEgc3Vic2V0IG9mCmV2ZXJ5b25lL3dvcmxkIFNJRCwgaW4gb3JkZXIg dG8gcHJvcGVybHkgZW11bGF0ZSB1bml4IHBlcm0gZ3JvdXBzLAp3ZSBuZWVkIHRvIGFkZCBERU5J RUQgQUNFcy4gSWYgd2UgZG9uJ3QgZG8gdGhhdCwgIm93bmVyIiBhbmQgImdyb3VwIgpTSURzIGNv dWxkIGdldCBtb3JlIGFjY2VzcyByaWdodHMgdGhhbiB0aGV5IHNob3VsZC4gV2hpY2ggaXMgd2hh dAp3YXMgaGFwcGVuaW5nLiBUaGlzIGZpeGVzIGl0LgoKV2UgdHJ5IHRvIGtlZXAgdGhlICJwcmVm ZXJyZWQiIG9yZGVyIG9mIEFDRXMsIGkuZS4gREVOWXMgZm9sbG93ZWQKYnkgQUxMT1dzLiBIb3dl dmVyLCBmb3IgYSBzbWFsbCBzdWJzZXQgb2YgY2FzZXMgd2UgY2Fubm90Cm1haW50YWluIHRoZSBw cmVmZXJyZWQgb3JkZXIuIEluIHRoYXQgY2FzZSwgd2UnbGwgZW5kIHVwIHdpdGggdGhlCkRFTlkg QUNFIGZvciBncm91cCBhZnRlciB0aGUgQUxMT1cgZm9yIHRoZSBvd25lci4KCklmIG93bmVyIFNJ RCA9PSBncm91cCBTSUQsIHVzZSB0aGUgbW9yZSByZXN0cmljdGl2ZQphbW9uZyB0aGUgdHdvIHBl cm0gYml0cyBhbmQgY29udmVydCB0aGVtIHRvIEFDRXMuCgpBbHNvLCBmb3IgcmV2ZXJzZSBtYXBw aW5nLCBpLmUuIHRvIGNvbnZlcnQgQUNMIHRvIHVuaXggcGVybSBiaXRzLApmb3IgdGhlICJvdGhl cnMiIGJpdHMsIHdlIG5lZWRlZCB0byBhZGQgdGhlIG1hc2tlZCBiaXRzIG9mIHRoZQpvd25lciBh bmQgZ3JvdXAgbWFza3MgdG8gb3RoZXJzIG1hc2suCgpTaWduZWQtb2ZmLWJ5OiBTaHlhbSBQcmFz YWQgTiA8c3ByYXNhZEBtaWNyb3NvZnQuY29tPgotLS0KIGZzL2NpZnMvY2lmc2FjbC5jICAgfCAy MTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGZzL2NpZnMv Y2lmc3Byb3RvLmggfCAgIDQgKy0KIGZzL2NpZnMvaW5vZGUuYyAgICAgfCAgMTIgKystCiAzIGZp bGVzIGNoYW5nZWQsIDE1NCBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9mcy9jaWZzL2NpZnNhY2wuYyBiL2ZzL2NpZnMvY2lmc2FjbC5jCmluZGV4IDIzYjIxZTk0 MzY1Mi4uYTgyODM3M2MxZWZmIDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNhY2wuYworKysgYi9m cy9jaWZzL2NpZnNhY2wuYwpAQCAtNTU3LDMwICs1NTcsMzcgQEAgc3RhdGljIHZvaWQgY29weV9z ZWNfZGVzYyhjb25zdCBzdHJ1Y3QgY2lmc19udHNkICpwbnRzZCwKICAgIGJpdHMgdG8gc2V0IGNh biBiZTogU19JUldYVSwgU19JUldYRyBvciBTX0lSV1hPIGllIDAwNzAwIG9yIDAwMDcwIG9yIDAw MDA3CiAqLwogc3RhdGljIHZvaWQgYWNjZXNzX2ZsYWdzX3RvX21vZGUoX19sZTMyIGFjZV9mbGFn cywgaW50IHR5cGUsIHVtb2RlX3QgKnBtb2RlLAotCQkJCSB1bW9kZV90ICpwYml0c190b19zZXQp CisJCQkJIHVtb2RlX3QgKnBkZW5pZWQsIHVtb2RlX3QgbWFzaykKIHsKIAlfX3UzMiBmbGFncyA9 IGxlMzJfdG9fY3B1KGFjZV9mbGFncyk7Ci0JLyogdGhlIG9yZGVyIG9mIEFDRXMgaXMgaW1wb3J0 YW50LiAgVGhlIGNhbm9uaWNhbCBvcmRlciBpcyB0byBiZWdpbiB3aXRoCi0JICAgREVOWSBlbnRy aWVzIGZvbGxvd2VkIGJ5IEFMTE9XLCBvdGhlcndpc2UgYW4gYWxsb3cgZW50cnkgY291bGQgYmUK LQkgICBlbmNvdW50ZXJlZCBmaXJzdCwgbWFraW5nIHRoZSBzdWJzZXF1ZW50IGRlbnkgZW50cnkg bGlrZSAiZGVhZCBjb2RlIgotCSAgIHdoaWNoIHdvdWxkIGJlIHN1cGVyZmxvdXMgc2luY2UgV2lu ZG93cyBzdG9wcyB3aGVuIGEgbWF0Y2ggaXMgbWFkZQotCSAgIGZvciB0aGUgb3BlcmF0aW9uIHlv dSBhcmUgdHJ5aW5nIHRvIHBlcmZvcm0gZm9yIHlvdXIgdXNlciAqLwotCi0JLyogRm9yIGRlbnkg QUNFcyB3ZSBjaGFuZ2UgdGhlIG1hc2sgc28gdGhhdCBzdWJzZXF1ZW50IGFsbG93IGFjY2Vzcwot CSAgIGNvbnRyb2wgZW50cmllcyBkbyBub3QgdHVybiBvbiB0aGUgYml0cyB3ZSBhcmUgZGVueWlu ZyAqLworCS8qCisJICogRG8gbm90IGFzc3VtZSAicHJlZmVycmVkIiBvciAiY2Fub25pY2FsIiBv cmRlci4KKwkgKiBUaGUgZmlyc3QgREVOWSBvciBBTExPVyBBQ0Ugd2hpY2ggbWF0Y2hlcyBwZXJm ZWN0bHkgaXMKKwkgKiB0aGUgcGVybWlzc2lvbiB0byBiZSB1c2VkLiBPbmNlIGFsbG93ZWQgb3Ig ZGVuaWVkLCBzYW1lCisJICogcGVybWlzc2lvbiBpbiBsYXRlciBBQ0VzIGRvIG5vdCBtYXR0ZXIu CisJICovCisKKwkvKiBJZiBub3QgYWxyZWFkeSBhbGxvd2VkLCBkZW55IHRoZXNlIGJpdHMgKi8K IAlpZiAodHlwZSA9PSBBQ0NFU1NfREVOSUVEKSB7Ci0JCWlmIChmbGFncyAmIEdFTkVSSUNfQUxM KQotCQkJKnBiaXRzX3RvX3NldCAmPSB+U19JUldYVUdPOwotCi0JCWlmICgoZmxhZ3MgJiBHRU5F UklDX1dSSVRFKSB8fAotCQkJKChmbGFncyAmIEZJTEVfV1JJVEVfUklHSFRTKSA9PSBGSUxFX1dS SVRFX1JJR0hUUykpCi0JCQkqcGJpdHNfdG9fc2V0ICY9IH5TX0lXVUdPOwotCQlpZiAoKGZsYWdz ICYgR0VORVJJQ19SRUFEKSB8fAotCQkJKChmbGFncyAmIEZJTEVfUkVBRF9SSUdIVFMpID09IEZJ TEVfUkVBRF9SSUdIVFMpKQotCQkJKnBiaXRzX3RvX3NldCAmPSB+U19JUlVHTzsKLQkJaWYgKChm bGFncyAmIEdFTkVSSUNfRVhFQ1VURSkgfHwKLQkJCSgoZmxhZ3MgJiBGSUxFX0VYRUNfUklHSFRT KSA9PSBGSUxFX0VYRUNfUklHSFRTKSkKLQkJCSpwYml0c190b19zZXQgJj0gflNfSVhVR087CisJ CWlmIChmbGFncyAmIEdFTkVSSUNfQUxMICYmCisJCQkJISgqcG1vZGUgJiBtYXNrICYgMDc3Nykp CisJCQkqcGRlbmllZCB8PSBtYXNrICYgMDc3NzsKKworCQlpZiAoKChmbGFncyAmIEdFTkVSSUNf V1JJVEUpIHx8CisJCQkJKChmbGFncyAmIEZJTEVfV1JJVEVfUklHSFRTKSA9PSBGSUxFX1dSSVRF X1JJR0hUUykpICYmCisJCQkJISgqcG1vZGUgJiBtYXNrICYgMDIyMikpCisJCQkqcGRlbmllZCB8 PSBtYXNrICYgMDIyMjsKKworCQlpZiAoKChmbGFncyAmIEdFTkVSSUNfUkVBRCkgfHwKKwkJCQko KGZsYWdzICYgRklMRV9SRUFEX1JJR0hUUykgPT0gRklMRV9SRUFEX1JJR0hUUykpICYmCisJCQkJ ISgqcG1vZGUgJiBtYXNrICYgMDQ0NCkpCisJCQkqcGRlbmllZCB8PSBtYXNrICYgMDQ0NDsKKwor CQlpZiAoKChmbGFncyAmIEdFTkVSSUNfRVhFQ1VURSkgfHwKKwkJCQkoKGZsYWdzICYgRklMRV9F WEVDX1JJR0hUUykgPT0gRklMRV9FWEVDX1JJR0hUUykpICYmCisJCQkJISgqcG1vZGUgJiBtYXNr ICYgMDExMSkpCisJCQkqcGRlbmllZCB8PSBtYXNrICYgMDExMTsKKwogCQlyZXR1cm47CiAJfSBl bHNlIGlmICh0eXBlICE9IEFDQ0VTU19BTExPV0VEKSB7CiAJCWNpZnNfZGJnKFZGUywgInVua25v d24gYWNjZXNzIGNvbnRyb2wgdHlwZSAlZFxuIiwgdHlwZSk7CkBAIC01ODgsMjAgKzU5NSwyNyBA QCBzdGF0aWMgdm9pZCBhY2Nlc3NfZmxhZ3NfdG9fbW9kZShfX2xlMzIgYWNlX2ZsYWdzLCBpbnQg dHlwZSwgdW1vZGVfdCAqcG1vZGUsCiAJfQogCS8qIGVsc2UgQUNDRVNTX0FMTE9XRUQgdHlwZSAq LwogCi0JaWYgKGZsYWdzICYgR0VORVJJQ19BTEwpIHsKLQkJKnBtb2RlIHw9IChTX0lSV1hVR08g JiAoKnBiaXRzX3RvX3NldCkpOworCWlmICgoZmxhZ3MgJiBHRU5FUklDX0FMTCkgJiYKKwkJCSEo KnBkZW5pZWQgJiBtYXNrICYgMDc3NykpIHsKKwkJKnBtb2RlIHw9IG1hc2sgJiAwNzc3OwogCQlj aWZzX2RiZyhOT0lTWSwgImFsbCBwZXJtc1xuIik7CiAJCXJldHVybjsKIAl9Ci0JaWYgKChmbGFn cyAmIEdFTkVSSUNfV1JJVEUpIHx8Ci0JCQkoKGZsYWdzICYgRklMRV9XUklURV9SSUdIVFMpID09 IEZJTEVfV1JJVEVfUklHSFRTKSkKLQkJKnBtb2RlIHw9IChTX0lXVUdPICYgKCpwYml0c190b19z ZXQpKTsKLQlpZiAoKGZsYWdzICYgR0VORVJJQ19SRUFEKSB8fAotCQkJKChmbGFncyAmIEZJTEVf UkVBRF9SSUdIVFMpID09IEZJTEVfUkVBRF9SSUdIVFMpKQotCQkqcG1vZGUgfD0gKFNfSVJVR08g JiAoKnBiaXRzX3RvX3NldCkpOwotCWlmICgoZmxhZ3MgJiBHRU5FUklDX0VYRUNVVEUpIHx8Ci0J CQkoKGZsYWdzICYgRklMRV9FWEVDX1JJR0hUUykgPT0gRklMRV9FWEVDX1JJR0hUUykpCi0JCSpw bW9kZSB8PSAoU19JWFVHTyAmICgqcGJpdHNfdG9fc2V0KSk7CisKKwlpZiAoKChmbGFncyAmIEdF TkVSSUNfV1JJVEUpIHx8CisJCQkoKGZsYWdzICYgRklMRV9XUklURV9SSUdIVFMpID09IEZJTEVf V1JJVEVfUklHSFRTKSkgJiYKKwkJCSEoKnBkZW5pZWQgJiBtYXNrICYgMDIyMikpCisJCSpwbW9k ZSB8PSBtYXNrICYgMDIyMjsKKworCWlmICgoKGZsYWdzICYgR0VORVJJQ19SRUFEKSB8fAorCQkJ KChmbGFncyAmIEZJTEVfUkVBRF9SSUdIVFMpID09IEZJTEVfUkVBRF9SSUdIVFMpKSAmJgorCQkJ ISgqcGRlbmllZCAmIG1hc2sgJiAwNDQ0KSkKKwkJKnBtb2RlIHw9IG1hc2sgJiAwNDQ0OworCisJ aWYgKCgoZmxhZ3MgJiBHRU5FUklDX0VYRUNVVEUpIHx8CisJCQkoKGZsYWdzICYgRklMRV9FWEVD X1JJR0hUUykgPT0gRklMRV9FWEVDX1JJR0hUUykpICYmCisJCQkhKCpwZGVuaWVkICYgbWFzayAm IDAxMTEpKQorCQkqcG1vZGUgfD0gbWFzayAmIDAxMTE7CiAKIAljaWZzX2RiZyhOT0lTWSwgImFj Y2VzcyBmbGFncyAweCV4IG1vZGUgbm93ICUwNG9cbiIsIGZsYWdzLCAqcG1vZGUpOwogCXJldHVy bjsKQEAgLTYzOCwxNyArNjUyLDE5IEBAIHN0YXRpYyB2b2lkIG1vZGVfdG9fYWNjZXNzX2ZsYWdz KHVtb2RlX3QgbW9kZSwgdW1vZGVfdCBiaXRzX3RvX3VzZSwKIH0KIAogc3RhdGljIF9fdTE2IGZp bGxfYWNlX2Zvcl9zaWQoc3RydWN0IGNpZnNfYWNlICpwbnRhY2UsCi0JCQljb25zdCBzdHJ1Y3Qg Y2lmc19zaWQgKnBzaWQsIF9fdTY0IG5tb2RlLCB1bW9kZV90IGJpdHMpCisJCQljb25zdCBzdHJ1 Y3QgY2lmc19zaWQgKnBzaWQsIF9fdTY0IG5tb2RlLCB1bW9kZV90IGJpdHMsIF9fdTggYWNjZXNz X3R5cGUpCiB7CiAJaW50IGk7CiAJX191MTYgc2l6ZSA9IDA7CiAJX191MzIgYWNjZXNzX3JlcSA9 IDA7CiAKLQlwbnRhY2UtPnR5cGUgPSBBQ0NFU1NfQUxMT1dFRDsKKwlwbnRhY2UtPnR5cGUgPSBh Y2Nlc3NfdHlwZTsKIAlwbnRhY2UtPmZsYWdzID0gMHgwOwogCW1vZGVfdG9fYWNjZXNzX2ZsYWdz KG5tb2RlLCBiaXRzLCAmYWNjZXNzX3JlcSk7Ci0JaWYgKCFhY2Nlc3NfcmVxKQorCWlmIChhY2Nl c3NfdHlwZSA9PSBBQ0NFU1NfQUxMT1dFRCAmJiAhYWNjZXNzX3JlcSkKIAkJYWNjZXNzX3JlcSA9 IFNFVF9NSU5JTVVNX1JJR0hUUzsKKwllbHNlIGlmIChhY2Nlc3NfdHlwZSA9PSBBQ0NFU1NfREVO SUVEKQorCQlhY2Nlc3NfcmVxICY9IH5TRVRfTUlOSU1VTV9SSUdIVFM7CiAJcG50YWNlLT5hY2Nl c3NfcmVxID0gY3B1X3RvX2xlMzIoYWNjZXNzX3JlcSk7CiAKIAlwbnRhY2UtPnNpZC5yZXZpc2lv biA9IHBzaWQtPnJldmlzaW9uOwpAQCAtNzAxLDYgKzcxNywxMCBAQCBzdGF0aWMgdm9pZCBkdW1w X2FjZShzdHJ1Y3QgY2lmc19hY2UgKnBhY2UsIGNoYXIgKmVuZF9vZl9hY2wpCiB9CiAjZW5kaWYK IAorI2RlZmluZSBBQ0xfT1dORVJfTUFTSyAwNzAwCisjZGVmaW5lIEFDTF9HUk9VUF9NQVNLIDA3 NzAKKyNkZWZpbmUgQUNMX0VWRVJZT05FX01BU0sgMDc3NworCiBzdGF0aWMgdm9pZCBwYXJzZV9k YWNsKHN0cnVjdCBjaWZzX2FjbCAqcGRhY2wsIGNoYXIgKmVuZF9vZl9hY2wsCiAJCSAgICAgICBz dHJ1Y3QgY2lmc19zaWQgKnBvd25lcnNpZCwgc3RydWN0IGNpZnNfc2lkICpwZ3Jwc2lkLAogCQkg ICAgICAgc3RydWN0IGNpZnNfZmF0dHIgKmZhdHRyLCBib29sIG1vZGVfZnJvbV9zcGVjaWFsX3Np ZCkKQEAgLTcxNiw3ICs3MzYsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9kYWNsKHN0cnVjdCBjaWZz X2FjbCAqcGRhY2wsIGNoYXIgKmVuZF9vZl9hY2wsCiAJaWYgKCFwZGFjbCkgewogCQkvKiBubyBE QUNMIGluIHRoZSBzZWN1cml0eSBkZXNjcmlwdG9yLCBzZXQKIAkJICAgYWxsIHRoZSBwZXJtaXNz aW9ucyBmb3IgdXNlci9ncm91cC9vdGhlciAqLwotCQlmYXR0ci0+Y2ZfbW9kZSB8PSBTX0lSV1hV R087CisJCWZhdHRyLT5jZl9tb2RlIHw9IDA3Nzc7CiAJCXJldHVybjsKIAl9CiAKQEAgLTczMywx NiArNzUzLDE0IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2RhY2woc3RydWN0IGNpZnNfYWNsICpwZGFj bCwgY2hhciAqZW5kX29mX2FjbCwKIAkvKiByZXNldCByd3ggcGVybWlzc2lvbnMgZm9yIHVzZXIv Z3JvdXAvb3RoZXIuCiAJICAgQWxzbywgaWYgbnVtX2FjZXMgaXMgMCBpLmUuIERBQ0wgaGFzIG5v IEFDRXMsCiAJICAgdXNlci9ncm91cC9vdGhlciBoYXZlIG5vIHBlcm1pc3Npb25zICovCi0JZmF0 dHItPmNmX21vZGUgJj0gfihTX0lSV1hVR08pOworCWZhdHRyLT5jZl9tb2RlICY9IH4oMDc3Nyk7 CiAKIAlhY2xfYmFzZSA9IChjaGFyICopcGRhY2w7CiAJYWNsX3NpemUgPSBzaXplb2Yoc3RydWN0 IGNpZnNfYWNsKTsKIAogCW51bV9hY2VzID0gbGUzMl90b19jcHUocGRhY2wtPm51bV9hY2VzKTsK IAlpZiAobnVtX2FjZXMgPiAwKSB7Ci0JCXVtb2RlX3QgdXNlcl9tYXNrID0gU19JUldYVTsKLQkJ dW1vZGVfdCBncm91cF9tYXNrID0gU19JUldYRzsKLQkJdW1vZGVfdCBvdGhlcl9tYXNrID0gU19J UldYVSB8IFNfSVJXWEcgfCBTX0lSV1hPOworCQl1bW9kZV90IGRlbmllZF9tb2RlID0gMDsKIAog CQlpZiAobnVtX2FjZXMgPiBVTE9OR19NQVggLyBzaXplb2Yoc3RydWN0IGNpZnNfYWNlICopKQog CQkJcmV0dXJuOwpAQCAtNzY4LDI2ICs3ODYsMjggQEAgc3RhdGljIHZvaWQgcGFyc2VfZGFjbChz dHJ1Y3QgY2lmc19hY2wgKnBkYWNsLCBjaGFyICplbmRfb2ZfYWNsLAogCQkJCWZhdHRyLT5jZl9t b2RlIHw9CiAJCQkJCWxlMzJfdG9fY3B1KHBwYWNlW2ldLT5zaWQuc3ViX2F1dGhbMl0pOwogCQkJ CWJyZWFrOwotCQkJfSBlbHNlIGlmIChjb21wYXJlX3NpZHMoJihwcGFjZVtpXS0+c2lkKSwgcG93 bmVyc2lkKSA9PSAwKQotCQkJCWFjY2Vzc19mbGFnc190b19tb2RlKHBwYWNlW2ldLT5hY2Nlc3Nf cmVxLAotCQkJCQkJICAgICBwcGFjZVtpXS0+dHlwZSwKLQkJCQkJCSAgICAgJmZhdHRyLT5jZl9t b2RlLAotCQkJCQkJICAgICAmdXNlcl9tYXNrKTsKLQkJCWVsc2UgaWYgKGNvbXBhcmVfc2lkcygm KHBwYWNlW2ldLT5zaWQpLCBwZ3Jwc2lkKSA9PSAwKQotCQkJCWFjY2Vzc19mbGFnc190b19tb2Rl KHBwYWNlW2ldLT5hY2Nlc3NfcmVxLAotCQkJCQkJICAgICBwcGFjZVtpXS0+dHlwZSwKLQkJCQkJ CSAgICAgJmZhdHRyLT5jZl9tb2RlLAotCQkJCQkJICAgICAmZ3JvdXBfbWFzayk7Ci0JCQllbHNl IGlmIChjb21wYXJlX3NpZHMoJihwcGFjZVtpXS0+c2lkKSwgJnNpZF9ldmVyeW9uZSkgPT0gMCkK LQkJCQlhY2Nlc3NfZmxhZ3NfdG9fbW9kZShwcGFjZVtpXS0+YWNjZXNzX3JlcSwKLQkJCQkJCSAg ICAgcHBhY2VbaV0tPnR5cGUsCi0JCQkJCQkgICAgICZmYXR0ci0+Y2ZfbW9kZSwKLQkJCQkJCSAg ICAgJm90aGVyX21hc2spOwotCQkJZWxzZSBpZiAoY29tcGFyZV9zaWRzKCYocHBhY2VbaV0tPnNp ZCksICZzaWRfYXV0aHVzZXJzKSA9PSAwKQotCQkJCWFjY2Vzc19mbGFnc190b19tb2RlKHBwYWNl W2ldLT5hY2Nlc3NfcmVxLAotCQkJCQkJICAgICBwcGFjZVtpXS0+dHlwZSwKLQkJCQkJCSAgICAg JmZhdHRyLT5jZl9tb2RlLAotCQkJCQkJICAgICAmb3RoZXJfbWFzayk7CisJCQl9IGVsc2Ugewor CQkJCWlmIChjb21wYXJlX3NpZHMoJihwcGFjZVtpXS0+c2lkKSwgcG93bmVyc2lkKSA9PSAwKSB7 CisJCQkJCWFjY2Vzc19mbGFnc190b19tb2RlKHBwYWNlW2ldLT5hY2Nlc3NfcmVxLAorCQkJCQkJ CXBwYWNlW2ldLT50eXBlLAorCQkJCQkJCSZmYXR0ci0+Y2ZfbW9kZSwKKwkJCQkJCQkmZGVuaWVk X21vZGUsCisJCQkJCQkJQUNMX09XTkVSX01BU0spOworCQkJCX0gZWxzZSBpZiAoY29tcGFyZV9z aWRzKCYocHBhY2VbaV0tPnNpZCksIHBncnBzaWQpID09IDApIHsKKwkJCQkJYWNjZXNzX2ZsYWdz X3RvX21vZGUocHBhY2VbaV0tPmFjY2Vzc19yZXEsCisJCQkJCQkJcHBhY2VbaV0tPnR5cGUsCisJ CQkJCQkJJmZhdHRyLT5jZl9tb2RlLAorCQkJCQkJCSZkZW5pZWRfbW9kZSwKKwkJCQkJCQlBQ0xf R1JPVVBfTUFTSyk7CisJCQkJfSBlbHNlIGlmICgoY29tcGFyZV9zaWRzKCYocHBhY2VbaV0tPnNp ZCksICZzaWRfZXZlcnlvbmUpID09IDApIHx8CisJCQkJCQkoY29tcGFyZV9zaWRzKCYocHBhY2Vb aV0tPnNpZCksICZzaWRfYXV0aHVzZXJzKSA9PSAwKSkgeworCQkJCQlhY2Nlc3NfZmxhZ3NfdG9f bW9kZShwcGFjZVtpXS0+YWNjZXNzX3JlcSwKKwkJCQkJCQlwcGFjZVtpXS0+dHlwZSwKKwkJCQkJ CQkmZmF0dHItPmNmX21vZGUsCisJCQkJCQkJJmRlbmllZF9tb2RlLAorCQkJCQkJCUFDTF9FVkVS WU9ORV9NQVNLKTsKKwkJCQl9CisJCQl9CiAKIAogLyoJCQltZW1jcHkoKHZvaWQgKikoJihjaWZz Y3JlZC0+YWNlc1tpXSkpLApAQCAtODczLDExICs4OTMsMTcgQEAgdW5zaWduZWQgaW50IHNldHVw X3NwZWNpYWxfdXNlcl9vd25lcl9BQ0Uoc3RydWN0IGNpZnNfYWNlICpwbnRhY2UpCiB9CiAKIHN0 YXRpYyBpbnQgc2V0X2NobW9kX2RhY2woc3RydWN0IGNpZnNfYWNsICpwbmRhY2wsIHN0cnVjdCBj aWZzX3NpZCAqcG93bmVyc2lkLAotCQkJc3RydWN0IGNpZnNfc2lkICpwZ3Jwc2lkLCBfX3U2NCBu bW9kZSwgYm9vbCBtb2RlZnJvbXNpZCkKKwkJCXN0cnVjdCBjaWZzX3NpZCAqcGdycHNpZCwgX191 NjQgKnBubW9kZSwgYm9vbCBtb2RlZnJvbXNpZCkKIHsKIAl1MTYgc2l6ZSA9IDA7CiAJdTMyIG51 bV9hY2VzID0gMDsKIAlzdHJ1Y3QgY2lmc19hY2wgKnBubmRhY2w7CisJX191NjQgbm1vZGU7CisJ X191NjQgdXNlcl9tb2RlOworCV9fdTY0IGdyb3VwX21vZGU7CisJX191NjQgb3RoZXJfbW9kZTsK KwlfX3U2NCBkZW55X3VzZXJfbW9kZSA9IDA7CisJX191NjQgZGVueV9ncm91cF9tb2RlID0gMDsK IAogCXBubmRhY2wgPSAoc3RydWN0IGNpZnNfYWNsICopKChjaGFyICopcG5kYWNsICsgc2l6ZW9m KHN0cnVjdCBjaWZzX2FjbCkpOwogCkBAIC04ODcsMTggKzkxMyw2NSBAQCBzdGF0aWMgaW50IHNl dF9jaG1vZF9kYWNsKHN0cnVjdCBjaWZzX2FjbCAqcG5kYWNsLCBzdHJ1Y3QgY2lmc19zaWQgKnBv d25lcnNpZCwKIAogCQlzaXplICs9IHNldHVwX3NwZWNpYWxfbW9kZV9BQ0UocG50YWNlLCBubW9k ZSk7CiAJCW51bV9hY2VzKys7CisJCWdvdG8gc2V0X3NpemU7CiAJfQogCisJLyoKKwkgKiBXZSds bCB0cnkgdG8ga2VlcCB0aGUgbW9kZSBhcyByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIuCisJICogQnV0 IGluIGNhc2VzIHdoZXJlIHdlIGNhbm5vdCBtZWFuaW5nZnVsbHkgY29udmVydCB0aGF0CisJICog aW50byBBQ0wsIHJldHVybiBiYWNrIHRoZSB1cGRhdGVkIG1vZGUsIHNvIHRoYXQgaXQgaXMKKwkg KiB1cGRhdGVkIGluIHRoZSBpbm9kZS4KKwkgKi8KKwlubW9kZSA9ICpwbm1vZGU7CisKKwlpZiAo IW1lbWNtcChwb3duZXJzaWQsIHBncnBzaWQsIHNpemVvZihzdHJ1Y3QgY2lmc19zaWQpKSkgewor CQkvKgorCQkgKiBDYXNlIHdoZW4gb3duZXIgYW5kIGdyb3VwIFNJRHMgYXJlIHRoZSBzYW1lLgor CQkgKiBTZXQgdGhlIG1vcmUgcmVzdHJpY3RpdmUgb2YgdGhlIHR3byBtb2Rlcy4KKwkJICovCisJ CXVzZXJfbW9kZSA9IG5tb2RlICYgKG5tb2RlIDw8IDMpICYgMDcwMDsKKwkJZ3JvdXBfbW9kZSA9 IG5tb2RlICYgKG5tb2RlID4+IDMpICYgMDA3MDsKKwl9IGVsc2UgeworCQl1c2VyX21vZGUgPSBu bW9kZSAmIDA3MDA7CisJCWdyb3VwX21vZGUgPSBubW9kZSAmIDAwNzA7CisJfQorCisJb3RoZXJf bW9kZSA9IG5tb2RlICYgMDAwNzsKKworCS8qIFdlIG5lZWQgREVOWSBBQ0Ugd2hlbiB0aGUgcGVy bSBpcyBtb3JlIHJlc3RyaWN0aXZlIHRoYW4gdGhlIG5leHQgc2V0cy4gKi8KKwlkZW55X3VzZXJf bW9kZSA9IH4odXNlcl9tb2RlKSAmICgoZ3JvdXBfbW9kZSA8PCAzKSB8IChvdGhlcl9tb2RlIDw8 IDYpKSAmIDA3MDA7CisJZGVueV9ncm91cF9tb2RlID0gfihncm91cF9tb2RlKSAmIChvdGhlcl9t b2RlIDw8IDMpICYgMDA3MDsKKworCSpwbm1vZGUgPSB1c2VyX21vZGUgfCBncm91cF9tb2RlIHwg b3RoZXJfbW9kZSB8IChubW9kZSAmIH4wNzc3KTsKKworCWlmIChkZW55X3VzZXJfbW9kZSkgewor CQlzaXplICs9IGZpbGxfYWNlX2Zvcl9zaWQoKHN0cnVjdCBjaWZzX2FjZSAqKSgoY2hhciAqKXBu bmRhY2wgKyBzaXplKSwKKwkJCQlwb3duZXJzaWQsIGRlbnlfdXNlcl9tb2RlLCAwNzAwLCBBQ0NF U1NfREVOSUVEKTsKKwkJbnVtX2FjZXMrKzsKKwl9CisJLyogR3JvdXAgREVOWSBBQ0UgZG9lcyBu b3QgY29uZmxpY3Qgd2l0aCBvd25lciBBTExPVyBBQ0UuIEtlZXAgaW4gcHJlZmVycmVkIG9yZGVy Ki8KKwlpZiAoZGVueV9ncm91cF9tb2RlICYmICEoZGVueV9ncm91cF9tb2RlICYgKHVzZXJfbW9k ZSA+PiAzKSkpIHsKKwkJc2l6ZSArPSBmaWxsX2FjZV9mb3Jfc2lkKChzdHJ1Y3QgY2lmc19hY2Ug KikoKGNoYXIgKilwbm5kYWNsICsgc2l6ZSksCisJCQkJcGdycHNpZCwgZGVueV9ncm91cF9tb2Rl LCAwMDcwLCBBQ0NFU1NfREVOSUVEKTsKKwkJbnVtX2FjZXMrKzsKKwl9CiAJc2l6ZSArPSBmaWxs X2FjZV9mb3Jfc2lkKChzdHJ1Y3QgY2lmc19hY2UgKikgKChjaGFyICopcG5uZGFjbCArIHNpemUp LAotCQkJCQlwb3duZXJzaWQsIG5tb2RlLCBTX0lSV1hVKTsKKwkJCXBvd25lcnNpZCwgdXNlcl9t b2RlLCAwNzAwLCBBQ0NFU1NfQUxMT1dFRCk7CiAJbnVtX2FjZXMrKzsKKwkvKiBHcm91cCBERU5Z IEFDRSBjb25mbGljdHMgd2l0aCBvd25lciBBTExPVyBBQ0UuIFNvIGtlZXAgaXQgYWZ0ZXIuICov CisJaWYgKGRlbnlfZ3JvdXBfbW9kZSAmJiAoZGVueV9ncm91cF9tb2RlICYgKHVzZXJfbW9kZSA+ PiAzKSkpIHsKKwkJc2l6ZSArPSBmaWxsX2FjZV9mb3Jfc2lkKChzdHJ1Y3QgY2lmc19hY2UgKiko KGNoYXIgKilwbm5kYWNsICsgc2l6ZSksCisJCQkJcGdycHNpZCwgZGVueV9ncm91cF9tb2RlLCAw MDcwLCBBQ0NFU1NfREVOSUVEKTsKKwkJbnVtX2FjZXMrKzsKKwl9CiAJc2l6ZSArPSBmaWxsX2Fj ZV9mb3Jfc2lkKChzdHJ1Y3QgY2lmc19hY2UgKikoKGNoYXIgKilwbm5kYWNsICsgc2l6ZSksCi0J CQkJCXBncnBzaWQsIG5tb2RlLCBTX0lSV1hHKTsKKwkJCXBncnBzaWQsIGdyb3VwX21vZGUsIDAw NzAsIEFDQ0VTU19BTExPV0VEKTsKIAludW1fYWNlcysrOwogCXNpemUgKz0gZmlsbF9hY2VfZm9y X3NpZCgoc3RydWN0IGNpZnNfYWNlICopKChjaGFyICopcG5uZGFjbCArIHNpemUpLAotCQkJCQkg JnNpZF9ldmVyeW9uZSwgbm1vZGUsIFNfSVJXWE8pOworCQkJJnNpZF9ldmVyeW9uZSwgb3RoZXJf bW9kZSwgMDAwNywgQUNDRVNTX0FMTE9XRUQpOwogCW51bV9hY2VzKys7CiAKK3NldF9zaXplOgog CXBuZGFjbC0+bnVtX2FjZXMgPSBjcHVfdG9fbGUzMihudW1fYWNlcyk7CiAJcG5kYWNsLT5zaXpl ID0gY3B1X3RvX2xlMTYoc2l6ZSArIHNpemVvZihzdHJ1Y3QgY2lmc19hY2wpKTsKIApAQCAtMTAw MCw3ICsxMDczLDcgQEAgc3RhdGljIGludCBwYXJzZV9zZWNfZGVzYyhzdHJ1Y3QgY2lmc19zYl9p bmZvICpjaWZzX3NiLAogCiAvKiBDb252ZXJ0IHBlcm1pc3Npb24gYml0cyBmcm9tIG1vZGUgdG8g ZXF1aXZhbGVudCBDSUZTIEFDTCAqLwogc3RhdGljIGludCBidWlsZF9zZWNfZGVzYyhzdHJ1Y3Qg Y2lmc19udHNkICpwbnRzZCwgc3RydWN0IGNpZnNfbnRzZCAqcG5udHNkLAotCV9fdTMyIHNlY2Rl c2NsZW4sIF9fdTY0IG5tb2RlLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAorCV9fdTMyIHNlY2Rl c2NsZW4sIF9fdTY0ICpwbm1vZGUsIGt1aWRfdCB1aWQsIGtnaWRfdCBnaWQsCiAJYm9vbCBtb2Rl X2Zyb21fc2lkLCBib29sIGlkX2Zyb21fc2lkLCBpbnQgKmFjbGZsYWcpCiB7CiAJaW50IHJjID0g MDsKQEAgLTEwMTIsNyArMTA4NSw3IEBAIHN0YXRpYyBpbnQgYnVpbGRfc2VjX2Rlc2Moc3RydWN0 IGNpZnNfbnRzZCAqcG50c2QsIHN0cnVjdCBjaWZzX250c2QgKnBubnRzZCwKIAlzdHJ1Y3QgY2lm c19hY2wgKmRhY2xfcHRyID0gTlVMTDsgIC8qIG5vIG5lZWQgZm9yIFNBQ0wgcHRyICovCiAJc3Ry dWN0IGNpZnNfYWNsICpuZGFjbF9wdHIgPSBOVUxMOyAvKiBubyBuZWVkIGZvciBTQUNMIHB0ciAq LwogCi0JaWYgKG5tb2RlICE9IE5PX0NIQU5HRV82NCkgeyAvKiBjaG1vZCAqLworCWlmIChwbm1v ZGUgJiYgKnBubW9kZSAhPSBOT19DSEFOR0VfNjQpIHsgLyogY2htb2QgKi8KIAkJb3duZXJfc2lk X3B0ciA9IChzdHJ1Y3QgY2lmc19zaWQgKikoKGNoYXIgKilwbnRzZCArCiAJCQkJbGUzMl90b19j cHUocG50c2QtPm9zaWRvZmZzZXQpKTsKIAkJZ3JvdXBfc2lkX3B0ciA9IChzdHJ1Y3QgY2lmc19z aWQgKikoKGNoYXIgKilwbnRzZCArCkBAIC0xMDI2LDcgKzEwOTksNyBAQCBzdGF0aWMgaW50IGJ1 aWxkX3NlY19kZXNjKHN0cnVjdCBjaWZzX250c2QgKnBudHNkLCBzdHJ1Y3QgY2lmc19udHNkICpw bm50c2QsCiAJCW5kYWNsX3B0ci0+bnVtX2FjZXMgPSAwOwogCiAJCXJjID0gc2V0X2NobW9kX2Rh Y2wobmRhY2xfcHRyLCBvd25lcl9zaWRfcHRyLCBncm91cF9zaWRfcHRyLAotCQkJCSAgICBubW9k ZSwgbW9kZV9mcm9tX3NpZCk7CisJCQkJICAgIHBubW9kZSwgbW9kZV9mcm9tX3NpZCk7CiAJCXNp ZHNvZmZzZXQgPSBuZGFjbG9mZnNldCArIGxlMTZfdG9fY3B1KG5kYWNsX3B0ci0+c2l6ZSk7CiAJ CS8qIGNvcHkgc2VjIGRlc2MgY29udHJvbCBwb3J0aW9uICYgb3duZXIgYW5kIGdyb3VwIHNpZHMg Ki8KIAkJY29weV9zZWNfZGVzYyhwbnRzZCwgcG5udHNkLCBzaWRzb2Zmc2V0KTsKQEAgLTEyODEs NyArMTM1NCw3IEBAIGNpZnNfYWNsX3RvX2ZhdHRyKHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNf c2IsIHN0cnVjdCBjaWZzX2ZhdHRyICpmYXR0ciwKIAogLyogQ29udmVydCBtb2RlIGJpdHMgdG8g YW4gQUNMIHNvIHdlIGNhbiB1cGRhdGUgdGhlIEFDTCBvbiB0aGUgc2VydmVyICovCiBpbnQKLWlk X21vZGVfdG9fY2lmc19hY2woc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqcGF0aCwg X191NjQgbm1vZGUsCitpZF9tb2RlX3RvX2NpZnNfYWNsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNv bnN0IGNoYXIgKnBhdGgsIF9fdTY0ICpwbm1vZGUsCiAJCQlrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lk KQogewogCWludCByYyA9IDA7CkBAIC0xMzQwLDcgKzE0MTMsNyBAQCBpZF9tb2RlX3RvX2NpZnNf YWNsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKnBhdGgsIF9fdTY0IG5tb2RlLAog CWVsc2UKIAkJaWRfZnJvbV9zaWQgPSBmYWxzZTsKIAotCXJjID0gYnVpbGRfc2VjX2Rlc2MocG50 c2QsIHBubnRzZCwgc2VjZGVzY2xlbiwgbm1vZGUsIHVpZCwgZ2lkLAorCXJjID0gYnVpbGRfc2Vj X2Rlc2MocG50c2QsIHBubnRzZCwgc2VjZGVzY2xlbiwgcG5tb2RlLCB1aWQsIGdpZCwKIAkJCSAg ICBtb2RlX2Zyb21fc2lkLCBpZF9mcm9tX3NpZCwgJmFjbGZsYWcpOwogCiAJY2lmc19kYmcoTk9J U1ksICJidWlsZF9zZWNfZGVzYyByYzogJWRcbiIsIHJjKTsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMv Y2lmc3Byb3RvLmggYi9mcy9jaWZzL2NpZnNwcm90by5oCmluZGV4IDI0YzZmMzYxNzdiYS4uMmVk OThkNGEzMGMxIDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNwcm90by5oCisrKyBiL2ZzL2NpZnMv Y2lmc3Byb3RvLmgKQEAgLTIxNSw4ICsyMTUsOCBAQCBleHRlcm4gaW50IGNpZnNfYWNsX3RvX2Zh dHRyKHN0cnVjdCBjaWZzX3NiX2luZm8gKmNpZnNfc2IsCiAJCQkgICAgICBzdHJ1Y3QgY2lmc19m YXR0ciAqZmF0dHIsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQkgICAgICBib29sIGdldF9tb2Rl X2Zyb21fc3BlY2lhbF9zaWQsCiAJCQkgICAgICBjb25zdCBjaGFyICpwYXRoLCBjb25zdCBzdHJ1 Y3QgY2lmc19maWQgKnBmaWQpOwotZXh0ZXJuIGludCBpZF9tb2RlX3RvX2NpZnNfYWNsKHN0cnVj dCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKnBhdGgsIF9fdTY0LAotCQkJCQlrdWlkX3QsIGtn aWRfdCk7CitleHRlcm4gaW50IGlkX21vZGVfdG9fY2lmc19hY2woc3RydWN0IGlub2RlICppbm9k ZSwgY29uc3QgY2hhciAqcGF0aCwgX191NjQgKnBubW9kZSwKKwkJCQkJa3VpZF90IHVpZCwga2dp ZF90IGdpZCk7CiBleHRlcm4gc3RydWN0IGNpZnNfbnRzZCAqZ2V0X2NpZnNfYWNsKHN0cnVjdCBj aWZzX3NiX2luZm8gKiwgc3RydWN0IGlub2RlICosCiAJCQkJCWNvbnN0IGNoYXIgKiwgdTMyICop OwogZXh0ZXJuIHN0cnVjdCBjaWZzX250c2QgKmdldF9jaWZzX2FjbF9ieV9maWQoc3RydWN0IGNp ZnNfc2JfaW5mbyAqLApkaWZmIC0tZ2l0IGEvZnMvY2lmcy9pbm9kZS5jIGIvZnMvY2lmcy9pbm9k ZS5jCmluZGV4IDllZTVmMzA0NTkyZi4uZTA2ZGQzYWQ5MDZmIDEwMDY0NAotLS0gYS9mcy9jaWZz L2lub2RlLmMKKysrIGIvZnMvY2lmcy9pbm9kZS5jCkBAIC0yODEyLDcgKzI4MTIsOCBAQCBjaWZz X3NldGF0dHJfbm91bml4KHN0cnVjdCBkZW50cnkgKmRpcmVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0 dHJzKQogCWlmICgoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0NJRlNfQUNM KSB8fAogCSAgICAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX01PREVfRlJP TV9TSUQpKSB7CiAJCWlmICh1aWRfdmFsaWQodWlkKSB8fCBnaWRfdmFsaWQoZ2lkKSkgewotCQkJ cmMgPSBpZF9tb2RlX3RvX2NpZnNfYWNsKGlub2RlLCBmdWxsX3BhdGgsIE5PX0NIQU5HRV82NCwK KwkJCW1vZGUgPSBOT19DSEFOR0VfNjQ7CisJCQlyYyA9IGlkX21vZGVfdG9fY2lmc19hY2woaW5v ZGUsIGZ1bGxfcGF0aCwgJm1vZGUsCiAJCQkJCQkJdWlkLCBnaWQpOwogCQkJaWYgKHJjKSB7CiAJ CQkJY2lmc19kYmcoRllJLCAiJXM6IFNldHRpbmcgaWQgZmFpbGVkIHdpdGggZXJyb3I6ICVkXG4i LApAQCAtMjgzMywxMyArMjgzNCwyMCBAQCBjaWZzX3NldGF0dHJfbm91bml4KHN0cnVjdCBkZW50 cnkgKmRpcmVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0dHJzKQogCQlyYyA9IDA7CiAJCWlmICgoY2lm c19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0NJRlNfQUNMKSB8fAogCQkgICAgKGNp ZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9NT0RFX0ZST01fU0lEKSkgewotCQkJ cmMgPSBpZF9tb2RlX3RvX2NpZnNfYWNsKGlub2RlLCBmdWxsX3BhdGgsIG1vZGUsCisJCQlyYyA9 IGlkX21vZGVfdG9fY2lmc19hY2woaW5vZGUsIGZ1bGxfcGF0aCwgJm1vZGUsCiAJCQkJCQlJTlZB TElEX1VJRCwgSU5WQUxJRF9HSUQpOwogCQkJaWYgKHJjKSB7CiAJCQkJY2lmc19kYmcoRllJLCAi JXM6IFNldHRpbmcgQUNMIGZhaWxlZCB3aXRoIGVycm9yOiAlZFxuIiwKIAkJCQkJIF9fZnVuY19f LCByYyk7CiAJCQkJZ290byBjaWZzX3NldGF0dHJfZXhpdDsKIAkJCX0KKworCQkJLyoKKwkJCSAq IEluIGNhc2Ugb2YgQ0lGU19NT1VOVF9DSUZTX0FDTCwgd2UgY2Fubm90IHN1cHBvcnQgYWxsIG1v ZGVzLgorCQkJICogUGljayB1cCB0aGUgYWN0dWFsIG1vZGUgYml0cyB0aGF0IHdlcmUgc2V0Lgor CQkJICovCisJCQlpZiAobW9kZSAhPSBhdHRycy0+aWFfbW9kZSkKKwkJCQlhdHRycy0+aWFfbW9k ZSA9IG1vZGU7CiAJCX0gZWxzZQogCQlpZiAoKChtb2RlICYgU19JV1VHTykgPT0gMCkgJiYKIAkJ ICAgIChjaWZzSW5vZGUtPmNpZnNBdHRycyAmIEFUVFJfUkVBRE9OTFkpID09IDApIHsKLS0gCjIu MjUuMQoK --00000000000039129605b3b01701--