From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 BC56F20E6F9; Mon, 3 Feb 2025 17:02:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738602164; cv=none; b=cakQdl8usZCm+L1kZkiABwgPYAqeplWBbUBHRYreTlhIoQbNm5bcivDXBuOZS+JBgrGIRRNoauazKJ3Qlj+WLXiUAlcYA4lKwliH/rafPE/AmLErm0GbkwH4h0eHIdpuwSsCKWcw/0lT952bckCpRH9IL+YC1gm7hB9OMkFh914= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738602164; c=relaxed/simple; bh=gIsg7jK8C+197Jjkn3kn9vrIIwtpeLi9nhpytYpBq7A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GbKKzF3uIUE+SFwLNxuNZJIcOeq5KG5XasDsnIkok20otcwDT5gcI5w2pGlvMNse0dmrK+IXDQLDa1pir/Q6F9g7P4XPx1V4gf+35n+V1AJDAJt/HZpXhQF/K27m0Aktuu1A8iaXaNqJxlwk9wsjr55lvDr1VyG62x3uaGOuPvM= 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=dnaNJKJj; arc=none smtp.client-ip=212.227.15.19 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="dnaNJKJj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1738602151; x=1739206951; i=ps.report@gmx.net; bh=gIsg7jK8C+197Jjkn3kn9vrIIwtpeLi9nhpytYpBq7A=; 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=dnaNJKJjPflgcIY6qPDywIX39PU7GOBkh6+wLs1qRXvto6Jw0hgonf8iSrJk79Lb FVIKr6P6AT1W06OAau0yj40EabFD/boZsqNPwJUH+lOF0XSqEtmzX5tVfiqKnHUHY JGj+nO30uW8GVY7mG93Dgcy8UN1k4KTuyoOxNWTcPYRhWNueChqFLXqGj5KC/EOhe XGSXICBwAKYWl9h8vGJpTUOEIMWlV+STSDMP4B2MawbDL+mhsy4pdvTInlGQVVPDk 0R19rIMgz6FL+5Vdh9okablmtL2VP0vyjDdrb8yvFbPhbAfqhnf6CJ+KlMoVBFJsj x5u2V8FBU8kHhkKGfw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.54]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MBm1e-1tZSzS3WFY-008Qt2; Mon, 03 Feb 2025 18:02:30 +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 , Nam Cao , Thomas Gleixner , Frederic Weisbecker , Artem Chernyshev , Peter Seiderer Subject: [PATCH net-next v3 08/10] net: pktgen: fix access outside of user given buffer in pktgen_if_write() Date: Mon, 3 Feb 2025 18:01:59 +0100 Message-ID: <20250203170201.1661703-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250203170201.1661703-1-ps.report@gmx.net> References: <20250203170201.1661703-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:TZvGL8RuRkZXzSs4WSna35w8tmgyDd7Brzv6k66bZbJpUrr05n9 gqcUOTM3x1Lfza7+sojZKEjdFfCCBUY1vQsomDigU+261m38GircsHTmUczdI4xJHOIC7Y2 L5A7mKsD4VhuH93H2TzlbSHdDs8KTLQrMfhqz+lNUXcj8Ij+y2JZbsjYIcsclqGkca86luI ZvxuLJjptHiR2nYvl+zkA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:YputBL6VmZg=;qVYO8TSHMJ4+S0Rw/kVXCdnBu7c Nu1GhTA9dZ7tQfnfGy0Hl83LTd3t65vmMesO7jJr4E300R8Oi+KomouWLRUOKaAEY5VEm2qzz bPgrhL2kv3kPZJS+3+qazkLomBZyaK31dqQCIox4dV4YSsuIfs8Xx07eoIaRm8Xl7LcZuQSE8 QVDpquEM2ZVVC4EVsJDRCF0cxniy38m0CSqXwHATzhp9oSGTKimQBvbh+liKb+t9X03q3Uh0k s3wzfffFf0USYAGFvoPM6CZ36CsI2ZcWsKgauaDJRotg6CMu2tYVG5VLTfdrm/3Q+G1hLt63p 3s1Wxzt92UstlCXSBCYf96pD463VbLp9YUcEUYSyBy+Exop5qPxHwJ8Lvikoef2k6qhmhsI/W R2LEvtX3JcAsartFtpZ011J11I7uF++FjMyBKhqFBCgcWxC4GL018SX7ZJNkJ5LEmxDXQeP8Y FCAPmXFknQr6qYsc+G58rUI6muU0N6uHjZbkmx7knGIr+I7TF5Q46X5FNiG5hBFJieHswWvbt PYykoST5Fx3eLMwG7Y0rFWfsi4GvWi57QmHZT0ByE6C8sFvJK/XBwOj8CWAN5jO8+TUgTUOlh pf4keD4F/K0uBqqClToZEtoU4uqJyt8RnXa+bNBrI8twCQGfvbFwob6bZWq3ie2974dx3VpbS LdNJc7clObUfcyepKQGuJsHt5zQYwHv5GZcAexbrG8Z/G3S7J6Zo3dH2gG4ag879Lu1nt5wsp XVGg5VUyK5I/dhnSk1hnKSzZcW7X3FOxycZDTooYFcB+ssGiB5lwvzfJ2opOfbbrPlF5os/JV C3QoQa+829ZywQR9/Y1agx8xtR/kXFrUlTus1PZFpNgyM4CTrCVFA9+aLcSP9GYhIm9HaEDz0 E8WBqoZTdyh8PJ6F76lus5ubP6m4lDQcxUaj37xBPvbPjUKo0NgSw0CStFGBGzDr6JmdX01ue ci8a16YN41F6LsmCJisV2EF4Z/nI2JMAYyJd4A3WbS75zRxOEAx49++I8u1A7fwVixKMSMR+W GwEpyglgogCOPzFVIao1jWmcR1349bIEp+6ee98L67I2zcMTWKjv5Af2t6FbZAaBS70Ujba5p kELZCd3Xtqk6hWE4x9SpGpwFEqIhsUvlTZOxmqv80ugVvHKl7uHlheSouLmyq3ePXnDt+ACdB wZmTxZ2SnFuUuZPWCsltTP4O7iRbC+H0FJJn5xd/rnoCcpTIPZC83NArrNQPnEK3i4O7OaEOv vHWkPoGLejdYfoHktAdr9QYxbmCnDYSHi991dB8TM1MbQXT/lkyNAcVoMbUQMjsCjSmu4EuJJ aQ2Z818vRCqAmiyckfgjX5jKfIknabES+m6bMpo5TzPX80= SG9ub3VyIHRoZSB1c2VyIGdpdmVuIGJ1ZmZlciBzaXplIGZvciB0aGUgaGV4MzJfYXJnKCksIG51 bV9hcmcoKSwKc3Rybl9sZW4oKSwgZ2V0X2ltaXhfZW50cmllcygpIGFuZCBnZXRfbGFiZWxzKCkg Y2FsbHMgKG90aGVyd2lzZSB0aGV5IHdpbGwKYWNjZXNzIG1lbW9yeSBvdXRzaWRlIG9mIHRoZSB1 c2VyIGdpdmVuIGJ1ZmZlcikuCgpJbiBoZXgzMl9hcmcoKSwgbnVtX2FyZygpLCBzdHJuX2xlbigp IGVycm9yIG91dCBpbiBjYXNlIG5vIGNoYXJhY3RlcnMgYXJlCmF2YWlsYWJsZSAobWF4bGVuID0g MCksIGluIG51bV9hcmcoKSBhZGRpdGlvbmFsIGVycm9yIG91dCBpbiBjYXNlIG5vIHZhbGlkCmNo YXJhY3RlciBpcyBwYXJzZWQuCgpJbiBnZXRfbGFiZWxzKCkgYWRkaXRpb25hbCBlbmFibGUgcGFy c2luZyBsYWJlbHMgdXAgdG8gTUFYX0lNSVhfRU5UUklFUwppbnN0ZWFkIG9mIChNQVhfSU1JWF9F TlRSSUVTIC0gMSkuCgpBZGRpdGlvbmFsIHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIHZhcmlhYmxl IGluaXRpYWxpemluZyBhbmQgYWxpZ24gc29tZQp2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gdGhl IG1vc3QgY29tbW9uIHBhdHRlcm4uCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBTZWlkZXJlciA8cHMu cmVwb3J0QGdteC5uZXQ+Ci0tLQpDaGFuZ2VzIHYyIC0+IHYzOgogIC0gbm8gY2hhbmdlcwoKQ2hh bmdlcyB2MSAtPiB2MjoKICAtIGFkZGl0aW9uYWwgZml4IGdldF9pbWl4X2VudHJpZXMoKSBhbmQg Z2V0X2xhYmVscygpCi0tLQogbmV0L2NvcmUvcGt0Z2VuLmMgfCAyMTEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzOSBpbnNl cnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9wa3RnZW4u YyBiL25ldC9jb3JlL3BrdGdlbi5jCmluZGV4IDU1MDY0NzEzMjIzZS4uNjY3NTM3NWMwNTJjIDEw MDY0NAotLS0gYS9uZXQvY29yZS9wa3RnZW4uYworKysgYi9uZXQvY29yZS9wa3RnZW4uYwpAQCAt NzUyLDYgKzc1Miw5IEBAIHN0YXRpYyBpbnQgaGV4MzJfYXJnKGNvbnN0IGNoYXIgX191c2VyICp1 c2VyX2J1ZmZlciwgdW5zaWduZWQgbG9uZyBtYXhsZW4sCiAJaW50IGkgPSAwOwogCSpudW0gPSAw OwogCisJaWYgKCFtYXhsZW4pCisJCXJldHVybiAtRUlOVkFMOworCiAJZm9yICg7IGkgPCBtYXhs ZW47IGkrKykgewogCQlpbnQgdmFsdWU7CiAJCWNoYXIgYzsKQEAgLTc5OSw2ICs4MDIsOSBAQCBz dGF0aWMgbG9uZyBudW1fYXJnKGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZmZlciwgdW5zaWdu ZWQgbG9uZyBtYXhsZW4sCiAJaW50IGk7CiAJKm51bSA9IDA7CiAKKwlpZiAoIW1heGxlbikKKwkJ cmV0dXJuIC1FSU5WQUw7CisKIAlmb3IgKGkgPSAwOyBpIDwgbWF4bGVuOyBpKyspIHsKIAkJY2hh ciBjOwogCQlpZiAoZ2V0X3VzZXIoYywgJnVzZXJfYnVmZmVyW2ldKSkKQEAgLTgwNiw2ICs4MTIs OSBAQCBzdGF0aWMgbG9uZyBudW1fYXJnKGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZmZlciwg dW5zaWduZWQgbG9uZyBtYXhsZW4sCiAJCWlmICgoYyA+PSAnMCcpICYmIChjIDw9ICc5JykpIHsK IAkJCSpudW0gKj0gMTA7CiAJCQkqbnVtICs9IGMgLSAnMCc7CisJCX0gZWxzZSBpZiAoaSA9PSAw KSB7CisJCQkvLyBubyB2YWxpZCBjaGFyYWN0ZXIgcGFyc2VkLCBlcnJvciBvdXQKKwkJCXJldHVy biAtRUlOVkFMOwogCQl9IGVsc2UKIAkJCWJyZWFrOwogCX0KQEAgLTgxNiw2ICs4MjUsOSBAQCBz dGF0aWMgaW50IHN0cm5fbGVuKGNvbnN0IGNoYXIgX191c2VyICogdXNlcl9idWZmZXIsIHVuc2ln bmVkIGludCBtYXhsZW4pCiB7CiAJaW50IGk7CiAKKwlpZiAoIW1heGxlbikKKwkJcmV0dXJuIC1F SU5WQUw7CisKIAlmb3IgKGkgPSAwOyBpIDwgbWF4bGVuOyBpKyspIHsKIAkJY2hhciBjOwogCQlp ZiAoZ2V0X3VzZXIoYywgJnVzZXJfYnVmZmVyW2ldKSkKQEAgLTg0MiwxMSArODU0LDEwIEBAIHN0 YXRpYyBpbnQgc3Rybl9sZW4oY29uc3QgY2hhciBfX3VzZXIgKiB1c2VyX2J1ZmZlciwgdW5zaWdu ZWQgaW50IG1heGxlbikKICAqICJzaXplMSx3ZWlnaHRfMSBzaXplMix3ZWlnaHRfMiAuLi4gc2l6 ZV9uLHdlaWdodF9uIiBmb3IgZXhhbXBsZS4KICAqLwogc3RhdGljIHNzaXplX3QgZ2V0X2ltaXhf ZW50cmllcyhjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLAorCQkJCXVuc2lnbmVkIGludCBtYXhs ZW4sCiAJCQkJc3RydWN0IHBrdGdlbl9kZXYgKnBrdF9kZXYpCiB7Ci0JY29uc3QgaW50IG1heF9k aWdpdHMgPSAxMDsKLQlpbnQgaSA9IDA7Ci0JbG9uZyBsZW47CisJaW50IGkgPSAwLCBtYXgsIGxl bjsKIAljaGFyIGM7CiAKIAlwa3RfZGV2LT5uX2ltaXhfZW50cmllcyA9IDA7CkBAIC04NTgsMTAg Kzg2OSwxMyBAQCBzdGF0aWMgc3NpemVfdCBnZXRfaW1peF9lbnRyaWVzKGNvbnN0IGNoYXIgX191 c2VyICpidWZmZXIsCiAJCWlmIChwa3RfZGV2LT5uX2ltaXhfZW50cmllcyA+PSBNQVhfSU1JWF9F TlRSSUVTKQogCQkJcmV0dXJuIC1FMkJJRzsKIAotCQlsZW4gPSBudW1fYXJnKCZidWZmZXJbaV0s IG1heF9kaWdpdHMsICZzaXplKTsKKwkJbWF4ID0gbWluKDEwLCBtYXhsZW4gLSBpKTsKKwkJbGVu ID0gbnVtX2FyZygmYnVmZmVyW2ldLCBtYXgsICZzaXplKTsKIAkJaWYgKGxlbiA8IDApCiAJCQly ZXR1cm4gbGVuOwogCQlpICs9IGxlbjsKKwkJaWYgKGkgPj0gbWF4bGVuKQorCQkJcmV0dXJuIC1F SU5WQUw7CiAJCWlmIChnZXRfdXNlcihjLCAmYnVmZmVyW2ldKSkKIAkJCXJldHVybiAtRUZBVUxU OwogCQkvKiBDaGVjayBmb3IgY29tbWEgYmV0d2VlbiBzaXplX2kgYW5kIHdlaWdodF9pICovCkBA IC04NzIsNyArODg2LDggQEAgc3RhdGljIHNzaXplX3QgZ2V0X2ltaXhfZW50cmllcyhjb25zdCBj aGFyIF9fdXNlciAqYnVmZmVyLAogCQlpZiAoc2l6ZSA8IDE0ICsgMjAgKyA4KQogCQkJc2l6ZSA9 IDE0ICsgMjAgKyA4OwogCi0JCWxlbiA9IG51bV9hcmcoJmJ1ZmZlcltpXSwgbWF4X2RpZ2l0cywg JndlaWdodCk7CisJCW1heCA9IG1pbigxMCwgbWF4bGVuIC0gaSk7CisJCWxlbiA9IG51bV9hcmco JmJ1ZmZlcltpXSwgbWF4LCAmd2VpZ2h0KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVu OwogCQlpZiAod2VpZ2h0IDw9IDApCkBAIC04ODIsMzkgKzg5Nyw0NSBAQCBzdGF0aWMgc3NpemVf dCBnZXRfaW1peF9lbnRyaWVzKGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCiAJCXBrdF9kZXYt PmltaXhfZW50cmllc1twa3RfZGV2LT5uX2ltaXhfZW50cmllc10ud2VpZ2h0ID0gd2VpZ2h0Owog CiAJCWkgKz0gbGVuOworCQlwa3RfZGV2LT5uX2ltaXhfZW50cmllcysrOworCisJCWlmIChpID49 IG1heGxlbikKKwkJCWJyZWFrOwogCQlpZiAoZ2V0X3VzZXIoYywgJmJ1ZmZlcltpXSkpCiAJCQly ZXR1cm4gLUVGQVVMVDsKLQogCQlpKys7Ci0JCXBrdF9kZXYtPm5faW1peF9lbnRyaWVzKys7CiAJ fSB3aGlsZSAoYyA9PSAnICcpOwogCiAJcmV0dXJuIGk7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IGdl dF9sYWJlbHMoY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwgc3RydWN0IHBrdGdlbl9kZXYgKnBr dF9kZXYpCitzdGF0aWMgc3NpemVfdCBnZXRfbGFiZWxzKGNvbnN0IGNoYXIgX191c2VyICpidWZm ZXIsIGludCBtYXhsZW4sIHN0cnVjdCBwa3RnZW5fZGV2ICpwa3RfZGV2KQogewogCXVuc2lnbmVk IGludCBuID0gMDsKIAljaGFyIGM7Ci0Jc3NpemVfdCBpID0gMDsKLQlpbnQgbGVuOworCWludCBp ID0gMCwgbWF4LCBsZW47CiAKIAlwa3RfZGV2LT5ucl9sYWJlbHMgPSAwOwogCWRvIHsKIAkJX191 MzIgdG1wOwotCQlsZW4gPSBoZXgzMl9hcmcoJmJ1ZmZlcltpXSwgOCwgJnRtcCk7CisKKwkJaWYg KG4gPj0gTUFYX01QTFNfTEFCRUxTKQorCQkJcmV0dXJuIC1FMkJJRzsKKworCQltYXggPSBtaW4o OCwgbWF4bGVuIC0gaSk7CisJCWxlbiA9IGhleDMyX2FyZygmYnVmZmVyW2ldLCBtYXgsICZ0bXAp OwogCQlpZiAobGVuIDw9IDApCiAJCQlyZXR1cm4gbGVuOwogCQlwa3RfZGV2LT5sYWJlbHNbbl0g PSBodG9ubCh0bXApOwogCQlpZiAocGt0X2Rldi0+bGFiZWxzW25dICYgTVBMU19TVEFDS19CT1RU T00pCiAJCQlwa3RfZGV2LT5mbGFncyB8PSBGX01QTFNfUk5EOwogCQlpICs9IGxlbjsKKwkJbisr OworCQlpZiAoaSA+PSBtYXhsZW4pCisJCQlicmVhazsKIAkJaWYgKGdldF91c2VyKGMsICZidWZm ZXJbaV0pKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCWkrKzsKLQkJbisrOwotCQlpZiAobiA+PSBN QVhfTVBMU19MQUJFTFMpCi0JCQlyZXR1cm4gLUUyQklHOwogCX0gd2hpbGUgKGMgPT0gJywnKTsK IAogCXBrdF9kZXYtPm5yX2xhYmVscyA9IG47CkBAIC05NjAsNyArOTgxLDYgQEAgc3RhdGljIHNz aXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCWNoYXIgbmFtZVsxNl0s IHZhbHN0clszMl07CiAJdW5zaWduZWQgbG9uZyB2YWx1ZSA9IDA7CiAJY2hhciAqcGdfcmVzdWx0 ID0gTlVMTDsKLQlpbnQgdG1wID0gMDsKIAljaGFyIGJ1ZlsxMjhdOwogCiAJcGdfcmVzdWx0ID0g Jihwa3RfZGV2LT5yZXN1bHRbMF0pOwpAQCAtOTcwLDE3ICs5OTAsMTYgQEAgc3RhdGljIHNzaXpl X3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gLUVJTlZBTDsK IAl9CiAKLQltYXggPSBjb3VudDsKLQl0bXAgPSBjb3VudF90cmFpbF9jaGFycyh1c2VyX2J1ZmZl ciwgbWF4KTsKLQlpZiAodG1wIDwgMCkgeworCWxlbiA9IGNvdW50X3RyYWlsX2NoYXJzKHVzZXJf YnVmZmVyLCBjb3VudCk7CisJaWYgKGxlbiA8IDApIHsKIAkJcHJfd2FybigiaWxsZWdhbCBmb3Jt YXRcbiIpOwotCQlyZXR1cm4gdG1wOworCQlyZXR1cm4gbGVuOwogCX0KLQlpID0gdG1wOworCWkg PSBsZW47CiAKIAkvKiBSZWFkIHZhcmlhYmxlIG5hbWUgKi8KLQotCWxlbiA9IHN0cm5fbGVuKCZ1 c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKG5hbWUpIC0gMSk7CisJbWF4ID0gbWluKHNpemVvZihuYW1l KSAtIDEsIGNvdW50IC0gaSk7CisJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgp OwogCWlmIChsZW4gPCAwKQogCQlyZXR1cm4gbGVuOwogCkBAIC0xMDA4LDcgKzEwMjcsOCBAQCBz dGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJ aWYgKCFzdHJjbXAobmFtZSwgIm1pbl9wa3Rfc2l6ZSIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVz ZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOwor CQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVu IDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTEwMjUsNyArMTA0NSw4IEBAIHN0YXRpYyBzc2l6 ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNt cChuYW1lLCAibWF4X3BrdF9zaXplIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJb aV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51 bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJ cmV0dXJuIGxlbjsKIApAQCAtMTA0NCw3ICsxMDY1LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2Vu X2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCS8qIFNob3J0Y3V0IGZvciBtaW4gPSBtYXgg Ki8KIAogCWlmICghc3RyY21wKG5hbWUsICJwa3Rfc2l6ZSIpKSB7Ci0JCWxlbiA9IG51bV9hcmco JnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkp OworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAo bGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTEwNjQsNyArMTA4Niw4IEBAIHN0YXRpYyBz c2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJaWYgKHBrdF9kZXYt PmNsb25lX3NrYiA+IDApCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlsZW4gPSBnZXRfaW1peF9l bnRyaWVzKCZ1c2VyX2J1ZmZlcltpXSwgcGt0X2Rldik7CisJCW1heCA9IGNvdW50IC0gaTsKKwkJ bGVuID0gZ2V0X2ltaXhfZW50cmllcygmdXNlcl9idWZmZXJbaV0sIG1heCwgcGt0X2Rldik7CiAJ CWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTA3NSw3ICsxMDk4LDggQEAgc3Rh dGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlm ICghc3RyY21wKG5hbWUsICJkZWJ1ZyIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVy W2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBu dW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJ CXJldHVybiBsZW47CiAKQEAgLTEwODYsNyArMTExMCw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdl bl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAi ZnJhZ3MiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7 CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZm ZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBA IC0xMDk2LDcgKzExMjEsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRl bGF5IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOwor CQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVy W2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAt MTExMSw3ICsxMTM3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBm aWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJyYXRl IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQlt YXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ld LCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTEy Niw3ICsxMTUzLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJyYXRlcCIp KSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4 ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwg bWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTExNDEs NyArMTE2OSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAidWRwX3NyY19t aW4iKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJ CW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJb aV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0x MTU0LDcgKzExODMsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZp bGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInVkcF9k c3RfbWluIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUp OworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVm ZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApA QCAtMTE2Nyw3ICsxMTk3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVj dCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJ1 ZHBfc3JjX21heCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZh bHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2Vy X2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47 CiAKQEAgLTExODAsNyArMTIxMSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1l LCAidWRwX2RzdF9tYXgiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAs ICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygm dXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4g bGVuOwogCkBAIC0xMTkzLDcgKzEyMjUsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3Jp dGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAo bmFtZSwgImNsb25lX3NrYiIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAx MCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJn KCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVy biBsZW47CiAJCS8qIGNsb25lX3NrYiBpcyBub3Qgc3VwcG9ydGVkIGZvciBuZXRpZl9yZWNlaXZl IHhtaXRfbW9kZSBhbmQKQEAgLTEyMTQsNyArMTI0Nyw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdl bl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAo IXN0cmNtcChuYW1lLCAiY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltp XSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVt X2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQly ZXR1cm4gbGVuOwogCkBAIC0xMjI1LDcgKzEyNTksOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5f aWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFz dHJjbXAobmFtZSwgInNyY19tYWNfY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1 ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVu ID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDAp CiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMjM5LDcgKzEyNzQsOCBAQCBzdGF0aWMgc3NpemVfdCBw a3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJ aWYgKCFzdHJjbXAobmFtZSwgImRzdF9tYWNfY291bnQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1 c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsK KwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxl biA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMjUzLDcgKzEyODksOCBAQCBzdGF0aWMgc3Np emVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsK IAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImJ1cnN0IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNl cl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJ CWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4g PCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTI3Miw3ICsxMzA5LDggQEAgc3RhdGljIHNzaXpl X3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJ fQogCWlmICghc3RyY21wKG5hbWUsICJub2RlIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9i dWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxl biA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAw KQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTI5MywxMSArMTMzMSwxMiBAQCBzdGF0aWMgc3NpemVf dCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJaWYgKCFzdHJjbXAobmFtZSwg InhtaXRfbW9kZSIpKSB7CiAJCWNoYXIgZlszMl07CiAKLQkJbWVtc2V0KGYsIDAsIDMyKTsKLQkJ bGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YoZikgLSAxKTsKKwkJbWF4ID0g bWluKHNpemVvZihmKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1 ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCisJCW1lbXNl dChmLCAwLCBzaXplb2YoZikpOwogCQlpZiAoY29weV9mcm9tX3VzZXIoZiwgJnVzZXJfYnVmZmVy W2ldLCBsZW4pKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCWkgKz0gbGVuOwpAQCAtMTMzMywxMSAr MTM3MiwxMiBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZp bGUsCiAJCWNoYXIgZlszMl07CiAJCWNoYXIgKmVuZDsKIAotCQltZW1zZXQoZiwgMCwgMzIpOwot CQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZihmKSAtIDEpOworCQltYXgg PSBtaW4oc2l6ZW9mKGYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJf YnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKKwkJbWVt c2V0KGYsIDAsIDMyKTsKIAkJaWYgKGNvcHlfZnJvbV91c2VyKGYsICZ1c2VyX2J1ZmZlcltpXSwg bGVuKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCQlpICs9IGxlbjsKQEAgLTEzODIsNyArMTQyMiw4 IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJ cmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiZHN0X21pbiIpIHx8ICFzdHJj bXAobmFtZSwgImRzdCIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6 ZW9mKHBrdF9kZXYtPmRzdF9taW4pIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YocGt0X2Rldi0+ ZHN0X21pbikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJb aV0sIG1heCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTQwMiw3ICsx NDQzLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJkc3RfbWF4IikpIHsK LQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YocGt0X2Rldi0+ZHN0X21h eCkgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZihwa3RfZGV2LT5kc3RfbWF4KSAtIDEsIGNvdW50 IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxl biA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNDIyLDcgKzE0NjQsOCBAQCBzdGF0aWMgc3Np emVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsK IAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRzdDYiKSkgewotCQlsZW4gPSBzdHJuX2xlbigmdXNl cl9idWZmZXJbaV0sIHNpemVvZihidWYpIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YoYnVmKSAt IDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsK IAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNDQ1LDcgKzE0ODgsOCBAQCBz dGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVy biBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRzdDZfbWluIikpIHsKLQkJbGVuID0g c3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YoYnVmKSAtIDEpOworCQltYXggPSBtaW4o c2l6ZW9mKGJ1ZikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZm ZXJbaV0sIG1heCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTQ2Nyw3 ICsxNTExLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpm aWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJkc3Q2X21heCIp KSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGJ1ZikgLSAxKTsK KwkJbWF4ID0gbWluKHNpemVvZihidWYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9s ZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47 CiAKQEAgLTE0ODgsNyArMTUzMyw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1l LCAic3JjNiIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGJ1 ZikgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZihidWYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVu ID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJl dHVybiBsZW47CiAKQEAgLTE1MTEsNyArMTU1Nyw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9p Zl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0 cmNtcChuYW1lLCAic3JjX21pbiIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltp XSwgc2l6ZW9mKHBrdF9kZXYtPnNyY19taW4pIC0gMSk7CisJCW1heCA9IG1pbihzaXplb2YocGt0 X2Rldi0+c3JjX21pbikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9i dWZmZXJbaV0sIG1heCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTUz MSw3ICsxNTc4LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJzcmNfbWF4 IikpIHsKLQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YocGt0X2Rldi0+ c3JjX21heCkgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZihwa3RfZGV2LT5zcmNfbWF4KSAtIDEs IGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJ aWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNTUxLDcgKzE1OTksOCBAQCBzdGF0 aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBj b3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRzdF9tYWMiKSkgewotCQlsZW4gPSBzdHJu X2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZih2YWxzdHIpIC0gMSk7CisJCW1heCA9IG1pbihz aXplb2YodmFsc3RyKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1 ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNTY4 LDcgKzE2MTcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUg KmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInNyY19tYWMi KSkgewotCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZih2YWxzdHIpIC0g MSk7CisJCW1heCA9IG1pbihzaXplb2YodmFsc3RyKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9 IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1 cm4gbGVuOwogCkBAIC0xNTkyLDcgKzE2NDIsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZf d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgImZsb3dz IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQlt YXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ld LCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTYw Niw3ICsxNjU3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLAogCX0KICNpZmRlZiBDT05GSUdfWEZSTQogCWlmICghc3RyY21wKG5hbWUsICJzcGki KSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1h eCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0s IG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNjE3 LDcgKzE2NjksOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUg KmZpbGUsCiAJfQogI2VuZGlmCiAJaWYgKCFzdHJjbXAobmFtZSwgImZsb3dsZW4iKSkgewotCQls ZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigx MCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZh bHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNjI4LDcgKzE2ODEs OCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJ fQogCiAJaWYgKCFzdHJjbXAobmFtZSwgInF1ZXVlX21hcF9taW4iKSkgewotCQlsZW4gPSBudW1f YXJnKCZ1c2VyX2J1ZmZlcltpXSwgNSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDUsIGNvdW50IC0g aSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlm IChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTYzOSw3ICsxNjkzLDggQEAgc3RhdGlj IHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICgh c3RyY21wKG5hbWUsICJxdWV1ZV9tYXBfbWF4IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9i dWZmZXJbaV0sIDUsICZ2YWx1ZSk7CisJCW1heCA9IG1pbig1LCBjb3VudCAtIGkpOworCQlsZW4g PSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkK IAkJCXJldHVybiBsZW47CiAKQEAgLTE2NTIsNyArMTcwNyw4IEBAIHN0YXRpYyBzc2l6ZV90IHBr dGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlpZiAoIXN0cmNtcChuYW1lLCAibXBs cyIpKSB7CiAJCXVuc2lnbmVkIGludCBuLCBjbnQ7CiAKLQkJbGVuID0gZ2V0X2xhYmVscygmdXNl cl9idWZmZXJbaV0sIHBrdF9kZXYpOworCQltYXggPSBjb3VudCAtIGk7CisJCWxlbiA9IGdldF9s YWJlbHMoJnVzZXJfYnVmZmVyW2ldLCBtYXgsIHBrdF9kZXYpOwogCQlpZiAobGVuIDwgMCkKIAkJ CXJldHVybiBsZW47CiAJCWkgKz0gbGVuOwpAQCAtMTY3Myw3ICsxNzI5LDggQEAgc3RhdGljIHNz aXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3Ry Y21wKG5hbWUsICJ2bGFuX2lkIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0s IDQsICZ2YWx1ZSk7CisJCW1heCA9IG1pbig0LCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJn KCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVy biBsZW47CiAKQEAgLTE3MDAsNyArMTc1Nyw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAidmxhbl9w IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEsICZ2YWx1ZSk7CisJCW1h eCA9IG1pbigxLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwg bWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE3MTUs NyArMTc3Myw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAidmxhbl9jZmkiKSkgewotCQlsZW4gPSBu dW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEsIGNvdW50 IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJ CWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTczMCw3ICsxNzg5LDggQEAgc3Rh dGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlm ICghc3RyY21wKG5hbWUsICJzdmxhbl9pZCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVm ZmVyW2ldLCA0LCAmdmFsdWUpOworCQltYXggPSBtaW4oNCwgY291bnQgLSBpKTsKKwkJbGVuID0g bnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJ CQlyZXR1cm4gbGVuOwogCkBAIC0xNzU3LDcgKzE4MTcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3Rn ZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwg InN2bGFuX3AiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVl KTsKKwkJbWF4ID0gbWluKDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVm ZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApA QCAtMTc3Miw3ICsxODMzLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVj dCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJzdmxhbl9jZmkiKSkgewot CQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsKKwkJbWF4ID0gbWlu KDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2 YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTc4Nyw4ICsxODQ5 LDEwIEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwK IAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAidG9zIikpIHsKLQkJX191MzIgdG1wX3ZhbHVlID0g MDsKLQkJbGVuID0gaGV4MzJfYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMiwgJnRtcF92YWx1ZSk7CisJ CV9fdTMyIHRtcF92YWx1ZTsKKworCQltYXggPSBtaW4oMiwgY291bnQgLSBpKTsKKwkJbGVuID0g aGV4MzJfYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdG1wX3ZhbHVlKTsKIAkJaWYgKGxlbiA8 IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xODAzLDggKzE4NjcsMTAgQEAgc3RhdGljIHNzaXpl X3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21w KG5hbWUsICJ0cmFmZmljX2NsYXNzIikpIHsKLQkJX191MzIgdG1wX3ZhbHVlID0gMDsKLQkJbGVu ID0gaGV4MzJfYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMiwgJnRtcF92YWx1ZSk7CisJCV9fdTMyIHRt cF92YWx1ZTsKKworCQltYXggPSBtaW4oMiwgY291bnQgLSBpKTsKKwkJbGVuID0gaGV4MzJfYXJn KCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdG1wX3ZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQly ZXR1cm4gbGVuOwogCkBAIC0xODE5LDcgKzE4ODUsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5f aWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgInNr Yl9wcmlvcml0eSIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCA5LCAmdmFs dWUpOworCQltYXggPSBtaW4oOSwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9i dWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwog Ci0tIAoyLjQ4LjEKCg==