From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AEA1D2566EE; Fri, 21 Feb 2025 21:53:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174784; cv=none; b=P9pFL0q+OXYcp3dapXpOVXZ51ZLGwFcBvYUSiWejqTMx0twzVhwynN3pzIp0xrJ5HOE7O07ns+gzZTb5YtsZiWKVcZB53BJ9BxAy+tk2GNBG8fiOlgNHpz4q8T0p8FJP31oLFNpEKg2LBQoPOLp8J+9UyvSd5Nel5IP+K8hpQkg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174784; c=relaxed/simple; bh=5iVhlH4arzy7YhPfcWfG0tDI/rW8H3JBQAWoK+fSWIk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fgYhQZbSVnzOOk5Ul2y3P7vzcZrUihpBWGd2No86q/2hpABPVKLz5I9QjzrNL2bxRr+/gQ/FX8j6ANxboH2Krur3ZU7NwtpFpWR1C2Y6xrx4R/sS7LY+cqysmb2od5HPS4kCIfQT8XEkVukq5B+t0SPPBB09CNsasclSdHV9LIs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=USJ6ACkp; arc=none smtp.client-ip=212.227.15.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="USJ6ACkp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740174772; x=1740779572; i=ps.report@gmx.net; bh=5iVhlH4arzy7YhPfcWfG0tDI/rW8H3JBQAWoK+fSWIk=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=USJ6ACkpKwgV0Eck5XdbA8Mdp0Q4dKACSxZjJsVGmxiL5B1KrP2ke0hRewdZGuGP VdUqnTYD8uDckyyRF0Ts9xPKLDrdG2nMyO+7Va37ar5AbyPFvZfbDSL2vreuyHHdq PBPJaZBlnApok0Xc+Dpm6vXQpc8cwaC9L+eRUZzT2PhKhx+DMDvbdBDgdrIZrjMNP eS4RCtEe6GFAn+YLC6o4fPor2bhKbD1m9W/cQN/DNuumy4l7yD5WmwfPmpICJTrJq xBV4wLIfbOlW5J3tUT5wepNou7LYshNRyjA1d4a5YHg8nHBWISlVMYsYPLTdPa0Z8 aFrC2u3RtlMtEWYS6w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.92]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MGhuK-1tYtcs02sM-00AomM; Fri, 21 Feb 2025 22:52:52 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer , Thomas Gleixner , Artem Chernyshev , Nam Cao Subject: [PATCH net-next v6 5/8] net: pktgen: fix access outside of user given buffer in pktgen_if_write() Date: Fri, 21 Feb 2025 22:52:43 +0100 Message-ID: <20250221215246.383373-6-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250221215246.383373-1-ps.report@gmx.net> References: <20250221215246.383373-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:OojHRiFZ7tEG2SFnHQS38t0stBnOBXcxYEz07x4i38gz0s4uGzU c1/e3vSCgU6RTLVrJNucRqSHMatsYNnh8iQsmbCqxXyJPbkyDsF19rA05zw6jE14UN5p5L3 WFhLYGbv2spLBPLXfml3QVhE2r0iCOWWV8evkYLBpjiU9aPqpSb8rUakIYNHX+aWkvSWbdt M0+76I4XtjahONLNK4Mpw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:OB1++pAq+oo=;v7SVWNRggjz3XjPBIWvG0DXcZ3L UCfwhV+NIW+htc2XtCRSHIGbQ/DzWdPDRRy2S4XuuMF8ZXH1wWKDoIZRDC0z4RmK+MgGE46ah 86t9IIn7CLAucAn1O3n0ssf23uUentJN49XnDHzpEzkU3l1FEFKZe9IhZt9h44uk8h8vu2omZ 1Rk7xDMNoF3O2Ta4d+Ra01qheA6Y6Ytp/AtMfNH2btVUYdHZmt3jmEo/NKPxVlwHB+8G45Kar xbdEy2SEYM2nt/b3rW1HlJDDe8qWD00QMiozRtLEt2sH1HwSwdU/p9xbCA05LQNRQWi73IMAk KLUflTfbTzYbZjb8oO/0h4l4nXHqcjbyOaqohQuzJesHIeE/Gl0RdL+vdpz6NRfcWnOjDJ6Ez K/koYvsPuYipV4aD+1PlLP9wKztbhmCN9fsRTQICi1Pa/SFtDmV+v8353yFuYZVyEwEQr5Yxo tTYOX9GVZJIpuw2UMi9fXGtf3bgnXYGsNwrRg2g1OfB2MiBq+EK2ZWqlrj7HxY+Z1OaBo3f8E jSA7+y0R1odhFg/Mk16km0Iki6rVwSUIz91Zg0NMkFbzFVa/M5ectTikuUDKOZi5T+Irez0D0 CK9OVgswh5w4ZWDB4oM439PtEqHtXHQw82QZeDKQr4oCk2MhZU3XRC3+O/sdRfnTc2oMRme8k gx8shBLx4V4Uwo18v39dqX9wCWfjrWn3CHDOi5U8JxtIECD05jpBiLdlSHB5bfPItWzTTzL6L pWBndyLylXnv5XlwUmIRDzdWBExK08enLFtbV0nl26mY57ij+sIQXCSdbzqD3gTMyhUNbMeva wPTWuvJhX7lncFVINHujyrIdh0a10PwBUTxOQxrPjnslYdUeNvxIpy5K7GxqtUoulWcT/37sm T0uA/eCpnwyo+uQkEpTQDMAXInWbscAVp9amXPd/Sg7wpjmUf3ryWrJbgpuBXCNGVmaRLyYnN IInu52oeJke6joYT87NJweDHadDH1ZK3OmWjWt6swLiuCRCWeT5j/WylKrxSdT7Bz0LmalIRS 1ye5MkP+kgzql5XEiuLurukt53VXX/M7uZ5a7j8yf+R28G8pxG1cIIciTtQ35lHuLWnX6ZrEE a0mJn2MyQIKDd+lbJy/jv8ugabR1GCa5G+pu9zKf3zHnq0XXV9pE5nXTylMNSCo14F1dko9gE JocEsl8TAUzdswoPcZuD0tCPaLhUjnpiRMlJVS6/D4/ZdBjziUQdVM3BVy2H+wCKhTG+gSdit BcdrtA2EIahivv8BMN15x8AGNT5Cd4W9pmodJ9StmeYS90MLhQIhI9JgVyb9Qy8xsI1hoxwcB 25n3NIMkEAyDdz0q0dOF70qYB0quBfnV/w78oQU00+B3HFicXUnAzwBuGaQvPCDGC7A63/xFz 16dNOMMSkpUhq9JwdwFBbwzosmWK+MOYvQjdDruNJGFPx0/ky+x39bmfOe SG9ub3VyIHRoZSB1c2VyIGdpdmVuIGJ1ZmZlciBzaXplIGZvciB0aGUgaGV4MzJfYXJnKCksIG51 bV9hcmcoKSwKc3Rybl9sZW4oKSwgZ2V0X2ltaXhfZW50cmllcygpIGFuZCBnZXRfbGFiZWxzKCkg Y2FsbHMgKG90aGVyd2lzZSB0aGV5IHdpbGwKYWNjZXNzIG1lbW9yeSBvdXRzaWRlIG9mIHRoZSB1 c2VyIGdpdmVuIGJ1ZmZlcikuCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBTZWlkZXJlciA8cHMucmVw b3J0QGdteC5uZXQ+ClJldmlld2VkLWJ5OiBTaW1vbiBIb3JtYW4gPGhvcm1zQGtlcm5lbC5vcmc+ Ci0tLQpDaGFuZ2VzIHY1IC0+IHY2CiAgLSBhZGp1c3QgdG8gZHJvcHBlZCBwYXRjaCAnJ25ldDog cGt0Z2VuOiB1c2UgZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMKICAgIGRlYy9oZXggbnVtYmVyIHBh cnNpbmcgZGlnaXRzIGxlbmd0aHMnCgpDaGFuZ2VzIHY0IC0+IHY1CiAgLSBzcGxpdCB1cCBwYXRj aHNldCBpbnRvIHBhcnQgaS9paSAoc3VnZ2VzdGVkIGJ5IFNpbW9uIEhvcm1hbikKICAtIGFkZCBy ZXYtYnkgU2ltb24gSG9ybWFuCgpDaGFuZ2VzIHYzIC0+IHY0OgogIC0gcmVwbGFjZSBDOTkgY29t bWVudCAoc3VnZ2VzdGVkIGJ5IFBhb2xvIEFiZW5pKQogIC0gZHJvcCBhdmFpbGFibGUgY2hhcmFj dGVycyBjaGVjayBpbiBzdHJuX2xlbigpIChzdWdnZXN0ZWQgYnkgUGFvbG8gQWJlbmkpCiAgLSBm YWN0b3JlZCBvdXQgcGF0Y2ggJ25ldDogcGt0Z2VuOiBhbGlnbiBzb21lIHZhcmlhYmxlIGRlY2xh cmF0aW9ucyB0byB0aGUKICAgIG1vc3QgY29tbW9uIHBhdHRlcm4nIChzdWdnZXN0ZWQgYnkgUGFv bG8gQWJlbmkpCiAgLSBmYWN0b3JlZCBvdXQgcGF0Y2ggJ25ldDogcGt0Z2VuOiByZW1vdmUgZXh0 cmEgdG1wIHZhcmlhYmxlIChyZS11c2UgbGVuCiAgICBpbnN0ZWFkKScgKHN1Z2dlc3RlZCBieSBQ YW9sbyBBYmVuaSkKICAtIGZhY3RvcmVkIG91dCBwYXRjaCAnbmV0OiBwa3RnZW46IHJlbW92ZSBz b21lIHN1cGVyZmx1b3VzIHZhcmlhYmxlCiAgICBpbml0aWFsaXppbmcnIChzdWdnZXN0ZWQgYnkg UGFvbG8gQWJlbmkpCiAgLSBmYWN0b3JlZCBvdXQgcGF0Y2ggJ25ldDogcGt0Z2VuOiBmaXggbXBs cyBtYXhpbXVtIGxhYmVscyBsaXN0IHBhcnNpbmcnCiAgICAoc3VnZ2VzdGVkIGJ5IFBhb2xvIEFi ZW5pKQogIC0gZmFjdG9yZWQgb3V0ICduZXQ6IHBrdGdlbjogaGV4MzJfYXJnL251bV9hcmcgZXJy b3Igb3V0IGluIGNhc2Ugbm8KICAgIGNoYXJhY3RlcnMgYXJlIGF2YWlsYWJsZScgKHN1Z2dlc3Rl ZCBieSBQYW9sbyBBYmVuaSkKICAtIGZhY3RvcmVkIG91dCAnbmV0OiBwa3RnZW46IG51bV9hcmcg ZXJyb3Igb3V0IGluIGNhc2Ugbm8gdmFsaWQgY2hhcmFjdGVyCiAgICBpcyBwYXJzZWQnIChzdWdn ZXN0ZWQgYnkgUGFvbG8gQWJlbmkpCgpDaGFuZ2VzIHYyIC0+IHYzOgogIC0gbm8gY2hhbmdlcwoK Q2hhbmdlcyB2MSAtPiB2MjoKICAtIGFkZGl0aW9uYWwgZml4IGdldF9pbWl4X2VudHJpZXMoKSBh bmQgZ2V0X2xhYmVscygpCi0tLQogbmV0L2NvcmUvcGt0Z2VuLmMgfCAxNzggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExOCBp bnNlcnRpb25zKCspLCA2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9wa3Rn ZW4uYyBiL25ldC9jb3JlL3BrdGdlbi5jCmluZGV4IDAzZWE2YjVkYjE1Ni4uYWU1ZTgxZTYyNzMz IDEwMDY0NAotLS0gYS9uZXQvY29yZS9wa3RnZW4uYworKysgYi9uZXQvY29yZS9wa3RnZW4uYwpA QCAtODQyLDEwICs4NDIsMTAgQEAgc3RhdGljIHNzaXplX3Qgc3Rybl9sZW4oY29uc3QgY2hhciBf X3VzZXIgKnVzZXJfYnVmZmVyLCBzaXplX3QgbWF4bGVuKQogICogInNpemUxLHdlaWdodF8xIHNp emUyLHdlaWdodF8yIC4uLiBzaXplX24sd2VpZ2h0X24iIGZvciBleGFtcGxlLgogICovCiBzdGF0 aWMgc3NpemVfdCBnZXRfaW1peF9lbnRyaWVzKGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCisJ CQkJc2l6ZV90IG1heGxlbiwKIAkJCQlzdHJ1Y3QgcGt0Z2VuX2RldiAqcGt0X2RldikKIHsKLQlj b25zdCBzaXplX3QgbWF4X2RpZ2l0cyA9IDEwOwotCXNpemVfdCBpID0gMDsKKwlzaXplX3QgaSA9 IDAsIG1heDsKIAlzc2l6ZV90IGxlbjsKIAljaGFyIGM7CiAKQEAgLTg1OCwxMCArODU4LDEzIEBA IHN0YXRpYyBzc2l6ZV90IGdldF9pbWl4X2VudHJpZXMoY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZl ciwKIAkJaWYgKHBrdF9kZXYtPm5faW1peF9lbnRyaWVzID49IE1BWF9JTUlYX0VOVFJJRVMpCiAJ CQlyZXR1cm4gLUUyQklHOwogCi0JCWxlbiA9IG51bV9hcmcoJmJ1ZmZlcltpXSwgbWF4X2RpZ2l0 cywgJnNpemUpOworCQltYXggPSBtaW4oMTAsIG1heGxlbiAtIGkpOworCQlsZW4gPSBudW1fYXJn KCZidWZmZXJbaV0sIG1heCwgJnNpemUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47 CiAJCWkgKz0gbGVuOworCQlpZiAoaSA+PSBtYXhsZW4pCisJCQlyZXR1cm4gLUVJTlZBTDsKIAkJ aWYgKGdldF91c2VyKGMsICZidWZmZXJbaV0pKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCS8qIENo ZWNrIGZvciBjb21tYSBiZXR3ZWVuIHNpemVfaSBhbmQgd2VpZ2h0X2kgKi8KQEAgLTg3Miw3ICs4 NzUsOCBAQCBzdGF0aWMgc3NpemVfdCBnZXRfaW1peF9lbnRyaWVzKGNvbnN0IGNoYXIgX191c2Vy ICpidWZmZXIsCiAJCWlmIChzaXplIDwgMTQgKyAyMCArIDgpCiAJCQlzaXplID0gMTQgKyAyMCAr IDg7CiAKLQkJbGVuID0gbnVtX2FyZygmYnVmZmVyW2ldLCBtYXhfZGlnaXRzLCAmd2VpZ2h0KTsK KwkJbWF4ID0gbWluKDEwLCBtYXhsZW4gLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmYnVmZmVyW2ld LCBtYXgsICZ3ZWlnaHQpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAJCWlmICh3 ZWlnaHQgPD0gMCkKQEAgLTg4MiwyMCArODg2LDIzIEBAIHN0YXRpYyBzc2l6ZV90IGdldF9pbWl4 X2VudHJpZXMoY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwKIAkJcGt0X2Rldi0+aW1peF9lbnRy aWVzW3BrdF9kZXYtPm5faW1peF9lbnRyaWVzXS53ZWlnaHQgPSB3ZWlnaHQ7CiAKIAkJaSArPSBs ZW47CisJCXBrdF9kZXYtPm5faW1peF9lbnRyaWVzKys7CisKKwkJaWYgKGkgPj0gbWF4bGVuKQor CQkJYnJlYWs7CiAJCWlmIChnZXRfdXNlcihjLCAmYnVmZmVyW2ldKSkKIAkJCXJldHVybiAtRUZB VUxUOwotCiAJCWkrKzsKLQkJcGt0X2Rldi0+bl9pbWl4X2VudHJpZXMrKzsKIAl9IHdoaWxlIChj ID09ICcgJyk7CiAKIAlyZXR1cm4gaTsKIH0KIAotc3RhdGljIHNzaXplX3QgZ2V0X2xhYmVscyhj b25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLCBzdHJ1Y3QgcGt0Z2VuX2RldiAqcGt0X2RldikKK3N0 YXRpYyBzc2l6ZV90IGdldF9sYWJlbHMoY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwKKwkJCSAg c2l6ZV90IG1heGxlbiwgc3RydWN0IHBrdGdlbl9kZXYgKnBrdF9kZXYpCiB7CiAJdW5zaWduZWQg aW50IG4gPSAwOwotCXNpemVfdCBpID0gMDsKKwlzaXplX3QgaSA9IDAsIG1heDsKIAlzc2l6ZV90 IGxlbjsKIAljaGFyIGM7CiAKQEAgLTkwNiwxNyArOTEzLDIwIEBAIHN0YXRpYyBzc2l6ZV90IGdl dF9sYWJlbHMoY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwgc3RydWN0IHBrdGdlbl9kZXYgKnBr dF9kZXYpCiAJCWlmIChuID49IE1BWF9NUExTX0xBQkVMUykKIAkJCXJldHVybiAtRTJCSUc7CiAK LQkJbGVuID0gaGV4MzJfYXJnKCZidWZmZXJbaV0sIDgsICZ0bXApOworCQltYXggPSBtaW4oOCwg bWF4bGVuIC0gaSk7CisJCWxlbiA9IGhleDMyX2FyZygmYnVmZmVyW2ldLCBtYXgsICZ0bXApOwog CQlpZiAobGVuIDw9IDApCiAJCQlyZXR1cm4gbGVuOwogCQlwa3RfZGV2LT5sYWJlbHNbbl0gPSBo dG9ubCh0bXApOwogCQlpZiAocGt0X2Rldi0+bGFiZWxzW25dICYgTVBMU19TVEFDS19CT1RUT00p CiAJCQlwa3RfZGV2LT5mbGFncyB8PSBGX01QTFNfUk5EOwogCQlpICs9IGxlbjsKKwkJbisrOwor CQlpZiAoaSA+PSBtYXhsZW4pCisJCQlicmVhazsKIAkJaWYgKGdldF91c2VyKGMsICZidWZmZXJb aV0pKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCWkrKzsKLQkJbisrOwogCX0gd2hpbGUgKGMgPT0g JywnKTsKIAogCXBrdF9kZXYtPm5yX2xhYmVscyA9IG47CkBAIC05ODEsOCArOTkxLDggQEAgc3Rh dGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCWkgPSBsZW47 CiAKIAkvKiBSZWFkIHZhcmlhYmxlIG5hbWUgKi8KLQotCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1 ZmZlcltpXSwgc2l6ZW9mKG5hbWUpIC0gMSk7CisJbWF4ID0gbWluKHNpemVvZihuYW1lKSAtIDEs IGNvdW50IC0gaSk7CisJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwogCWlm IChsZW4gPCAwKQogCQlyZXR1cm4gbGVuOwogCkBAIC0xMDEwLDcgKzEwMjAsOCBAQCBzdGF0aWMg c3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFz dHJjbXAobmFtZSwgIm1pbl9wa3Rfc2l6ZSIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVm ZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4g PSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkK IAkJCXJldHVybiBsZW47CiAKQEAgLTEwMjcsNyArMTAzOCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBr dGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1l LCAibWF4X3BrdF9zaXplIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEw LCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmco JnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJu IGxlbjsKIApAQCAtMTA0Niw3ICsxMDU4LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dy aXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCS8qIFNob3J0Y3V0IGZvciBtaW4gPSBtYXggKi8KIAog CWlmICghc3RyY21wKG5hbWUsICJwa3Rfc2l6ZSIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJf YnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQls ZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwg MCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTEwNjYsNyArMTA3OSw4IEBAIHN0YXRpYyBzc2l6ZV90 IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJaWYgKHBrdF9kZXYtPmNsb25l X3NrYiA+IDApCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlsZW4gPSBnZXRfaW1peF9lbnRyaWVz KCZ1c2VyX2J1ZmZlcltpXSwgcGt0X2Rldik7CisJCW1heCA9IGNvdW50IC0gaTsKKwkJbGVuID0g Z2V0X2ltaXhfZW50cmllcygmdXNlcl9idWZmZXJbaV0sIG1heCwgcGt0X2Rldik7CiAJCWlmIChs ZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTA3Nyw3ICsxMDkxLDggQEAgc3RhdGljIHNz aXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3Ry Y21wKG5hbWUsICJkZWJ1ZyIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAx MCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJn KCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVy biBsZW47CiAKQEAgLTEwODgsNyArMTEwMyw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAiZnJhZ3Mi KSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1h eCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0s IG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMDk4 LDcgKzExMTQsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUg KmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRlbGF5Iikp IHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXgg PSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBt YXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTExMyw3 ICsxMTMwLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpm aWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJyYXRlIikpIHsK LQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBt aW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgs ICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTEyOCw3ICsx MTQ2LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJyYXRlcCIpKSB7Ci0J CWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWlu KDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAm dmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTExNDMsNyArMTE2 Miw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwK IAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAidWRwX3NyY19taW4iKSkg ewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9 IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1h eCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMTU2LDcg KzExNzYsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZp bGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInVkcF9kc3RfbWlu IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQlt YXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ld LCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTE2 OSw3ICsxMTkwLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJ1ZHBfc3Jj X21heCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsK KwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZl cltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAg LTExODIsNyArMTIwNCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAidWRw X2RzdF9tYXgiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1 ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9i dWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwog CkBAIC0xMTk1LDcgKzEyMTgsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3Ry dWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwg ImNsb25lX3NrYiIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZh bHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2Vy X2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47 CiAJCS8qIGNsb25lX3NrYiBpcyBub3Qgc3VwcG9ydGVkIGZvciBuZXRpZl9yZWNlaXZlIHhtaXRf bW9kZSBhbmQKQEAgLTEyMTYsNyArMTI0MCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNt cChuYW1lLCAiY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAs ICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygm dXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4g bGVuOwogCkBAIC0xMjI3LDcgKzEyNTIsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3Jp dGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAo bmFtZSwgInNyY19tYWNfY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltp XSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVt X2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQly ZXR1cm4gbGVuOwogCkBAIC0xMjQxLDcgKzEyNjcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5f aWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFz dHJjbXAobmFtZSwgImRzdF9tYWNfY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1 ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVu ID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDAp CiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMjU1LDcgKzEyODIsOCBAQCBzdGF0aWMgc3NpemVfdCBw a3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJ aWYgKCFzdHJjbXAobmFtZSwgImJ1cnN0IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZm ZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9 IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQog CQkJcmV0dXJuIGxlbjsKIApAQCAtMTI3NCw3ICsxMzAyLDggQEAgc3RhdGljIHNzaXplX3QgcGt0 Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlm ICghc3RyY21wKG5hbWUsICJub2RlIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJb aV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51 bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJ cmV0dXJuIGxlbjsKIApAQCAtMTI5NSwxMSArMTMyNCwxMiBAQCBzdGF0aWMgc3NpemVfdCBwa3Rn ZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJaWYgKCFzdHJjbXAobmFtZSwgInhtaXRf bW9kZSIpKSB7CiAJCWNoYXIgZlszMl07CiAKLQkJbWVtc2V0KGYsIDAsIDMyKTsKLQkJbGVuID0g c3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YoZikgLSAxKTsKKwkJbWF4ID0gbWluKHNp emVvZihmKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltp XSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCisJCW1lbXNldChmLCAw LCBzaXplb2YoZikpOwogCQlpZiAoY29weV9mcm9tX3VzZXIoZiwgJnVzZXJfYnVmZmVyW2ldLCBs ZW4pKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCWkgKz0gbGVuOwpAQCAtMTMzNSwxMSArMTM2NSwx MiBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJ CWNoYXIgZlszMl07CiAJCWNoYXIgKmVuZDsKIAotCQltZW1zZXQoZiwgMCwgMzIpOwotCQlsZW4g PSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZihmKSAtIDEpOworCQltYXggPSBtaW4o c2l6ZW9mKGYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVy W2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKKwkJbWVtc2V0KGYs IDAsIDMyKTsKIAkJaWYgKGNvcHlfZnJvbV91c2VyKGYsICZ1c2VyX2J1ZmZlcltpXSwgbGVuKSkK IAkJCXJldHVybiAtRUZBVUxUOwogCQlpICs9IGxlbjsKQEAgLTEzODQsNyArMTQxNSw4IEBAIHN0 YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJu IGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiZHN0X21pbiIpIHx8ICFzdHJjbXAobmFt ZSwgImRzdCIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKHBr dF9kZXYtPmRzdF9taW4pIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YocGt0X2Rldi0+ZHN0X21p bikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIG1h eCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTQwNCw3ICsxNDM2LDgg QEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQly ZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJkc3RfbWF4IikpIHsKLQkJbGVu ID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YocGt0X2Rldi0+ZHN0X21heCkgLSAx KTsKKwkJbWF4ID0gbWluKHNpemVvZihwa3RfZGV2LT5kc3RfbWF4KSAtIDEsIGNvdW50IC0gaSk7 CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDAp CiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNDI0LDcgKzE0NTcsOCBAQCBzdGF0aWMgc3NpemVfdCBw a3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJ aWYgKCFzdHJjbXAobmFtZSwgImRzdDYiKSkgewotCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZm ZXJbaV0sIHNpemVvZihidWYpIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YoYnVmKSAtIDEsIGNv dW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYg KGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNDQ3LDcgKzE0ODEsOCBAQCBzdGF0aWMg c3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3Vu dDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRzdDZfbWluIikpIHsKLQkJbGVuID0gc3Rybl9s ZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YoYnVmKSAtIDEpOworCQltYXggPSBtaW4oc2l6ZW9m KGJ1ZikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0s IG1heCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTQ2OSw3ICsxNTA0 LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAog CQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJkc3Q2X21heCIpKSB7Ci0J CWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGJ1ZikgLSAxKTsKKwkJbWF4 ID0gbWluKHNpemVvZihidWYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVz ZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAg LTE0OTAsNyArMTUyNiw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAic3Jj NiIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGJ1ZikgLSAx KTsKKwkJbWF4ID0gbWluKHNpemVvZihidWYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Ry bl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBs ZW47CiAKQEAgLTE1MTMsNyArMTU1MCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChu YW1lLCAic3JjX21pbiIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6 ZW9mKHBrdF9kZXYtPnNyY19taW4pIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YocGt0X2Rldi0+ c3JjX21pbikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJb aV0sIG1heCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTUzMyw3ICsx NTcxLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJzcmNfbWF4IikpIHsK LQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YocGt0X2Rldi0+c3JjX21h eCkgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZihwa3RfZGV2LT5zcmNfbWF4KSAtIDEsIGNvdW50 IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxl biA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNTUzLDcgKzE1OTIsOCBAQCBzdGF0aWMgc3Np emVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsK IAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRzdF9tYWMiKSkgewotCQlsZW4gPSBzdHJuX2xlbigm dXNlcl9idWZmZXJbaV0sIHNpemVvZih2YWxzdHIpIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2Yo dmFsc3RyKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltp XSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNTcwLDcgKzE2 MTAsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs CiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInNyY19tYWMiKSkgewot CQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZih2YWxzdHIpIC0gMSk7CisJ CW1heCA9IG1pbihzaXplb2YodmFsc3RyKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5f bGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVu OwogCkBAIC0xNTk0LDcgKzE2MzUsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUo c3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgImZsb3dzIikpIHsK LQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBt aW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgs ICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTYwOCw3ICsx NjUwLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LAogCX0KICNpZmRlZiBDT05GSUdfWEZSTQogCWlmICghc3RyY21wKG5hbWUsICJzcGkiKSkgewot CQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1p bigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwg JnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNjE5LDcgKzE2 NjIsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs CiAJfQogI2VuZGlmCiAJaWYgKCFzdHJjbXAobmFtZSwgImZsb3dsZW4iKSkgewotCQlsZW4gPSBu dW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291 bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsK IAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNjMwLDcgKzE2NzQsOCBAQCBz dGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJ aWYgKCFzdHJjbXAobmFtZSwgInF1ZXVlX21hcF9taW4iKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1 c2VyX2J1ZmZlcltpXSwgNSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDUsIGNvdW50IC0gaSk7CisJ CWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4g PCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTY0MSw3ICsxNjg2LDggQEAgc3RhdGljIHNzaXpl X3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21w KG5hbWUsICJxdWV1ZV9tYXBfbWF4IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJb aV0sIDUsICZ2YWx1ZSk7CisJCW1heCA9IG1pbig1LCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1f YXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJl dHVybiBsZW47CiAKQEAgLTE2NTQsNyArMTcwMCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9p Zl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlpZiAoIXN0cmNtcChuYW1lLCAibXBscyIpKSB7 CiAJCXVuc2lnbmVkIGludCBuLCBjbnQ7CiAKLQkJbGVuID0gZ2V0X2xhYmVscygmdXNlcl9idWZm ZXJbaV0sIHBrdF9kZXYpOworCQltYXggPSBjb3VudCAtIGk7CisJCWxlbiA9IGdldF9sYWJlbHMo JnVzZXJfYnVmZmVyW2ldLCBtYXgsIHBrdF9kZXYpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVy biBsZW47CiAJCWkgKz0gbGVuOwpAQCAtMTY3NSw3ICsxNzIyLDggQEAgc3RhdGljIHNzaXplX3Qg cGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5h bWUsICJ2bGFuX2lkIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDQsICZ2 YWx1ZSk7CisJCW1heCA9IG1pbig0LCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2Vy X2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47 CiAKQEAgLTE3MDIsNyArMTc1MCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAidmxhbl9wIikpIHsK LQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEsICZ2YWx1ZSk7CisJCW1heCA9IG1p bigxLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAm dmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE3MTcsNyArMTc2 Niw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwK IAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAidmxhbl9jZmkiKSkgewotCQlsZW4gPSBudW1fYXJn KCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEsIGNvdW50IC0gaSk7 CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChs ZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTczMiw3ICsxNzgyLDggQEAgc3RhdGljIHNz aXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3Ry Y21wKG5hbWUsICJzdmxhbl9pZCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ld LCA0LCAmdmFsdWUpOworCQltYXggPSBtaW4oNCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2Fy ZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1 cm4gbGVuOwogCkBAIC0xNzU5LDcgKzE4MTAsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZf d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgInN2bGFu X3AiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsKKwkJ bWF4ID0gbWluKDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ld LCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTc3 NCw3ICsxODI2LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJzdmxhbl9jZmkiKSkgewotCQlsZW4g PSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEsIGNv dW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7 CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTc5MCw3ICsxODQzLDkgQEAg c3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCiAJaWYg KCFzdHJjbXAobmFtZSwgInRvcyIpKSB7CiAJCV9fdTMyIHRtcF92YWx1ZTsKLQkJbGVuID0gaGV4 MzJfYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMiwgJnRtcF92YWx1ZSk7CisKKwkJbWF4ID0gbWluKDIs IGNvdW50IC0gaSk7CisJCWxlbiA9IGhleDMyX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnRt cF92YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTgwNiw3ICsx ODYxLDkgQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LAogCiAJaWYgKCFzdHJjbXAobmFtZSwgInRyYWZmaWNfY2xhc3MiKSkgewogCQlfX3UzMiB0bXBf dmFsdWU7Ci0JCWxlbiA9IGhleDMyX2FyZygmdXNlcl9idWZmZXJbaV0sIDIsICZ0bXBfdmFsdWUp OworCisJCW1heCA9IG1pbigyLCBjb3VudCAtIGkpOworCQlsZW4gPSBoZXgzMl9hcmcoJnVzZXJf YnVmZmVyW2ldLCBtYXgsICZ0bXBfdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBs ZW47CiAKQEAgLTE4MjEsNyArMTg3OCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAic2tiX3ByaW9y aXR5IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDksICZ2YWx1ZSk7CisJ CW1heCA9IG1pbig5LCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltp XSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKLS0gCjIu NDguMQoK