From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 B6B15215072; Wed, 22 Jan 2025 14:41:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737556911; cv=none; b=V19Af0PC+vjDIDjKarQk4QVzI8yXMHg9P1ulRSyqZd+DEDoYHSnjx6LBRHMcY7dYMsvTOceCOMqmHP2Y+QEdw15LBsMsp+dpn8VMSQ0+0PTjRUgr8f8VdldPzqtWjiBxifGk98A2401FeYoPAkKMY9hVRmhk3ylQuZJvWdCNvMY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737556911; c=relaxed/simple; bh=bFRmCxcDRw4P/M46YqZ3qFTwpdewh/L9b10ZMVqQxXU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XOHswIQCTwwri/D61DfzgbaIp02E+rhiGuyQFfjaxTaY3bxgnsPRw3yhGR1fmTh+B2X+gG0I4YG/frEQMdBtol3pJs0DJsZpdTYhTME5UPYIVpd5IFCJPPMkBXXiZOYwDmpLP2EXuzlGXyhG580JRUInyvxnYQ9/kpmFsfLF4KI= 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=Bk13AtR9; arc=none smtp.client-ip=212.227.15.15 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="Bk13AtR9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1737556896; x=1738161696; i=ps.report@gmx.net; bh=bFRmCxcDRw4P/M46YqZ3qFTwpdewh/L9b10ZMVqQxXU=; 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=Bk13AtR9q2tm4y0cLP0XiSBYJ9nAsVWnsD7P4zhN5ySGjHecux4gSohfF+imBWnH /EW5RUSYOsw+plAUxypC/Bgedyp1hTs7XMQ0/2fNajURa86AmROyVYAUlSo8zsX1g 1dHK/3HE/ZsaUC76M9Yb26fFJlU6JCJL/pWUsbwEPBnj/fAC8E9jmFFfo2QLPa+OE D/oZmqalGphcF+uNh2Pmnz7SLAmLl7XEah0D1yJoA0emGqYfY/G04i0gIfPygBlq3 Qr8NVHljh7zBzKJsC4LVBwcZ+qsWmJANKtRO4DVNdiDm7iYpsMu2KqlH5q490bR5t wmTVHXt9Hp5bY7gfbA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.9]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mirna-1syGtP3l80-00jgC4; Wed, 22 Jan 2025 15:41:36 +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 , Frederic Weisbecker , Artem Chernyshev , Nam Cao , Peter Seiderer Subject: [PATCH net-next v2 7/8] net: pktgen: fix access outside of user given buffer in pktgen_if_write() Date: Wed, 22 Jan 2025 15:41:09 +0100 Message-ID: <20250122144110.619989-8-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250122144110.619989-1-ps.report@gmx.net> References: <20250122144110.619989-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:me8HBN71d8jSdZY23NV4wmfROuotuHwNloLCxbL1IVfYuOKhOF0 dz4zqAn68qSB+9bEdL46WcUrG7lDC2PGLwpjO5/5cSLTo4vTKw6gfJAFXCtYcD9RsPZcwy8 1Gt3tkPoOhsC1DI1UTaTAjHU6R0JqDnkP4lVrzhqoln7r47CyxFAAYPESoWBGrxbpdFEcpp iDtIQZy66A9j5GUrqhLrg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:IbPIFGcAjfs=;shPOiddkJm91Zf+Kq1rZGaeM910 fKyKu10sTZ3XXKXeFZ0oiT5/gpwe/QTtIxBlkkIuaYJZlhEkztEvtxmpZ9ee1VY4EzJd1Azyh xbnxGaX66v4pk0YubecoKVhjDllSgKHeu4n/+NDn7mWsjS1ABrlnvsDHJbhN1PfBHubRtgjSa NdFWtZGRLZDYaPKErB/ojnTg7RtJlahIacktoz9sSqMWYS7dslfjbbRoxH2xdRT52vryos1Zl hCYgjQEB9QbpGD27fN90k6W+6QxFSDbSvX/uOyKmGMWJ+b2KbWLMf/oPlCsZpR+/F+FWJVlpw DSc3cS+vGNkGMTA+WK6f82WIdVOk+Q3Gkcdy7+IpPQUKJwBt5rMzWRZVdMk5GyEEYr3mVBiM3 6FaBRKsgaQL2SQV7YQWFNSm7KkwIxAThsDOgj98G5XrM9v0eakFPWw41ocMLIsDG860PLWm0y FydyCBwdV2+pTjMRkpmYmj9SeJd79JqBInuvRHCHZK6xw7c4rK+noqeeCkqqkx4y3bRvXtyCO ujtiZvWnMywPG8qdnxsSIpo83BTISrmH6afZ8Sh3dNAk65QyxbF78aF+Vx02tnIDOnpUxMVwO CMCmv6k3pvcJSjpsRisnoVQRJt2aGSdFwCB0nFLtXPmsB14PxNTvJ1X6pNBToCnvRZ/96FzbC Q7MaLnH/5rS3BmAJ+x9Ef/JBq/YGkWFZ1jtfOSyJKHg1Kh97WM3CDUgC0tYIE2q9RdIdhDVin vblbdAiSaG5sigz/xxjtzawg5HM670WDU8ZNF0dIqZbm4nw+QaHpCdHx/SucMxqhZuwtyq1Sd aCd1kzAsEKD8SoX1hCk8oiGaK4Ig5Vmi1k/ylRA1bpFa3TYvgcWOkq1bVP1JIs9Rh6TBSn7tz TL6s7kls/+0j6EhDr9luAT/ylnjyJXhygNewXDKue7GyeW3vCieaQ242OPC2nC0noPaT/qrWo eyOkz5YsVD/wN66MNrtrCPkGOxx5RiB0Z3Zy8jnqwkrhlv7cyQV/PayXVxaFwvWJTtxLD2+y3 J9Ra7dg1Bl22Otm1sc0RMEv5bsqoYGIwIs41oB3BzmRvHwd3OnXG7tlPOq9pm1vWXEUhRu/v+ nK7B70xpGSVKpXFwRkreR/Bn6BKx9dTWRFw+zm0EUi0UHtlbs+0h2lXrqPm3chqQZMwAityYo y9golyiPMqe/bEVPNZ1jv8UaculGKXkXq5RK0JsKdVivl4JbDzQl1wRZ/yiFqG+g= SG9ub3VyIHRoZSB1c2VyIGdpdmVuIGJ1ZmZlciBzaXplIGZvciB0aGUgaGV4MzJfYXJnKCksIG51 bV9hcmcoKSwKc3Rybl9sZW4oKSwgZ2V0X2ltaXhfZW50cmllcygpIGFuZCBnZXRfbGFiZWxzKCkg Y2FsbHMgKG90aGVyd2lzZSB0aGV5IHdpbGwKYWNjZXNzIG1lbW9yeSBvdXRzaWRlIG9mIHRoZSB1 c2VyIGdpdmVuIGJ1ZmZlcikuCgpJbiBoZXgzMl9hcmcoKSwgbnVtX2FyZygpLCBzdHJuX2xlbigp IGVycm9yIG91dCBpbiBjYXNlIG5vIGNoYXJhY3RlcnMgYXJlCmF2YWlsYWJsZSAobWF4bGVuID0g MCksIGluIG51bV9hcmcoKSBhZGRpdGlvbmFsIGVycm9yIG91dCBpbiBjYXNlIG5vIHZhbGlkCmNo YXJhY3RlciBpcyBwYXJzZWQuCgpJbiBnZXRfbGFiZWxzKCkgYWRkaXRpb25hbCBlbmFibGUgcGFy c2luZyBsYWJlbHMgdXAgdG8gTUFYX0lNSVhfRU5UUklFUwppbnN0ZWFkIG9mIChNQVhfSU1JWF9F TlRSSUVTIC0gMSkuCgpBZGRpdGlvbmFsIHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIHZhcmlhYmxl IGluaXRpYWxpemluZyBhbmQgYWxpZ24gc29tZQp2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gdGhl IG1vc3QgY29tbW9uIHBhdHRlcm4uCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBTZWlkZXJlciA8cHMu cmVwb3J0QGdteC5uZXQ+Ci0tLQpDaGFuZ2VzIHYxIC0+IHYyOgogIC0gYWRkaXRpb25hbCBmaXgg Z2V0X2ltaXhfZW50cmllcygpIGFuZCBnZXRfbGFiZWxzKCkKLS0tCiBuZXQvY29yZS9wa3RnZW4u YyB8IDIxMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9jb3JlL3BrdGdlbi5jIGIvbmV0L2NvcmUvcGt0Z2VuLmMKaW5kZXggOWZlMmEy ZGIwZDM0Li4xZmMwMzc2NDE2MTAgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3BrdGdlbi5jCisrKyBi L25ldC9jb3JlL3BrdGdlbi5jCkBAIC03NTAsNiArNzUwLDkgQEAgc3RhdGljIGludCBoZXgzMl9h cmcoY29uc3QgY2hhciBfX3VzZXIgKnVzZXJfYnVmZmVyLCB1bnNpZ25lZCBsb25nIG1heGxlbiwK IAlpbnQgaSA9IDA7CiAJKm51bSA9IDA7CiAKKwlpZiAoIW1heGxlbikKKwkJcmV0dXJuIC1FSU5W QUw7CisKIAlmb3IgKDsgaSA8IG1heGxlbjsgaSsrKSB7CiAJCWludCB2YWx1ZTsKIAkJY2hhciBj OwpAQCAtNzk3LDYgKzgwMCw5IEBAIHN0YXRpYyBsb25nIG51bV9hcmcoY29uc3QgY2hhciBfX3Vz ZXIgKnVzZXJfYnVmZmVyLCB1bnNpZ25lZCBsb25nIG1heGxlbiwKIAlpbnQgaTsKIAkqbnVtID0g MDsKIAorCWlmICghbWF4bGVuKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWZvciAoaSA9IDA7IGkg PCBtYXhsZW47IGkrKykgewogCQljaGFyIGM7CiAJCWlmIChnZXRfdXNlcihjLCAmdXNlcl9idWZm ZXJbaV0pKQpAQCAtODA0LDYgKzgxMCw5IEBAIHN0YXRpYyBsb25nIG51bV9hcmcoY29uc3QgY2hh ciBfX3VzZXIgKnVzZXJfYnVmZmVyLCB1bnNpZ25lZCBsb25nIG1heGxlbiwKIAkJaWYgKChjID49 ICcwJykgJiYgKGMgPD0gJzknKSkgewogCQkJKm51bSAqPSAxMDsKIAkJCSpudW0gKz0gYyAtICcw JzsKKwkJfSBlbHNlIGlmIChpID09IDApIHsKKwkJCS8vIG5vIHZhbGlkIGNoYXJhY3RlciBwYXJz ZWQsIGVycm9yIG91dAorCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0gZWxzZQogCQkJYnJlYWs7CiAJ fQpAQCAtODE0LDYgKzgyMyw5IEBAIHN0YXRpYyBpbnQgc3Rybl9sZW4oY29uc3QgY2hhciBfX3Vz ZXIgKiB1c2VyX2J1ZmZlciwgdW5zaWduZWQgaW50IG1heGxlbikKIHsKIAlpbnQgaTsKIAorCWlm ICghbWF4bGVuKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWZvciAoaSA9IDA7IGkgPCBtYXhsZW47 IGkrKykgewogCQljaGFyIGM7CiAJCWlmIChnZXRfdXNlcihjLCAmdXNlcl9idWZmZXJbaV0pKQpA QCAtODQwLDExICs4NTIsMTAgQEAgc3RhdGljIGludCBzdHJuX2xlbihjb25zdCBjaGFyIF9fdXNl ciAqIHVzZXJfYnVmZmVyLCB1bnNpZ25lZCBpbnQgbWF4bGVuKQogICogInNpemUxLHdlaWdodF8x IHNpemUyLHdlaWdodF8yIC4uLiBzaXplX24sd2VpZ2h0X24iIGZvciBleGFtcGxlLgogICovCiBz dGF0aWMgc3NpemVfdCBnZXRfaW1peF9lbnRyaWVzKGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIs CisJCQkJdW5zaWduZWQgaW50IG1heGxlbiwKIAkJCQlzdHJ1Y3QgcGt0Z2VuX2RldiAqcGt0X2Rl dikKIHsKLQljb25zdCBpbnQgbWF4X2RpZ2l0cyA9IDEwOwotCWludCBpID0gMDsKLQlsb25nIGxl bjsKKwlpbnQgaSA9IDAsIG1heCwgbGVuOwogCWNoYXIgYzsKIAogCXBrdF9kZXYtPm5faW1peF9l bnRyaWVzID0gMDsKQEAgLTg1NiwxMCArODY3LDEzIEBAIHN0YXRpYyBzc2l6ZV90IGdldF9pbWl4 X2VudHJpZXMoY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwKIAkJaWYgKHBrdF9kZXYtPm5faW1p eF9lbnRyaWVzID49IE1BWF9JTUlYX0VOVFJJRVMpCiAJCQlyZXR1cm4gLUUyQklHOwogCi0JCWxl biA9IG51bV9hcmcoJmJ1ZmZlcltpXSwgbWF4X2RpZ2l0cywgJnNpemUpOworCQltYXggPSBtaW4o MTAsIG1heGxlbiAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZidWZmZXJbaV0sIG1heCwgJnNpemUp OwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAJCWkgKz0gbGVuOworCQlpZiAoaSA+ PSBtYXhsZW4pCisJCQlyZXR1cm4gLUVJTlZBTDsKIAkJaWYgKGdldF91c2VyKGMsICZidWZmZXJb aV0pKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCS8qIENoZWNrIGZvciBjb21tYSBiZXR3ZWVuIHNp emVfaSBhbmQgd2VpZ2h0X2kgKi8KQEAgLTg3MCw3ICs4ODQsOCBAQCBzdGF0aWMgc3NpemVfdCBn ZXRfaW1peF9lbnRyaWVzKGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCiAJCWlmIChzaXplIDwg MTQgKyAyMCArIDgpCiAJCQlzaXplID0gMTQgKyAyMCArIDg7CiAKLQkJbGVuID0gbnVtX2FyZygm YnVmZmVyW2ldLCBtYXhfZGlnaXRzLCAmd2VpZ2h0KTsKKwkJbWF4ID0gbWluKDEwLCBtYXhsZW4g LSBpKTsKKwkJbGVuID0gbnVtX2FyZygmYnVmZmVyW2ldLCBtYXgsICZ3ZWlnaHQpOwogCQlpZiAo bGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAJCWlmICh3ZWlnaHQgPD0gMCkKQEAgLTg4MCwzOSAr ODk1LDQ1IEBAIHN0YXRpYyBzc2l6ZV90IGdldF9pbWl4X2VudHJpZXMoY29uc3QgY2hhciBfX3Vz ZXIgKmJ1ZmZlciwKIAkJcGt0X2Rldi0+aW1peF9lbnRyaWVzW3BrdF9kZXYtPm5faW1peF9lbnRy aWVzXS53ZWlnaHQgPSB3ZWlnaHQ7CiAKIAkJaSArPSBsZW47CisJCXBrdF9kZXYtPm5faW1peF9l bnRyaWVzKys7CisKKwkJaWYgKGkgPj0gbWF4bGVuKQorCQkJYnJlYWs7CiAJCWlmIChnZXRfdXNl cihjLCAmYnVmZmVyW2ldKSkKIAkJCXJldHVybiAtRUZBVUxUOwotCiAJCWkrKzsKLQkJcGt0X2Rl di0+bl9pbWl4X2VudHJpZXMrKzsKIAl9IHdoaWxlIChjID09ICcgJyk7CiAKIAlyZXR1cm4gaTsK IH0KIAotc3RhdGljIHNzaXplX3QgZ2V0X2xhYmVscyhjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVy LCBzdHJ1Y3QgcGt0Z2VuX2RldiAqcGt0X2RldikKK3N0YXRpYyBzc2l6ZV90IGdldF9sYWJlbHMo Y29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwgaW50IG1heGxlbiwgc3RydWN0IHBrdGdlbl9kZXYg KnBrdF9kZXYpCiB7CiAJdW5zaWduZWQgaW50IG4gPSAwOwogCWNoYXIgYzsKLQlzc2l6ZV90IGkg PSAwOwotCWludCBsZW47CisJaW50IGkgPSAwLCBtYXgsIGxlbjsKIAogCXBrdF9kZXYtPm5yX2xh YmVscyA9IDA7CiAJZG8gewogCQlfX3UzMiB0bXA7Ci0JCWxlbiA9IGhleDMyX2FyZygmYnVmZmVy W2ldLCA4LCAmdG1wKTsKLQkJaWYgKGxlbiA8PSAwKQorCisJCWlmIChuID49IE1BWF9NUExTX0xB QkVMUykKKwkJCXJldHVybiAtRTJCSUc7CisKKwkJbWF4ID0gbWluKDgsIG1heGxlbiAtIGkpOwor CQlsZW4gPSBoZXgzMl9hcmcoJmJ1ZmZlcltpXSwgbWF4LCAmdG1wKTsKKwkJaWYgKGxlbiA8IDAp CiAJCQlyZXR1cm4gbGVuOwogCQlwa3RfZGV2LT5sYWJlbHNbbl0gPSBodG9ubCh0bXApOwogCQlp ZiAocGt0X2Rldi0+bGFiZWxzW25dICYgTVBMU19TVEFDS19CT1RUT00pCiAJCQlwa3RfZGV2LT5m bGFncyB8PSBGX01QTFNfUk5EOwogCQlpICs9IGxlbjsKKwkJbisrOworCQlpZiAoaSA+PSBtYXhs ZW4pCisJCQlicmVhazsKIAkJaWYgKGdldF91c2VyKGMsICZidWZmZXJbaV0pKQogCQkJcmV0dXJu IC1FRkFVTFQ7CiAJCWkrKzsKLQkJbisrOwotCQlpZiAobiA+PSBNQVhfTVBMU19MQUJFTFMpCi0J CQlyZXR1cm4gLUUyQklHOwogCX0gd2hpbGUgKGMgPT0gJywnKTsKIAogCXBrdF9kZXYtPm5yX2xh YmVscyA9IG47CkBAIC05NTgsNyArOTc5LDYgQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dy aXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCWNoYXIgbmFtZVsxNl0sIHZhbHN0clszMl07CiAJdW5z aWduZWQgbG9uZyB2YWx1ZSA9IDA7CiAJY2hhciAqcGdfcmVzdWx0ID0gTlVMTDsKLQlpbnQgdG1w ID0gMDsKIAljaGFyIGJ1ZlsxMjhdOwogCiAJcGdfcmVzdWx0ID0gJihwa3RfZGV2LT5yZXN1bHRb MF0pOwpAQCAtOTY4LDE3ICs5ODgsMTYgQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRl KHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQltYXggPSBjb3Vu dDsKLQl0bXAgPSBjb3VudF90cmFpbF9jaGFycyh1c2VyX2J1ZmZlciwgbWF4KTsKLQlpZiAodG1w IDwgMCkgeworCWxlbiA9IGNvdW50X3RyYWlsX2NoYXJzKHVzZXJfYnVmZmVyLCBjb3VudCk7CisJ aWYgKGxlbiA8IDApIHsKIAkJcHJfd2FybigiaWxsZWdhbCBmb3JtYXRcbiIpOwotCQlyZXR1cm4g dG1wOworCQlyZXR1cm4gbGVuOwogCX0KLQlpID0gdG1wOworCWkgPSBsZW47CiAKIAkvKiBSZWFk IHZhcmlhYmxlIG5hbWUgKi8KLQotCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6 ZW9mKG5hbWUpIC0gMSk7CisJbWF4ID0gbWluKHNpemVvZihuYW1lKSAtIDEsIGNvdW50IC0gaSk7 CisJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwogCWlmIChsZW4gPCAwKQog CQlyZXR1cm4gbGVuOwogCkBAIC0xMDA2LDcgKzEwMjUsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3Rn ZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwg Im1pbl9wa3Rfc2l6ZSIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwg JnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1 c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBs ZW47CiAKQEAgLTEwMjMsNyArMTA0Myw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAibWF4X3BrdF9z aXplIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOwor CQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVy W2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAt MTA0Miw3ICsxMDYzLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBm aWxlICpmaWxlLAogCS8qIFNob3J0Y3V0IGZvciBtaW4gPSBtYXggKi8KIAogCWlmICghc3RyY21w KG5hbWUsICJwa3Rfc2l6ZSIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAx MCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJn KCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVy biBsZW47CiAKQEAgLTEwNjIsNyArMTA4NCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJaWYgKHBrdF9kZXYtPmNsb25lX3NrYiA+IDApCiAJ CQlyZXR1cm4gLUVJTlZBTDsKIAotCQlsZW4gPSBnZXRfaW1peF9lbnRyaWVzKCZ1c2VyX2J1ZmZl cltpXSwgcGt0X2Rldik7CisJCW1heCA9IGNvdW50IC0gaTsKKwkJbGVuID0gZ2V0X2ltaXhfZW50 cmllcygmdXNlcl9idWZmZXJbaV0sIG1heCwgcGt0X2Rldik7CiAJCWlmIChsZW4gPCAwKQogCQkJ cmV0dXJuIGxlbjsKIApAQCAtMTA3Myw3ICsxMDk2LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2Vu X2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJk ZWJ1ZyIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsK KwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZl cltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAg LTEwODQsNyArMTEwOCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAiZnJhZ3MiKSkgewotCQlsZW4g PSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwg Y291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVl KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMDk0LDcgKzExMTksOCBA QCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJl dHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRlbGF5IikpIHsKLQkJbGVuID0g bnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNv dW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7 CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTEwOSw3ICsxMTM1LDggQEAg c3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1 cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJyYXRlIikpIHsKLQkJbGVuID0gbnVt X2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50 IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJ CWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTEyNCw3ICsxMTUxLDggQEAgc3Rh dGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4g Y291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJyYXRlcCIpKSB7Ci0JCWxlbiA9IG51bV9h cmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAt IGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlp ZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTExMzksNyArMTE2Nyw4IEBAIHN0YXRp YyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNv dW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAidWRwX3NyY19taW4iKSkgewotCQlsZW4gPSBu dW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291 bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsK IAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMTUyLDcgKzExODEsOCBAQCBz dGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVy biBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInVkcF9kc3RfbWluIikpIHsKLQkJbGVu ID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAs IGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1 ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTE2NSw3ICsxMTk1LDgg QEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQly ZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJ1ZHBfc3JjX21heCIpKSB7Ci0J CWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWlu KDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAm dmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTExNzgsNyArMTIw OSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwK IAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAidWRwX2RzdF9tYXgiKSkg ewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9 IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1h eCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMTkxLDcg KzEyMjMsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZp bGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImNsb25lX3NrYiIp KSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4 ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwg bWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAJCS8qIGNsb25l X3NrYiBpcyBub3Qgc3VwcG9ydGVkIGZvciBuZXRpZl9yZWNlaXZlIHhtaXRfbW9kZSBhbmQKQEAg LTEyMTIsNyArMTI0NSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiY291 bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJ CW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJb aV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0x MjIzLDcgKzEyNTcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZp bGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInNyY19t YWNfY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1 ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9i dWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwog CkBAIC0xMjM3LDcgKzEyNzIsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3Ry dWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwg ImRzdF9tYWNfY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAs ICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygm dXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4g bGVuOwogCkBAIC0xMjUxLDcgKzEyODcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3Jp dGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAo bmFtZSwgImJ1cnN0IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAm dmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVz ZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxl bjsKIApAQCAtMTI3MCw3ICsxMzA3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRl KHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5h bWUsICJub2RlIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFs dWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJf YnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsK IApAQCAtMTI5MSwxMSArMTMyOSwxMiBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUo c3RydWN0IGZpbGUgKmZpbGUsCiAJaWYgKCFzdHJjbXAobmFtZSwgInhtaXRfbW9kZSIpKSB7CiAJ CWNoYXIgZlszMl07CiAKLQkJbWVtc2V0KGYsIDAsIDMyKTsKLQkJbGVuID0gc3Rybl9sZW4oJnVz ZXJfYnVmZmVyW2ldLCBzaXplb2YoZikgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZihmKSAtIDEs IGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJ aWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCisJCW1lbXNldChmLCAwLCBzaXplb2YoZikp OwogCQlpZiAoY29weV9mcm9tX3VzZXIoZiwgJnVzZXJfYnVmZmVyW2ldLCBsZW4pKQogCQkJcmV0 dXJuIC1FRkFVTFQ7CiAJCWkgKz0gbGVuOwpAQCAtMTMzMSwxMSArMTM3MCwxMiBAQCBzdGF0aWMg c3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCWNoYXIgZlszMl07 CiAJCWNoYXIgKmVuZDsKIAotCQltZW1zZXQoZiwgMCwgMzIpOwotCQlsZW4gPSBzdHJuX2xlbigm dXNlcl9idWZmZXJbaV0sIHNpemVvZihmKSAtIDEpOworCQltYXggPSBtaW4oc2l6ZW9mKGYpIC0g MSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwog CQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKKwkJbWVtc2V0KGYsIDAsIDMyKTsKIAkJ aWYgKGNvcHlfZnJvbV91c2VyKGYsICZ1c2VyX2J1ZmZlcltpXSwgbGVuKSkKIAkJCXJldHVybiAt RUZBVUxUOwogCQlpICs9IGxlbjsKQEAgLTEzODAsNyArMTQyMCw4IEBAIHN0YXRpYyBzc2l6ZV90 IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0K IAlpZiAoIXN0cmNtcChuYW1lLCAiZHN0X21pbiIpIHx8ICFzdHJjbXAobmFtZSwgImRzdCIpKSB7 Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKHBrdF9kZXYtPmRzdF9t aW4pIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YocGt0X2Rldi0+ZHN0X21pbikgLSAxLCBjb3Vu dCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIG1heCk7CiAJCWlmIChs ZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTQwMCw3ICsxNDQxLDggQEAgc3RhdGljIHNz aXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7 CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJkc3RfbWF4IikpIHsKLQkJbGVuID0gc3Rybl9sZW4o JnVzZXJfYnVmZmVyW2ldLCBzaXplb2YocGt0X2Rldi0+ZHN0X21heCkgLSAxKTsKKwkJbWF4ID0g bWluKHNpemVvZihwa3RfZGV2LT5kc3RfbWF4KSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0 cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4g bGVuOwogCkBAIC0xNDIwLDcgKzE0NjIsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3Jp dGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAo bmFtZSwgImRzdDYiKSkgewotCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVv ZihidWYpIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YoYnVmKSAtIDEsIGNvdW50IC0gaSk7CisJ CWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJ CQlyZXR1cm4gbGVuOwogCkBAIC0xNDQzLDcgKzE0ODYsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3Rn ZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYg KCFzdHJjbXAobmFtZSwgImRzdDZfbWluIikpIHsKLQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVm ZmVyW2ldLCBzaXplb2YoYnVmKSAtIDEpOworCQltYXggPSBtaW4oc2l6ZW9mKGJ1ZikgLSAxLCBj b3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIG1heCk7CiAJCWlm IChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTQ2NSw3ICsxNTA5LDggQEAgc3RhdGlj IHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291 bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJkc3Q2X21heCIpKSB7Ci0JCWxlbiA9IHN0cm5f bGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGJ1ZikgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVv ZihidWYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ld LCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE0ODYsNyArMTUz MSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwK IAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAic3JjNiIpKSB7Ci0JCWxl biA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGJ1ZikgLSAxKTsKKwkJbWF4ID0g bWluKHNpemVvZihidWYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJf YnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE1 MDksNyArMTU1NSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmls ZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAic3JjX21p biIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKHBrdF9kZXYt PnNyY19taW4pIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YocGt0X2Rldi0+c3JjX21pbikgLSAx LCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIG1heCk7CiAJ CWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTUyOSw3ICsxNTc2LDggQEAgc3Rh dGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4g Y291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJzcmNfbWF4IikpIHsKLQkJbGVuID0gc3Ry bl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YocGt0X2Rldi0+c3JjX21heCkgLSAxKTsKKwkJ bWF4ID0gbWluKHNpemVvZihwa3RfZGV2LT5zcmNfbWF4KSAtIDEsIGNvdW50IC0gaSk7CisJCWxl biA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQly ZXR1cm4gbGVuOwogCkBAIC0xNTQ5LDcgKzE1OTcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5f aWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFz dHJjbXAobmFtZSwgImRzdF9tYWMiKSkgewotCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJb aV0sIHNpemVvZih2YWxzdHIpIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YodmFsc3RyKSAtIDEs IGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJ aWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNTY2LDcgKzE2MTUsOCBAQCBzdGF0 aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBj b3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInNyY19tYWMiKSkgewotCQlsZW4gPSBzdHJu X2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZih2YWxzdHIpIC0gMSk7CisJCW1heCA9IG1pbihz aXplb2YodmFsc3RyKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1 ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNTkw LDcgKzE2NDAsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUg KmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgImZsb3dzIikpIHsKLQkJbGVuID0gbnVt X2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50 IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJ CWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTYwNCw3ICsxNjU1LDggQEAgc3Rh dGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KICNpZmRl ZiBDT05GSUdfWEZSTQogCWlmICghc3RyY21wKG5hbWUsICJzcGkiKSkgewotCQlsZW4gPSBudW1f YXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQg LSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJ aWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNjE1LDcgKzE2NjcsOCBAQCBzdGF0 aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogI2VuZGlm CiAJaWYgKCFzdHJjbXAobmFtZSwgImZsb3dsZW4iKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2Vy X2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJ bGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8 IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNjI2LDcgKzE2NzksOCBAQCBzdGF0aWMgc3NpemVf dCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAo bmFtZSwgInF1ZXVlX21hcF9taW4iKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltp XSwgNSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDUsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9h cmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0 dXJuIGxlbjsKIApAQCAtMTYzNyw3ICsxNjkxLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lm X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJxdWV1 ZV9tYXBfbWF4IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDUsICZ2YWx1 ZSk7CisJCW1heCA9IG1pbig1LCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1 ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAK QEAgLTE2NTAsNyArMTcwNSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1 Y3QgZmlsZSAqZmlsZSwKIAlpZiAoIXN0cmNtcChuYW1lLCAibXBscyIpKSB7CiAJCXVuc2lnbmVk IGludCBuLCBjbnQ7CiAKLQkJbGVuID0gZ2V0X2xhYmVscygmdXNlcl9idWZmZXJbaV0sIHBrdF9k ZXYpOworCQltYXggPSBjb3VudCAtIGk7CisJCWxlbiA9IGdldF9sYWJlbHMoJnVzZXJfYnVmZmVy W2ldLCBtYXgsIHBrdF9kZXYpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAJCWkg Kz0gbGVuOwpAQCAtMTY3MSw3ICsxNzI3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dy aXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJ2bGFuX2lk IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDQsICZ2YWx1ZSk7CisJCW1h eCA9IG1pbig0LCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwg bWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE2OTgs NyArMTc1NSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAidmxhbl9wIikpIHsKLQkJbGVuID0gbnVt X2FyZygmdXNlcl9idWZmZXJbaV0sIDEsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxLCBjb3VudCAt IGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlp ZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE3MTMsNyArMTc3MSw4IEBAIHN0YXRp YyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAo IXN0cmNtcChuYW1lLCAidmxhbl9jZmkiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZl cltpXSwgMSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51 bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJ cmV0dXJuIGxlbjsKIApAQCAtMTcyOCw3ICsxNzg3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2Vu X2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJz dmxhbl9pZCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCA0LCAmdmFsdWUp OworCQltYXggPSBtaW4oNCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZm ZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBA IC0xNzU1LDcgKzE4MTUsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgInN2bGFuX3AiKSkgewotCQls ZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEs IGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1 ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTc3MCw3ICsxODMxLDgg QEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0K IAogCWlmICghc3RyY21wKG5hbWUsICJzdmxhbl9jZmkiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1 c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEsIGNvdW50IC0gaSk7CisJ CWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4g PCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTc4NSw4ICsxODQ3LDEwIEBAIHN0YXRpYyBzc2l6 ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNt cChuYW1lLCAidG9zIikpIHsKLQkJX191MzIgdG1wX3ZhbHVlID0gMDsKLQkJbGVuID0gaGV4MzJf YXJnKCZ1c2VyX2J1ZmZlcltpXSwgMiwgJnRtcF92YWx1ZSk7CisJCV9fdTMyIHRtcF92YWx1ZTsK KworCQltYXggPSBtaW4oMiwgY291bnQgLSBpKTsKKwkJbGVuID0gaGV4MzJfYXJnKCZ1c2VyX2J1 ZmZlcltpXSwgbWF4LCAmdG1wX3ZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVu OwogCkBAIC0xODAxLDggKzE4NjUsMTAgQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRl KHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJ0cmFmZmljX2Ns YXNzIikpIHsKLQkJX191MzIgdG1wX3ZhbHVlID0gMDsKLQkJbGVuID0gaGV4MzJfYXJnKCZ1c2Vy X2J1ZmZlcltpXSwgMiwgJnRtcF92YWx1ZSk7CisJCV9fdTMyIHRtcF92YWx1ZTsKKworCQltYXgg PSBtaW4oMiwgY291bnQgLSBpKTsKKwkJbGVuID0gaGV4MzJfYXJnKCZ1c2VyX2J1ZmZlcltpXSwg bWF4LCAmdG1wX3ZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0x ODE3LDcgKzE4ODMsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZp bGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgInNrYl9wcmlvcml0eSIpKSB7Ci0J CWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCA5LCAmdmFsdWUpOworCQltYXggPSBtaW4o OSwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZh bHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCi0tIAoyLjQ4LjEKCg==