From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (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 CCCFB347CC; Fri, 17 Jan 2025 14:16:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.20 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737123397; cv=none; b=KVjZaKpHw90aM4/RyeMKkPUMhF6+4ab3I0bsGGfff62vbNhdAitARNGil6uq/g93dMF+e/ImXsquL6QpxSOQOMQMuOqOMoYDRBMkkiXZx9LO0P/SMBjeboK1S00pQya7qNkxTvrdoxa7ZrNWg7TgXCWH2VF7m0zC7wT47GGboQc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737123397; c=relaxed/simple; bh=cT+Ulo1/Xar64Mj2jDeX4PDN1R8bjGBg3hh1V8lSTv4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cXdoSuQt1gVESVS8Qy5nHKA6Y8OCMfEJUqfyS4oyefHIAZk2lFlv36Y4hCHS7mZTuD6EBDDUwKBeI40k6VNT+oxyCR/qZQfV4ZmdbwzQk0w3XbK6/UGD+RmCNKDBw3HTZOB3Lq9KdYqRHTZ7x7NrxL/bt0w/qMC5X+LVtu4b8ks= 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=FcMcZteg; arc=none smtp.client-ip=212.227.17.20 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="FcMcZteg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1737123382; x=1737728182; i=ps.report@gmx.net; bh=cT+Ulo1/Xar64Mj2jDeX4PDN1R8bjGBg3hh1V8lSTv4=; 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=FcMcZtegApGR8taobktXfUnObEJzNZza436Ek/rkHRfLyQxsKs9KvVEo7UxqzJAO 7vxlDL1FrMaQurilezIgx2dfPyW6UbzdgeKh4wL60TK+lkyHZFoWFMN6BIphayj2O bp57G8bPc0Ee9uk+yjuytg8PgoPc3mcc+6dfAZxim54zITrkfXuyWEErAby6GMtAI kGQiQRMf6TnOrGws133kiu+d+tZW/XcUGMxjHXKuVVdGoodTOzbKJLY5jvvxwm7xE fuaztKHHUpPgOwecH6pGycsUFAEy1LSixur0VihJLDar96iJ3XnA3mJjSBxvNbPnA vPocdxkgdcXOVlwyig== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.138]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MAwbp-1tfdpX39TN-0075zW; Fri, 17 Jan 2025 15:16:22 +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 , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Frederic Weisbecker , Artem Chernyshev , Nam Cao , Peter Seiderer Subject: [PATCH net-next v1 4/5] net: pktgen: fix access outside of user given buffer in pktgen_if_write() Date: Fri, 17 Jan 2025 15:16:12 +0100 Message-ID: <20250117141613.691452-5-ps.report@gmx.net> X-Mailer: git-send-email 2.48.0 In-Reply-To: <20250117141613.691452-1-ps.report@gmx.net> References: <20250117141613.691452-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:c1KGeR0MUtlmrc5YvOoEc15EahOuqq4XgfYWa8rkKl42Fw5m+Be TWBzh+HQ+fioNQVJymwugc9qvNHvLeixncVOdyD3W49IKVL5J+7+6EkZJyHShSpkK9hprGu w1bXJ3BTj3Skq4jLH/Fgw2u0Y3Joyjg5XnIMhvVB319bpYj4wmwqlmwRGhMlwf1K7jlrnfD 4qDxoEsSTeyb8NEoRADpQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:HT+kgfTzmrM=;dIEVUmMlMg4wbC6jrt4nGrUHkfN KTHWytsVrY3UNlrg8iIsL2RDdxuhF4xZr0U+tgZSc+N9owZC3hVLXyVPC5opDzAWOckBSk9wo 1LQfXNfYETLr200tvrELCQapL+SgB/w+ql6mRxUMZe9Xem6w5Ut3ESEiJWpXT5Le/dulW0laZ 2QbIBhy1lwZQ4Bc9+Q5l1XaJvXdafxIPLAD8+3sbDH/ZK+4q4UIKdzwfFPxbmxKNMBmvXeBfa gM3caErpfQUWArXDwMaXngk0YA0zHypeKvwO4DTfX0qwbzbLGMh0a3AsVyvuU4zgcGduAFogP GK8YYw9VTNa/4yzVWWfuwPqGMQj+Z64ymqzzdWgIAecHQFGPv86c8yiVyjgjj27gsNssCXTHU 21iT3FL4hQJTJ00HNTI/OrU6UqGiWV5Waak9GRcsjKxFV59uTbpPXNtP+FbZHcLMs5Zy0OW9D 1biZQuRBrGgeDO5WMu8oOgLp2LEd44LTV7ren8ljFze6afngxa9nPit9wgv31pW50WY7HU6Aq GymLpMbx2My+tee0JrTTMyUnJP/Q1UKVNX0ahzvtYeKZxZLee3+LI6toX2s8omiaeZ1yhKm5F KgjDA9JvmdEG2EIbejBIzjUdX9l+4/nI8cYmFHBxlWh7RNa1GiXAmYy4Lxh8AWgURf9FwfHmN mcwBv4aaDV6IZh7KSS2U5QCPs2UBhOGM4MahUMoChnsu2tCaowI7V0XRscrKnVCMuU9qtgFhk NuAjUexZfyxURvKep/UKob6CVNGFQqiWVCJNgcUCVomQ+yXFEJf8gR+3Xq7Zif/EB9Z04z4b8 KD01YPt4pyZH5VY6gjhjOPnJWqWpOKipwh7WzHKAN+XXYtcYSIzFh4L+ppnpF1WfVWAIYX72N tbEHQNKj015jE444gLmWpa4v+Rcm6Zu+trNG6fGgCw+gXXdAb5Ks+E48b8uX49sigWeosA6CI 2LJr63J+JEEZYrxjdAyBmmjEjOUXE/Mcen4Ed/H6osq0/KhFRrIzEcNtIvl/5SvRLn8h8Px+m /GNQUSsEG9sOBD4UJLNrZ99WRj7EHjH+cyFGY5WERrF1ddv2DVWat6k3+u/Kor9f5pA8x5rAc ydx7xGKr2d12Nlwn9vg/l42y9tajLcSAXjIvMaLwRQAdlK7aNY6wevhBcqydZipdj8oH+lWtV ptrK6npj3RaEysnfv6158wHOfxtUyNT3anNfa/6mBaA== SG9ub3VyIHRoZSB1c2VyIGdpdmVuIGJ1ZmZlciBzaXplIGZvciB0aGUgaGV4MzJfYXJnKCksIG51 bV9hcmcoKSBhbmQKc3Rybl9sZW4oKSBjYWxscyAob3RoZXJ3aXNlIHRoZXkgd2lsbCBhY2Nlc3Mg bWVtb3J5IG91dHNpZGUgb2YgdGhlIHVzZXIKZ2l2ZW4gYnVmZmVyKS4KCkluIGFsbCB0aHJlZSBm dW5jdGlvbnMgZXJyb3Igb3V0IGluIGNhc2Ugbm8gY2hhcmFjdGVycyBhIGF2YWlsYWJsZQoobWF4 bGVuID0gMCksIGluIG51bV9hcmcoKSBhZGRpdGlvbmFsIGVycm9yIG91dCBpbiBjYXNlIG5vIHZh bGlkCmNoYXJhY3RlciBpcyBwYXJzZWQuCgpBZGRpdGlvbmFsIHJlbW92ZSBzb21lIHN1cGVyZmx1 b3VzIHZhcmlhYmxlIGluaXRpYWxpemluZyBhbmQgYWxpZ24gc29tZQp2YXJpYWJsZSBkZWNsYXJh dGlvbnMgdG8gdGhlIG1vc3QgY29tbW9uIHBhdHRlcm4uCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBT ZWlkZXJlciA8cHMucmVwb3J0QGdteC5uZXQ+Ci0tLQogbmV0L2NvcmUvcGt0Z2VuLmMgfCAxOTYg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEyOCBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvY29yZS9wa3RnZW4uYyBiL25ldC9jb3JlL3BrdGdlbi5jCmluZGV4IDk1MzZmOWM0ZDllZi4u NWY1NGEwNTZmYTdjIDEwMDY0NAotLS0gYS9uZXQvY29yZS9wa3RnZW4uYworKysgYi9uZXQvY29y ZS9wa3RnZW4uYwpAQCAtNzUwLDYgKzc1MCw5IEBAIHN0YXRpYyBpbnQgaGV4MzJfYXJnKGNvbnN0 IGNoYXIgX191c2VyICp1c2VyX2J1ZmZlciwgdW5zaWduZWQgbG9uZyBtYXhsZW4sCiAJaW50IGkg PSAwOwogCSpudW0gPSAwOwogCisJaWYgKCFtYXhsZW4pCisJCXJldHVybiAtRUlOVkFMOworCiAJ Zm9yICg7IGkgPCBtYXhsZW47IGkrKykgewogCQlpbnQgdmFsdWU7CiAJCWNoYXIgYzsKQEAgLTc5 Niw2ICs3OTksOSBAQCBzdGF0aWMgbG9uZyBudW1fYXJnKGNvbnN0IGNoYXIgX191c2VyICp1c2Vy X2J1ZmZlciwgdW5zaWduZWQgbG9uZyBtYXhsZW4sCiAJaW50IGk7CiAJKm51bSA9IDA7CiAKKwlp ZiAoIW1heGxlbikKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlmb3IgKGkgPSAwOyBpIDwgbWF4bGVu OyBpKyspIHsKIAkJY2hhciBjOwogCQlpZiAoZ2V0X3VzZXIoYywgJnVzZXJfYnVmZmVyW2ldKSkK QEAgLTgwMyw2ICs4MDksOSBAQCBzdGF0aWMgbG9uZyBudW1fYXJnKGNvbnN0IGNoYXIgX191c2Vy ICp1c2VyX2J1ZmZlciwgdW5zaWduZWQgbG9uZyBtYXhsZW4sCiAJCWlmICgoYyA+PSAnMCcpICYm IChjIDw9ICc5JykpIHsKIAkJCSpudW0gKj0gMTA7CiAJCQkqbnVtICs9IGMgLSAnMCc7CisJCX0g ZWxzZSBpZiAoaSA9PSAwKSB7CisJCQkvLyBubyB2YWxpZCBjaGFyYWN0ZXIgcGFyc2VkLCBlcnJv ciBvdXQKKwkJCXJldHVybiAtRUlOVkFMOwogCQl9IGVsc2UKIAkJCWJyZWFrOwogCX0KQEAgLTgx Myw2ICs4MjIsOSBAQCBzdGF0aWMgaW50IHN0cm5fbGVuKGNvbnN0IGNoYXIgX191c2VyICogdXNl cl9idWZmZXIsIHVuc2lnbmVkIGludCBtYXhsZW4pCiB7CiAJaW50IGk7CiAKKwlpZiAoIW1heGxl bikKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlmb3IgKGkgPSAwOyBpIDwgbWF4bGVuOyBpKyspIHsK IAkJY2hhciBjOwogCQlpZiAoZ2V0X3VzZXIoYywgJnVzZXJfYnVmZmVyW2ldKSkKQEAgLTgzOSwx MSArODUxLDEwIEBAIHN0YXRpYyBpbnQgc3Rybl9sZW4oY29uc3QgY2hhciBfX3VzZXIgKiB1c2Vy X2J1ZmZlciwgdW5zaWduZWQgaW50IG1heGxlbikKICAqICJzaXplMSx3ZWlnaHRfMSBzaXplMix3 ZWlnaHRfMiAuLi4gc2l6ZV9uLHdlaWdodF9uIiBmb3IgZXhhbXBsZS4KICAqLwogc3RhdGljIHNz aXplX3QgZ2V0X2ltaXhfZW50cmllcyhjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLAorCQkJCXVu c2lnbmVkIGludCBtYXhsZW4sCiAJCQkJc3RydWN0IHBrdGdlbl9kZXYgKnBrdF9kZXYpCiB7Ci0J Y29uc3QgaW50IG1heF9kaWdpdHMgPSAxMDsKLQlpbnQgaSA9IDA7Ci0JbG9uZyBsZW47CisJaW50 IGkgPSAwLCBtYXgsIGxlbjsKIAljaGFyIGM7CiAKIAlwa3RfZGV2LT5uX2ltaXhfZW50cmllcyA9 IDA7CkBAIC04NTUsNyArODY2LDggQEAgc3RhdGljIHNzaXplX3QgZ2V0X2ltaXhfZW50cmllcyhj b25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLAogCQlpZiAocGt0X2Rldi0+bl9pbWl4X2VudHJpZXMg Pj0gTUFYX0lNSVhfRU5UUklFUykKIAkJCXJldHVybiAtRTJCSUc7CiAKLQkJbGVuID0gbnVtX2Fy ZygmYnVmZmVyW2ldLCBtYXhfZGlnaXRzLCAmc2l6ZSk7CisJCW1heCA9IG1pbigxMCwgbWF4bGVu IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJmJ1ZmZlcltpXSwgbWF4LCAmc2l6ZSk7CiAJCWlmIChs ZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIAkJaSArPSBsZW47CkBAIC04NjksNyArODgxLDggQEAg c3RhdGljIHNzaXplX3QgZ2V0X2ltaXhfZW50cmllcyhjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVy LAogCQlpZiAoc2l6ZSA8IDE0ICsgMjAgKyA4KQogCQkJc2l6ZSA9IDE0ICsgMjAgKyA4OwogCi0J CWxlbiA9IG51bV9hcmcoJmJ1ZmZlcltpXSwgbWF4X2RpZ2l0cywgJndlaWdodCk7CisJCW1heCA9 IG1pbigxMCwgbWF4bGVuIC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJmJ1ZmZlcltpXSwgbWF4LCAm d2VpZ2h0KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCQlpZiAod2VpZ2h0IDw9 IDApCkBAIC04ODksMTggKzkwMiwxOSBAQCBzdGF0aWMgc3NpemVfdCBnZXRfaW1peF9lbnRyaWVz KGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCiAJcmV0dXJuIGk7CiB9CiAKLXN0YXRpYyBzc2l6 ZV90IGdldF9sYWJlbHMoY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwgc3RydWN0IHBrdGdlbl9k ZXYgKnBrdF9kZXYpCitzdGF0aWMgc3NpemVfdCBnZXRfbGFiZWxzKGNvbnN0IGNoYXIgX191c2Vy ICpidWZmZXIsIGludCBtYXhsZW4sIHN0cnVjdCBwa3RnZW5fZGV2ICpwa3RfZGV2KQogewogCXVu c2lnbmVkIGludCBuID0gMDsKIAljaGFyIGM7Ci0Jc3NpemVfdCBpID0gMDsKLQlpbnQgbGVuOwor CWludCBpID0gMCwgbWF4LCBsZW47CiAKIAlwa3RfZGV2LT5ucl9sYWJlbHMgPSAwOwogCWRvIHsK IAkJX191MzIgdG1wOwotCQlsZW4gPSBoZXgzMl9hcmcoJmJ1ZmZlcltpXSwgOCwgJnRtcCk7Ci0J CWlmIChsZW4gPD0gMCkKKworCQltYXggPSBtaW4oOCwgbWF4bGVuIC0gaSk7CisJCWxlbiA9IGhl eDMyX2FyZygmYnVmZmVyW2ldLCBtYXgsICZ0bXApOworCQlpZiAobGVuIDwgMCkKIAkJCXJldHVy biBsZW47CiAJCXBrdF9kZXYtPmxhYmVsc1tuXSA9IGh0b25sKHRtcCk7CiAJCWlmIChwa3RfZGV2 LT5sYWJlbHNbbl0gJiBNUExTX1NUQUNLX0JPVFRPTSkKQEAgLTk1Nyw3ICs5NzEsNiBAQCBzdGF0 aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJY2hhciBuYW1l WzE2XSwgdmFsc3RyWzMyXTsKIAl1bnNpZ25lZCBsb25nIHZhbHVlID0gMDsKIAljaGFyICpwZ19y ZXN1bHQgPSBOVUxMOwotCWludCB0bXAgPSAwOwogCWNoYXIgYnVmWzEyOF07CiAKIAlwZ19yZXN1 bHQgPSAmKHBrdF9kZXYtPnJlc3VsdFswXSk7CkBAIC05NjcsMTcgKzk4MCwxNiBAQCBzdGF0aWMg c3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiAtRUlO VkFMOwogCX0KIAotCW1heCA9IGNvdW50OwotCXRtcCA9IGNvdW50X3RyYWlsX2NoYXJzKHVzZXJf YnVmZmVyLCBtYXgpOwotCWlmICh0bXAgPCAwKSB7CisJbGVuID0gY291bnRfdHJhaWxfY2hhcnMo dXNlcl9idWZmZXIsIGNvdW50KTsKKwlpZiAobGVuIDwgMCkgewogCQlwcl93YXJuKCJpbGxlZ2Fs IGZvcm1hdFxuIik7Ci0JCXJldHVybiB0bXA7CisJCXJldHVybiBsZW47CiAJfQotCWkgPSB0bXA7 CisJaSA9IGxlbjsKIAogCS8qIFJlYWQgdmFyaWFibGUgbmFtZSAqLwotCi0JbGVuID0gc3Rybl9s ZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YobmFtZSkgLSAxKTsKKwltYXggPSBtaW4oc2l6ZW9m KG5hbWUpIC0gMSwgY291bnQgLSBpKTsKKwlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0s IG1heCk7CiAJaWYgKGxlbiA8IDApCiAJCXJldHVybiBsZW47CiAKQEAgLTEwMDUsNyArMTAxNyw4 IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9 CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAibWluX3BrdF9zaXplIikpIHsKLQkJbGVuID0gbnVtX2Fy ZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0g aSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlm IChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTAyMiw3ICsxMDM1LDggQEAgc3RhdGlj IHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICgh c3RyY21wKG5hbWUsICJtYXhfcGt0X3NpemUiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1 ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVu ID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDAp CiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMDQxLDcgKzEwNTUsOCBAQCBzdGF0aWMgc3NpemVfdCBw a3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJLyogU2hvcnRjdXQgZm9yIG1pbiA9 IG1heCAqLwogCiAJaWYgKCFzdHJjbXAobmFtZSwgInBrdF9zaXplIikpIHsKLQkJbGVuID0gbnVt X2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50 IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJ CWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTA2MSw3ICsxMDc2LDggQEAgc3Rh dGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlpZiAocGt0 X2Rldi0+Y2xvbmVfc2tiID4gMCkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCWxlbiA9IGdldF9p bWl4X2VudHJpZXMoJnVzZXJfYnVmZmVyW2ldLCBwa3RfZGV2KTsKKwkJbWF4ID0gY291bnQgLSBp OworCQlsZW4gPSBnZXRfaW1peF9lbnRyaWVzKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCBwa3RfZGV2 KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMDcyLDcgKzEwODgsOCBA QCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQog CiAJaWYgKCFzdHJjbXAobmFtZSwgImRlYnVnIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9i dWZmZXJbaV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxl biA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAw KQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTA4Myw3ICsxMTAwLDggQEAgc3RhdGljIHNzaXplX3Qg cGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5h bWUsICJmcmFncyIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZh bHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2Vy X2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47 CiAKQEAgLTEwOTMsNyArMTExMSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1l LCAiZGVsYXkiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1 ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9i dWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwog CkBAIC0xMTA4LDcgKzExMjcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3Ry dWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwg InJhdGUiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7 CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZm ZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBA IC0xMTIzLDcgKzExNDMsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInJh dGVwIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEwLCAmdmFsdWUpOwor CQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVy W2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAt MTEzOCw3ICsxMTU5LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBm aWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJ1ZHBf c3JjX21pbiIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVl KTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1 ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAK QEAgLTExNTEsNyArMTE3Myw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1 Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAi dWRwX2RzdF9taW4iKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2 YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNl cl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVu OwogCkBAIC0xMTY0LDcgKzExODcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUo c3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFt ZSwgInVkcF9zcmNfbWF4IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDEw LCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmco JnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJu IGxlbjsKIApAQCAtMTE3Nyw3ICsxMjAxLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dy aXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21w KG5hbWUsICJ1ZHBfZHN0X21heCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ld LCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1f YXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJl dHVybiBsZW47CiAKQEAgLTExOTAsNyArMTIxNSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9p Zl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0 cmNtcChuYW1lLCAiY2xvbmVfc2tiIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJb aV0sIDEwLCAmdmFsdWUpOworCQltYXggPSBtaW4oMTAsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51 bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJ cmV0dXJuIGxlbjsKIAkJLyogY2xvbmVfc2tiIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5ldGlmX3Jl Y2VpdmUgeG1pdF9tb2RlIGFuZApAQCAtMTIxMSw3ICsxMjM3LDggQEAgc3RhdGljIHNzaXplX3Qg cGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQog CWlmICghc3RyY21wKG5hbWUsICJjb3VudCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVm ZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4g PSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkK IAkJCXJldHVybiBsZW47CiAKQEAgLTEyMjIsNyArMTI0OSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBr dGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlp ZiAoIXN0cmNtcChuYW1lLCAic3JjX21hY19jb3VudCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVz ZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOwor CQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVu IDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTEyMzYsNyArMTI2NCw4IEBAIHN0YXRpYyBzc2l6 ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50Owog CX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiZHN0X21hY19jb3VudCIpKSB7Ci0JCWxlbiA9IG51bV9h cmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDEwLCBjb3VudCAt IGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlp ZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTEyNTAsNyArMTI3OSw4IEBAIHN0YXRp YyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNv dW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiYnVyc3QiKSkgewotCQlsZW4gPSBudW1fYXJn KCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBp KTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYg KGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMjY5LDcgKzEyOTksOCBAQCBzdGF0aWMg c3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3Vu dDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgIm5vZGUiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1 c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsK KwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxl biA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMjkwLDExICsxMzIxLDEyIEBAIHN0YXRpYyBz c2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlpZiAoIXN0cmNtcChu YW1lLCAieG1pdF9tb2RlIikpIHsKIAkJY2hhciBmWzMyXTsKIAotCQltZW1zZXQoZiwgMCwgMzIp OwotCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZihmKSAtIDEpOworCQlt YXggPSBtaW4oc2l6ZW9mKGYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVz ZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKKwkJ bWVtc2V0KGYsIDAsIHNpemVvZihmKSk7CiAJCWlmIChjb3B5X2Zyb21fdXNlcihmLCAmdXNlcl9i dWZmZXJbaV0sIGxlbikpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJaSArPSBsZW47CkBAIC0xMzMw LDExICsxMzYyLDEyIEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmls ZSAqZmlsZSwKIAkJY2hhciBmWzMyXTsKIAkJY2hhciAqZW5kOwogCi0JCW1lbXNldChmLCAwLCAz Mik7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGYpIC0gMSk7CisJ CW1heCA9IG1pbihzaXplb2YoZikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBzdHJuX2xlbigm dXNlcl9idWZmZXJbaV0sIG1heCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIAor CQltZW1zZXQoZiwgMCwgMzIpOwogCQlpZiAoY29weV9mcm9tX3VzZXIoZiwgJnVzZXJfYnVmZmVy W2ldLCBsZW4pKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCWkgKz0gbGVuOwpAQCAtMTM3OSw3ICsx NDEyLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21wKG5hbWUsICJkc3RfbWluIikgfHwg IXN0cmNtcChuYW1lLCAiZHN0IikpIHsKLQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ld LCBzaXplb2YocGt0X2Rldi0+ZHN0X21pbikgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZihwa3Rf ZGV2LT5kc3RfbWluKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1 ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xMzk5 LDcgKzE0MzMsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUg KmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRzdF9tYXgi KSkgewotCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZihwa3RfZGV2LT5k c3RfbWF4KSAtIDEpOworCQltYXggPSBtaW4oc2l6ZW9mKHBrdF9kZXYtPmRzdF9tYXgpIC0gMSwg Y291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlp ZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE0MTksNyArMTQ1NCw4IEBAIHN0YXRp YyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNv dW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiZHN0NiIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVu KCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKGJ1ZikgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZihi dWYpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBt YXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE0NDIsNyArMTQ3OCw4 IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJ cmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiZHN0Nl9taW4iKSkgewotCQls ZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZihidWYpIC0gMSk7CisJCW1heCA9 IG1pbihzaXplb2YoYnVmKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1c2Vy X2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0x NDY0LDcgKzE1MDEsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZp bGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgImRzdDZf bWF4IikpIHsKLQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXplb2YoYnVmKSAt IDEpOworCQltYXggPSBtaW4oc2l6ZW9mKGJ1ZikgLSAxLCBjb3VudCAtIGkpOworCQlsZW4gPSBz dHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIG1heCk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJu IGxlbjsKIApAQCAtMTQ4NSw3ICsxNTIzLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dy aXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlmICghc3RyY21w KG5hbWUsICJzcmM2IikpIHsKLQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBzaXpl b2YoYnVmKSAtIDEpOworCQltYXggPSBtaW4oc2l6ZW9mKGJ1ZikgLSAxLCBjb3VudCAtIGkpOwor CQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIG1heCk7CiAJCWlmIChsZW4gPCAwKQog CQkJcmV0dXJuIGxlbjsKIApAQCAtMTUwOCw3ICsxNTQ3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0 Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQlyZXR1cm4gY291bnQ7CiAJfQogCWlm ICghc3RyY21wKG5hbWUsICJzcmNfbWluIikpIHsKLQkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVm ZmVyW2ldLCBzaXplb2YocGt0X2Rldi0+c3JjX21pbikgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVv Zihwa3RfZGV2LT5zcmNfbWluKSAtIDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IHN0cm5fbGVuKCZ1 c2VyX2J1ZmZlcltpXSwgbWF4KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBA IC0xNTI4LDcgKzE1NjgsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsCiAJCXJldHVybiBjb3VudDsKIAl9CiAJaWYgKCFzdHJjbXAobmFtZSwgInNy Y19tYXgiKSkgewotCQlsZW4gPSBzdHJuX2xlbigmdXNlcl9idWZmZXJbaV0sIHNpemVvZihwa3Rf ZGV2LT5zcmNfbWF4KSAtIDEpOworCQltYXggPSBtaW4oc2l6ZW9mKHBrdF9kZXYtPnNyY19tYXgp IC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgp OwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE1NDgsNyArMTU4OSw4IEBA IHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJcmV0 dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAiZHN0X21hYyIpKSB7Ci0JCWxlbiA9 IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKHZhbHN0cikgLSAxKTsKKwkJbWF4ID0g bWluKHNpemVvZih2YWxzdHIpIC0gMSwgY291bnQgLSBpKTsKKwkJbGVuID0gc3Rybl9sZW4oJnVz ZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAg LTE1NjUsNyArMTYwNyw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwKIAkJcmV0dXJuIGNvdW50OwogCX0KIAlpZiAoIXN0cmNtcChuYW1lLCAic3Jj X21hYyIpKSB7Ci0JCWxlbiA9IHN0cm5fbGVuKCZ1c2VyX2J1ZmZlcltpXSwgc2l6ZW9mKHZhbHN0 cikgLSAxKTsKKwkJbWF4ID0gbWluKHNpemVvZih2YWxzdHIpIC0gMSwgY291bnQgLSBpKTsKKwkJ bGVuID0gc3Rybl9sZW4oJnVzZXJfYnVmZmVyW2ldLCBtYXgpOwogCQlpZiAobGVuIDwgMCkKIAkJ CXJldHVybiBsZW47CiAKQEAgLTE1ODksNyArMTYzMiw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdl bl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAi Zmxvd3MiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMTAsICZ2YWx1ZSk7 CisJCW1heCA9IG1pbigxMCwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZm ZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBA IC0xNjAzLDcgKzE2NDcsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsCiAJfQogI2lmZGVmIENPTkZJR19YRlJNCiAJaWYgKCFzdHJjbXAobmFtZSwg InNwaSIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsK KwkJbWF4ID0gbWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZl cltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAg LTE2MTQsNyArMTY1OSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwKIAl9CiAjZW5kaWYKIAlpZiAoIXN0cmNtcChuYW1lLCAiZmxvd2xlbiIpKSB7 Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxMCwgJnZhbHVlKTsKKwkJbWF4ID0g bWluKDEwLCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4 LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE2MjUsNyAr MTY3MSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmls ZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1lLCAicXVldWVfbWFwX21pbiIpKSB7Ci0JCWxlbiA9 IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCA1LCAmdmFsdWUpOworCQltYXggPSBtaW4oNSwgY291 bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsK IAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNjM2LDcgKzE2ODMsOCBAQCBz dGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJ aWYgKCFzdHJjbXAobmFtZSwgInF1ZXVlX21hcF9tYXgiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1 c2VyX2J1ZmZlcltpXSwgNSwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDUsIGNvdW50IC0gaSk7CisJ CWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4g PCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAtMTY0OSw3ICsxNjk3LDggQEAgc3RhdGljIHNzaXpl X3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCWlmICghc3RyY21wKG5hbWUs ICJtcGxzIikpIHsKIAkJdW5zaWduZWQgaW50IG4sIGNudDsKIAotCQlsZW4gPSBnZXRfbGFiZWxz KCZ1c2VyX2J1ZmZlcltpXSwgcGt0X2Rldik7CisJCW1heCA9IGNvdW50IC0gaTsKKwkJbGVuID0g Z2V0X2xhYmVscygmdXNlcl9idWZmZXJbaV0sIG1heCwgcGt0X2Rldik7CiAJCWlmIChsZW4gPCAw KQogCQkJcmV0dXJuIGxlbjsKIAkJaSArPSBsZW47CkBAIC0xNjcwLDcgKzE3MTksOCBAQCBzdGF0 aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYg KCFzdHJjbXAobmFtZSwgInZsYW5faWQiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZl cltpXSwgNCwgJnZhbHVlKTsKKwkJbWF4ID0gbWluKDQsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51 bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJ cmV0dXJuIGxlbjsKIApAQCAtMTY5Nyw3ICsxNzQ3LDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2Vu X2lmX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJ2 bGFuX3AiKSkgewotCQlsZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgMSwgJnZhbHVlKTsK KwkJbWF4ID0gbWluKDEsIGNvdW50IC0gaSk7CisJCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVy W2ldLCBtYXgsICZ2YWx1ZSk7CiAJCWlmIChsZW4gPCAwKQogCQkJcmV0dXJuIGxlbjsKIApAQCAt MTcxMiw3ICsxNzYzLDggQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBm aWxlICpmaWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJ2bGFuX2NmaSIpKSB7Ci0JCWxl biA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxLCAmdmFsdWUpOworCQltYXggPSBtaW4oMSwg Y291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1heCwgJnZhbHVl KTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNzI3LDcgKzE3NzksOCBA QCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQog CiAJaWYgKCFzdHJjbXAobmFtZSwgInN2bGFuX2lkIikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNl cl9idWZmZXJbaV0sIDQsICZ2YWx1ZSk7CisJCW1heCA9IG1pbig0LCBjb3VudCAtIGkpOworCQls ZW4gPSBudW1fYXJnKCZ1c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwg MCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE3NTQsNyArMTgwNyw4IEBAIHN0YXRpYyBzc2l6ZV90 IHBrdGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChu YW1lLCAic3ZsYW5fcCIpKSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxLCAm dmFsdWUpOworCQltYXggPSBtaW4oMSwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNl cl9idWZmZXJbaV0sIG1heCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVu OwogCkBAIC0xNzY5LDcgKzE4MjMsOCBAQCBzdGF0aWMgc3NpemVfdCBwa3RnZW5faWZfd3JpdGUo c3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFzdHJjbXAobmFtZSwgInN2bGFuX2NmaSIp KSB7Ci0JCWxlbiA9IG51bV9hcmcoJnVzZXJfYnVmZmVyW2ldLCAxLCAmdmFsdWUpOworCQltYXgg PSBtaW4oMSwgY291bnQgLSBpKTsKKwkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIG1h eCwgJnZhbHVlKTsKIAkJaWYgKGxlbiA8IDApCiAJCQlyZXR1cm4gbGVuOwogCkBAIC0xNzg0LDgg KzE4MzksMTAgQEAgc3RhdGljIHNzaXplX3QgcGt0Z2VuX2lmX3dyaXRlKHN0cnVjdCBmaWxlICpm aWxlLAogCX0KIAogCWlmICghc3RyY21wKG5hbWUsICJ0b3MiKSkgewotCQlfX3UzMiB0bXBfdmFs dWUgPSAwOwotCQlsZW4gPSBoZXgzMl9hcmcoJnVzZXJfYnVmZmVyW2ldLCAyLCAmdG1wX3ZhbHVl KTsKKwkJX191MzIgdG1wX3ZhbHVlOworCisJCW1heCA9IG1pbigyLCBjb3VudCAtIGkpOworCQls ZW4gPSBoZXgzMl9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ0bXBfdmFsdWUpOwogCQlpZiAo bGVuIDwgMCkKIAkJCXJldHVybiBsZW47CiAKQEAgLTE4MDAsOCArMTg1NywxMCBAQCBzdGF0aWMg c3NpemVfdCBwa3RnZW5faWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJfQogCiAJaWYgKCFz dHJjbXAobmFtZSwgInRyYWZmaWNfY2xhc3MiKSkgewotCQlfX3UzMiB0bXBfdmFsdWUgPSAwOwot CQlsZW4gPSBoZXgzMl9hcmcoJnVzZXJfYnVmZmVyW2ldLCAyLCAmdG1wX3ZhbHVlKTsKKwkJX191 MzIgdG1wX3ZhbHVlOworCisJCW1heCA9IG1pbigyLCBjb3VudCAtIGkpOworCQlsZW4gPSBoZXgz Ml9hcmcoJnVzZXJfYnVmZmVyW2ldLCBtYXgsICZ0bXBfdmFsdWUpOwogCQlpZiAobGVuIDwgMCkK IAkJCXJldHVybiBsZW47CiAKQEAgLTE4MTYsNyArMTg3NSw4IEBAIHN0YXRpYyBzc2l6ZV90IHBr dGdlbl9pZl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAl9CiAKIAlpZiAoIXN0cmNtcChuYW1l LCAic2tiX3ByaW9yaXR5IikpIHsKLQkJbGVuID0gbnVtX2FyZygmdXNlcl9idWZmZXJbaV0sIDks ICZ2YWx1ZSk7CisJCW1heCA9IG1pbig5LCBjb3VudCAtIGkpOworCQlsZW4gPSBudW1fYXJnKCZ1 c2VyX2J1ZmZlcltpXSwgbWF4LCAmdmFsdWUpOwogCQlpZiAobGVuIDwgMCkKIAkJCXJldHVybiBs ZW47CiAKLS0gCjIuNDguMAoK