From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brendan Higgins Subject: [PATCH v12 17/18] kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec() Date: Mon, 12 Aug 2019 11:24:20 -0700 Message-ID: <20190812182421.141150-18-brendanhiggins@google.com> References: <20190812182421.141150-1-brendanhiggins@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190812182421.141150-1-brendanhiggins@google.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: frowand.list@gmail.com, gregkh@linuxfoundation.org, jpoimboe@redhat.com, keescook@google.com, kieran.bingham@ideasonboard.com, mcgrof@kernel.org, peterz@infradead.org, robh@kernel.org, sboyd@kernel.org, shuah@kernel.org, tytso@mit.edu, yamada.masahiro@socionext.com Cc: pmladek@suse.com, linux-doc@vger.kernel.org, amir73il@gmail.com, Brendan Higgins , dri-devel@lists.freedesktop.org, Alexander.Levin@microsoft.com, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, khilman@baylibre.com, knut.omang@oracle.com, wfg@linux.intel.com, joel@jms.id.au, rientjes@google.com, Iurii Zaikin , jdike@addtoit.com, dan.carpenter@oracle.com, devicetree@vger.kernel.org, linux-kbuild@vger.kernel.org, Tim.Bird@sony.com, linux-um@lists.infradead.org, rostedt@goodmis.org, julia.lawall@lip6.fr, kunit-dev@googlegroups.com, richard@nod.at, rdunlap@infradead.org, linux-kernel@vger.kernel.org, mpe@ellerman.id.au, linux-fsdevel@vger.kernel.org, logang@deltatee.com List-Id: devicetree@vger.kernel.org RnJvbTogSXVyaWkgWmFpa2luIDx5emFpa2luQGdvb2dsZS5jb20+CgpLVW5pdCB0ZXN0cyBmb3Ig aW5pdGlhbGl6ZWQgZGF0YSBiZWhhdmlvciBvZiBwcm9jX2RvaW50dmVjIHRoYXQgaXMKZXhwbGlj aXRseSBjaGVja2VkIGluIHRoZSBjb2RlLiBJbmNsdWRlcyBiYXNpYyBwYXJzaW5nIHRlc3RzIGlu Y2x1ZGluZwppbnQgbWluL21heCBvdmVyZmxvdy4KClNpZ25lZC1vZmYtYnk6IEl1cmlpIFphaWtp biA8eXphaWtpbkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBCcmVuZGFuIEhpZ2dpbnMgPGJy ZW5kYW5oaWdnaW5zQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBHcmVnIEtyb2FoLUhhcnRtYW4g PGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpSZXZpZXdlZC1ieTogTG9nYW4gR3VudGhvcnBl IDxsb2dhbmdAZGVsdGF0ZWUuY29tPgpBY2tlZC1ieTogTHVpcyBDaGFtYmVybGFpbiA8bWNncm9m QGtlcm5lbC5vcmc+Ci0tLQoga2VybmVsL01ha2VmaWxlICAgICAgfCAgIDIgKwoga2VybmVsL3N5 c2N0bC10ZXN0LmMgfCAzOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogbGliL0tjb25maWcuZGVidWcgICAgfCAgMTEgKysKIDMgZmlsZXMgY2hhbmdlZCwgNDA1 IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBrZXJuZWwvc3lzY3RsLXRlc3QuYwoK ZGlmZiAtLWdpdCBhL2tlcm5lbC9NYWtlZmlsZSBiL2tlcm5lbC9NYWtlZmlsZQppbmRleCBlZjBk OTVhMTkwYjQxLi42M2U5ZWE2MTIyYzJjIDEwMDY0NAotLS0gYS9rZXJuZWwvTWFrZWZpbGUKKysr IGIva2VybmVsL01ha2VmaWxlCkBAIC0xMTMsNiArMTEzLDggQEAgb2JqLSQoQ09ORklHX1RPUlRV UkVfVEVTVCkgKz0gdG9ydHVyZS5vCiBvYmotJChDT05GSUdfSEFTX0lPTUVNKSArPSBpb21lbS5v CiBvYmotJChDT05GSUdfUlNFUSkgKz0gcnNlcS5vCiAKK29iai0kKENPTkZJR19TWVNDVExfS1VO SVRfVEVTVCkgKz0gc3lzY3RsLXRlc3QubworCiBvYmotJChDT05GSUdfR0NDX1BMVUdJTl9TVEFD S0xFQUspICs9IHN0YWNrbGVhay5vCiBLQVNBTl9TQU5JVElaRV9zdGFja2xlYWsubyA6PSBuCiBL Q09WX0lOU1RSVU1FTlRfc3RhY2tsZWFrLm8gOj0gbgpkaWZmIC0tZ2l0IGEva2VybmVsL3N5c2N0 bC10ZXN0LmMgYi9rZXJuZWwvc3lzY3RsLXRlc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi4yYTYzMjQxYTg0NTNiCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVs L3N5c2N0bC10ZXN0LmMKQEAgLTAsMCArMSwzOTIgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wCisvKgorICogS1VuaXQgdGVzdCBvZiBwcm9jIHN5c2N0bC4KKyAqLworCisj aW5jbHVkZSA8a3VuaXQvdGVzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgorCisjZGVm aW5lIEtVTklUX1BST0NfUkVBRCAwCisjZGVmaW5lIEtVTklUX1BST0NfV1JJVEUgMQorCitzdGF0 aWMgaW50IGlfemVybzsKK3N0YXRpYyBpbnQgaV9vbmVfaHVuZHJlZCA9IDEwMDsKKworLyoKKyAq IFRlc3QgdGhhdCBwcm9jX2RvaW50dmVjIHdpbGwgbm90IHRyeSB0byB1c2UgYSBOVUxMIC5kYXRh IGZpZWxkIGV2ZW4gd2hlbiB0aGUKKyAqIGxlbmd0aCBpcyBub24temVyby4KKyAqLworc3RhdGlj IHZvaWQgc3lzY3RsX3Rlc3RfYXBpX2RvaW50dmVjX251bGxfdGJsX2RhdGEoc3RydWN0IGt1bml0 ICp0ZXN0KQoreworCXN0cnVjdCBjdGxfdGFibGUgbnVsbF9kYXRhX3RhYmxlID0geworCQkucHJv Y25hbWUgPSAiZm9vIiwKKwkJLyoKKwkJICogSGVyZSB3ZSBhcmUgdGVzdGluZyB0aGF0IHByb2Nf ZG9pbnR2ZWMgYmVoYXZlcyBjb3JyZWN0bHkgd2hlbgorCQkgKiB3ZSBnaXZlIGl0IGEgTlVMTCAu ZGF0YSBmaWVsZC4gTm9ybWFsbHkgdGhpcyB3b3VsZCBwb2ludCB0byBhCisJCSAqIHBpZWNlIG9m IG1lbW9yeSB3aGVyZSB0aGUgdmFsdWUgd291bGQgYmUgc3RvcmVkLgorCQkgKi8KKwkJLmRhdGEJ CT0gTlVMTCwKKwkJLm1heGxlbgkJPSBzaXplb2YoaW50KSwKKwkJLm1vZGUJCT0gMDY0NCwKKwkJ LnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMsCisJCS5leHRyYTEJCT0gJmlfemVybywKKwkJ LmV4dHJhMiAgICAgICAgID0gJmlfb25lX2h1bmRyZWQsCisJfTsKKwkvKgorCSAqIHByb2NfZG9p bnR2ZWMgZXhwZWN0cyBhIGJ1ZmZlciBpbiB1c2VyIHNwYWNlLCBzbyB3ZSBhbGxvY2F0ZSBvbmUu IFdlCisJICogYWxzbyBuZWVkIHRvIGNhc3QgaXQgdG8gX191c2VyIHNvIHNwYXJzZSBkb2Vzbid0 IGdldCBtYWQuCisJICovCisJdm9pZCBfX3VzZXIgKmJ1ZmZlciA9ICh2b2lkIF9fdXNlciAqKWt1 bml0X2t6YWxsb2ModGVzdCwgc2l6ZW9mKGludCksCisJCQkJCQkJICAgR0ZQX1VTRVIpOworCXNp emVfdCBsZW47CisJbG9mZl90IHBvczsKKworCS8qCisJICogV2UgZG9uJ3QgY2FyZSB3aGF0IHRo ZSBzdGFydGluZyBsZW5ndGggaXMgc2luY2UgcHJvY19kb2ludHZlYyBzaG91bGQKKwkgKiBub3Qg dHJ5IHRvIHJlYWQgYmVjYXVzZSAuZGF0YSBpcyBOVUxMLgorCSAqLworCWxlbiA9IDEyMzQ7CisJ S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHByb2NfZG9pbnR2ZWMoJm51bGxfZGF0YV90YWJsZSwK KwkJCQkJICAgICAgIEtVTklUX1BST0NfUkVBRCwgYnVmZmVyLCAmbGVuLAorCQkJCQkgICAgICAg JnBvcykpOworCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCAoc2l6ZV90KTAsIGxlbik7CisKKwkvKgor CSAqIFNlZSBhYm92ZS4KKwkgKi8KKwlsZW4gPSAxMjM0OworCUtVTklUX0VYUEVDVF9FUSh0ZXN0 LCAwLCBwcm9jX2RvaW50dmVjKCZudWxsX2RhdGFfdGFibGUsCisJCQkJCSAgICAgICBLVU5JVF9Q Uk9DX1dSSVRFLCBidWZmZXIsICZsZW4sCisJCQkJCSAgICAgICAmcG9zKSk7CisJS1VOSVRfRVhQ RUNUX0VRKHRlc3QsIChzaXplX3QpMCwgbGVuKTsKK30KKworLyoKKyAqIFNpbWlsYXIgdG8gdGhl IHByZXZpb3VzIHRlc3QsIHdlIGNyZWF0ZSBhIHN0cnVjdCBjdHJsX3RhYmxlIHRoYXQgaGFzIGEg LmRhdGEKKyAqIGZpZWxkIHRoYXQgcHJvY19kb2ludHZlYyBjYW5ub3QgZG8gYW55dGhpbmcgd2l0 aDsgaG93ZXZlciwgdGhpcyB0aW1lIGl0IGlzCisgKiBiZWNhdXNlIHdlIHRlbGwgcHJvY19kb2lu dHZlYyB0aGF0IHRoZSBzaXplIGlzIDAuCisgKi8KK3N0YXRpYyB2b2lkIHN5c2N0bF90ZXN0X2Fw aV9kb2ludHZlY190YWJsZV9tYXhsZW5fdW5zZXQoc3RydWN0IGt1bml0ICp0ZXN0KQoreworCWlu dCBkYXRhID0gMDsKKwlzdHJ1Y3QgY3RsX3RhYmxlIGRhdGFfbWF4bGVuX3Vuc2V0X3RhYmxlID0g eworCQkucHJvY25hbWUgPSAiZm9vIiwKKwkJLmRhdGEJCT0gJmRhdGEsCisJCS8qCisJCSAqIFNv IC5kYXRhIGlzIG5vIGxvbmdlciBOVUxMLCBidXQgd2UgdGVsbCBwcm9jX2RvaW50dmVjIGl0cwor CQkgKiBsZW5ndGggaXMgMCwgc28gaXQgc3RpbGwgc2hvdWxkbid0IHRyeSB0byB1c2UgaXQuCisJ CSAqLworCQkubWF4bGVuCQk9IDAsCisJCS5tb2RlCQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJ PSBwcm9jX2RvaW50dmVjLAorCQkuZXh0cmExCQk9ICZpX3plcm8sCisJCS5leHRyYTIgICAgICAg ICA9ICZpX29uZV9odW5kcmVkLAorCX07CisJdm9pZCBfX3VzZXIgKmJ1ZmZlciA9ICh2b2lkIF9f dXNlciAqKWt1bml0X2t6YWxsb2ModGVzdCwgc2l6ZW9mKGludCksCisJCQkJCQkJICAgR0ZQX1VT RVIpOworCXNpemVfdCBsZW47CisJbG9mZl90IHBvczsKKworCS8qCisJICogQXMgYmVmb3JlLCB3 ZSBkb24ndCBjYXJlIHdoYXQgYnVmZmVyIGxlbmd0aCBpcyBiZWNhdXNlIHByb2NfZG9pbnR2ZWMK KwkgKiBjYW5ub3QgZG8gYW55dGhpbmcgYmVjYXVzZSBpdHMgaW50ZXJuYWwgLmRhdGEgYnVmZmVy IGhhcyB6ZXJvIGxlbmd0aC4KKwkgKi8KKwlsZW4gPSAxMjM0OworCUtVTklUX0VYUEVDVF9FUSh0 ZXN0LCAwLCBwcm9jX2RvaW50dmVjKCZkYXRhX21heGxlbl91bnNldF90YWJsZSwKKwkJCQkJICAg ICAgIEtVTklUX1BST0NfUkVBRCwgYnVmZmVyLCAmbGVuLAorCQkJCQkgICAgICAgJnBvcykpOwor CUtVTklUX0VYUEVDVF9FUSh0ZXN0LCAoc2l6ZV90KTAsIGxlbik7CisKKwkvKgorCSAqIFNlZSBw cmV2aW91cyBjb21tZW50LgorCSAqLworCWxlbiA9IDEyMzQ7CisJS1VOSVRfRVhQRUNUX0VRKHRl c3QsIDAsIHByb2NfZG9pbnR2ZWMoJmRhdGFfbWF4bGVuX3Vuc2V0X3RhYmxlLAorCQkJCQkgICAg ICAgS1VOSVRfUFJPQ19XUklURSwgYnVmZmVyLCAmbGVuLAorCQkJCQkgICAgICAgJnBvcykpOwor CUtVTklUX0VYUEVDVF9FUSh0ZXN0LCAoc2l6ZV90KTAsIGxlbik7Cit9CisKKy8qCisgKiBIZXJl IHdlIHByb3ZpZGUgYSB2YWxpZCBzdHJ1Y3QgY3RsX3RhYmxlLCBidXQgd2UgdHJ5IHRvIHJlYWQg YW5kIHdyaXRlIGZyb20KKyAqIGl0IHVzaW5nIGEgYnVmZmVyIG9mIHplcm8gbGVuZ3RoLCBzbyBp dCBzaG91bGQgc3RpbGwgZmFpbCBpbiBhIHNpbWlsYXIgd2F5IGFzCisgKiBiZWZvcmUuCisgKi8K K3N0YXRpYyB2b2lkIHN5c2N0bF90ZXN0X2FwaV9kb2ludHZlY190YWJsZV9sZW5faXNfemVybyhz dHJ1Y3Qga3VuaXQgKnRlc3QpCit7CisJaW50IGRhdGEgPSAwOworCS8qIEdvb2QgdGFibGUuICov CisJc3RydWN0IGN0bF90YWJsZSB0YWJsZSA9IHsKKwkJLnByb2NuYW1lID0gImZvbyIsCisJCS5k YXRhCQk9ICZkYXRhLAorCQkubWF4bGVuCQk9IHNpemVvZihpbnQpLAorCQkubW9kZQkJPSAwNjQ0 LAorCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlYywKKwkJLmV4dHJhMQkJPSAmaV96ZXJv LAorCQkuZXh0cmEyICAgICAgICAgPSAmaV9vbmVfaHVuZHJlZCwKKwl9OworCXZvaWQgX191c2Vy ICpidWZmZXIgPSAodm9pZCBfX3VzZXIgKilrdW5pdF9remFsbG9jKHRlc3QsIHNpemVvZihpbnQp LAorCQkJCQkJCSAgIEdGUF9VU0VSKTsKKwkvKgorCSAqIEhvd2V2ZXIsIG5vdyBvdXIgcmVhZC93 cml0ZSBidWZmZXIgaGFzIHplcm8gbGVuZ3RoLgorCSAqLworCXNpemVfdCBsZW4gPSAwOworCWxv ZmZfdCBwb3M7CisKKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcHJvY19kb2ludHZlYygmdGFi bGUsIEtVTklUX1BST0NfUkVBRCwgYnVmZmVyLAorCQkJCQkgICAgICAgJmxlbiwgJnBvcykpOwor CUtVTklUX0VYUEVDVF9FUSh0ZXN0LCAoc2l6ZV90KTAsIGxlbik7CisKKwlLVU5JVF9FWFBFQ1Rf RVEodGVzdCwgMCwgcHJvY19kb2ludHZlYygmdGFibGUsIEtVTklUX1BST0NfV1JJVEUsIGJ1ZmZl ciwKKwkJCQkJICAgICAgICZsZW4sICZwb3MpKTsKKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgKHNp emVfdCkwLCBsZW4pOworfQorCisvKgorICogVGVzdCB0aGF0IHByb2NfZG9pbnR2ZWMgcmVmdXNl cyB0byByZWFkIHdoZW4gdGhlIGZpbGUgcG9zaXRpb24gaXMgbm9uLXplcm8uCisgKi8KK3N0YXRp YyB2b2lkIHN5c2N0bF90ZXN0X2FwaV9kb2ludHZlY190YWJsZV9yZWFkX2J1dF9wb3NpdGlvbl9z ZXQoCisJCXN0cnVjdCBrdW5pdCAqdGVzdCkKK3sKKwlpbnQgZGF0YSA9IDA7CisJLyogR29vZCB0 YWJsZS4gKi8KKwlzdHJ1Y3QgY3RsX3RhYmxlIHRhYmxlID0geworCQkucHJvY25hbWUgPSAiZm9v IiwKKwkJLmRhdGEJCT0gJmRhdGEsCisJCS5tYXhsZW4JCT0gc2l6ZW9mKGludCksCisJCS5tb2Rl CQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjLAorCQkuZXh0cmExCQk9 ICZpX3plcm8sCisJCS5leHRyYTIgICAgICAgICA9ICZpX29uZV9odW5kcmVkLAorCX07CisJdm9p ZCBfX3VzZXIgKmJ1ZmZlciA9ICh2b2lkIF9fdXNlciAqKWt1bml0X2t6YWxsb2ModGVzdCwgc2l6 ZW9mKGludCksCisJCQkJCQkJICAgR0ZQX1VTRVIpOworCS8qCisJICogV2UgZG9uJ3QgY2FyZSBh Ym91dCBvdXIgYnVmZmVyIGxlbmd0aCBiZWNhdXNlIHdlIHN0YXJ0IG9mZiB3aXRoIGEKKwkgKiBu b24temVybyBmaWxlIHBvc2l0aW9uLgorCSAqLworCXNpemVfdCBsZW4gPSAxMjM0OworCS8qCisJ ICogcHJvY19kb2ludHZlYyBzaG91bGQgcmVmdXNlIHRvIHJlYWQgaW50byB0aGUgYnVmZmVyIHNp bmNlIHRoZSBmaWxlCisJICogcG9zIGlzIG5vbi16ZXJvLgorCSAqLworCWxvZmZfdCBwb3MgPSAx OworCisJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHByb2NfZG9pbnR2ZWMoJnRhYmxlLCBLVU5J VF9QUk9DX1JFQUQsIGJ1ZmZlciwKKwkJCQkJICAgICAgICZsZW4sICZwb3MpKTsKKwlLVU5JVF9F WFBFQ1RfRVEodGVzdCwgKHNpemVfdCkwLCBsZW4pOworfQorCisvKgorICogVGVzdCB0aGF0IHdl IGNhbiByZWFkIGEgdHdvIGRpZ2l0IG51bWJlciBpbiBhIHN1ZmZpY2llbnRseSBzaXplIGJ1ZmZl ci4KKyAqIE5vdGhpbmcgZmFuY3kuCisgKi8KK3N0YXRpYyB2b2lkIHN5c2N0bF90ZXN0X2RvaW50 dmVjX3JlYWRfaGFwcHlfc2luZ2xlX3Bvc2l0aXZlKHN0cnVjdCBrdW5pdCAqdGVzdCkKK3sKKwlp bnQgZGF0YSA9IDA7CisJLyogR29vZCB0YWJsZS4gKi8KKwlzdHJ1Y3QgY3RsX3RhYmxlIHRhYmxl ID0geworCQkucHJvY25hbWUgPSAiZm9vIiwKKwkJLmRhdGEJCT0gJmRhdGEsCisJCS5tYXhsZW4J CT0gc2l6ZW9mKGludCksCisJCS5tb2RlCQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJPSBwcm9j X2RvaW50dmVjLAorCQkuZXh0cmExCQk9ICZpX3plcm8sCisJCS5leHRyYTIgICAgICAgICA9ICZp X29uZV9odW5kcmVkLAorCX07CisJc2l6ZV90IGxlbiA9IDQ7CisJbG9mZl90IHBvcyA9IDA7CisJ Y2hhciAqYnVmZmVyID0ga3VuaXRfa3phbGxvYyh0ZXN0LCBsZW4sIEdGUF9VU0VSKTsKKwljaGFy IF9fdXNlciAqdXNlcl9idWZmZXIgPSAoY2hhciBfX3VzZXIgKilidWZmZXI7CisJLyogU3RvcmUg MTMgaW4gdGhlIGRhdGEgZmllbGQuICovCisJKigoaW50ICopdGFibGUuZGF0YSkgPSAxMzsKKwor CUtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCBwcm9jX2RvaW50dmVjKCZ0YWJsZSwgS1VOSVRfUFJP Q19SRUFELAorCQkJCQkgICAgICAgdXNlcl9idWZmZXIsICZsZW4sICZwb3MpKTsKKwlLVU5JVF9B U1NFUlRfRVEodGVzdCwgKHNpemVfdCkzLCBsZW4pOworCWJ1ZmZlcltsZW5dID0gJ1wwJzsKKwkv KiBBbmQgd2UgcmVhZCAxMyBiYWNrIG91dC4gKi8KKwlLVU5JVF9FWFBFQ1RfU1RSRVEodGVzdCwg IjEzXG4iLCBidWZmZXIpOworfQorCisvKgorICogU2FtZSBhcyBwcmV2aW91cyB0ZXN0LCBqdXN0 IG5vdyB3aXRoIG5lZ2F0aXZlIG51bWJlcnMuCisgKi8KK3N0YXRpYyB2b2lkIHN5c2N0bF90ZXN0 X2RvaW50dmVjX3JlYWRfaGFwcHlfc2luZ2xlX25lZ2F0aXZlKHN0cnVjdCBrdW5pdCAqdGVzdCkK K3sKKwlpbnQgZGF0YSA9IDA7CisJLyogR29vZCB0YWJsZS4gKi8KKwlzdHJ1Y3QgY3RsX3RhYmxl IHRhYmxlID0geworCQkucHJvY25hbWUgPSAiZm9vIiwKKwkJLmRhdGEJCT0gJmRhdGEsCisJCS5t YXhsZW4JCT0gc2l6ZW9mKGludCksCisJCS5tb2RlCQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJ PSBwcm9jX2RvaW50dmVjLAorCQkuZXh0cmExCQk9ICZpX3plcm8sCisJCS5leHRyYTIgICAgICAg ICA9ICZpX29uZV9odW5kcmVkLAorCX07CisJc2l6ZV90IGxlbiA9IDU7CisJbG9mZl90IHBvcyA9 IDA7CisJY2hhciAqYnVmZmVyID0ga3VuaXRfa3phbGxvYyh0ZXN0LCBsZW4sIEdGUF9VU0VSKTsK KwljaGFyIF9fdXNlciAqdXNlcl9idWZmZXIgPSAoY2hhciBfX3VzZXIgKilidWZmZXI7CisJKigo aW50ICopdGFibGUuZGF0YSkgPSAtMTY7CisKKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcHJv Y19kb2ludHZlYygmdGFibGUsIEtVTklUX1BST0NfUkVBRCwKKwkJCQkJICAgICAgIHVzZXJfYnVm ZmVyLCAmbGVuLCAmcG9zKSk7CisJS1VOSVRfQVNTRVJUX0VRKHRlc3QsIChzaXplX3QpNCwgbGVu KTsKKwlidWZmZXJbbGVuXSA9ICdcMCc7CisJS1VOSVRfRVhQRUNUX1NUUkVRKHRlc3QsICItMTZc biIsIChjaGFyICopYnVmZmVyKTsKK30KKworLyoKKyAqIFRlc3QgdGhhdCBhIHNpbXBsZSBwb3Np dGl2ZSB3cml0ZSB3b3Jrcy4KKyAqLworc3RhdGljIHZvaWQgc3lzY3RsX3Rlc3RfZG9pbnR2ZWNf d3JpdGVfaGFwcHlfc2luZ2xlX3Bvc2l0aXZlKHN0cnVjdCBrdW5pdCAqdGVzdCkKK3sKKwlpbnQg ZGF0YSA9IDA7CisJLyogR29vZCB0YWJsZS4gKi8KKwlzdHJ1Y3QgY3RsX3RhYmxlIHRhYmxlID0g eworCQkucHJvY25hbWUgPSAiZm9vIiwKKwkJLmRhdGEJCT0gJmRhdGEsCisJCS5tYXhsZW4JCT0g c2l6ZW9mKGludCksCisJCS5tb2RlCQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2Rv aW50dmVjLAorCQkuZXh0cmExCQk9ICZpX3plcm8sCisJCS5leHRyYTIgICAgICAgICA9ICZpX29u ZV9odW5kcmVkLAorCX07CisJY2hhciBpbnB1dFtdID0gIjkiOworCXNpemVfdCBsZW4gPSBzaXpl b2YoaW5wdXQpIC0gMTsKKwlsb2ZmX3QgcG9zID0gMDsKKwljaGFyICpidWZmZXIgPSBrdW5pdF9r emFsbG9jKHRlc3QsIGxlbiwgR0ZQX1VTRVIpOworCWNoYXIgX191c2VyICp1c2VyX2J1ZmZlciA9 IChjaGFyIF9fdXNlciAqKWJ1ZmZlcjsKKworCW1lbWNweShidWZmZXIsIGlucHV0LCBsZW4pOwor CisJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHByb2NfZG9pbnR2ZWMoJnRhYmxlLCBLVU5JVF9Q Uk9DX1dSSVRFLAorCQkJCQkgICAgICAgdXNlcl9idWZmZXIsICZsZW4sICZwb3MpKTsKKwlLVU5J VF9FWFBFQ1RfRVEodGVzdCwgc2l6ZW9mKGlucHV0KSAtIDEsIGxlbik7CisJS1VOSVRfRVhQRUNU X0VRKHRlc3QsIHNpemVvZihpbnB1dCkgLSAxLCAoc2l6ZV90KXBvcyk7CisJS1VOSVRfRVhQRUNU X0VRKHRlc3QsIDksICooKGludCAqKXRhYmxlLmRhdGEpKTsKK30KKworLyoKKyAqIFNhbWUgYXMg cHJldmlvdXMgdGVzdCwgYnV0IG5vdyB3aXRoIG5lZ2F0aXZlIG51bWJlcnMuCisgKi8KK3N0YXRp YyB2b2lkIHN5c2N0bF90ZXN0X2RvaW50dmVjX3dyaXRlX2hhcHB5X3NpbmdsZV9uZWdhdGl2ZShz dHJ1Y3Qga3VuaXQgKnRlc3QpCit7CisJaW50IGRhdGEgPSAwOworCXN0cnVjdCBjdGxfdGFibGUg dGFibGUgPSB7CisJCS5wcm9jbmFtZSA9ICJmb28iLAorCQkuZGF0YQkJPSAmZGF0YSwKKwkJLm1h eGxlbgkJPSBzaXplb2YoaW50KSwKKwkJLm1vZGUJCT0gMDY0NCwKKwkJLnByb2NfaGFuZGxlcgk9 IHByb2NfZG9pbnR2ZWMsCisJCS5leHRyYTEJCT0gJmlfemVybywKKwkJLmV4dHJhMiAgICAgICAg ID0gJmlfb25lX2h1bmRyZWQsCisJfTsKKwljaGFyIGlucHV0W10gPSAiLTkiOworCXNpemVfdCBs ZW4gPSBzaXplb2YoaW5wdXQpIC0gMTsKKwlsb2ZmX3QgcG9zID0gMDsKKwljaGFyICpidWZmZXIg PSBrdW5pdF9remFsbG9jKHRlc3QsIGxlbiwgR0ZQX1VTRVIpOworCWNoYXIgX191c2VyICp1c2Vy X2J1ZmZlciA9IChjaGFyIF9fdXNlciAqKWJ1ZmZlcjsKKworCW1lbWNweShidWZmZXIsIGlucHV0 LCBsZW4pOworCisJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHByb2NfZG9pbnR2ZWMoJnRhYmxl LCBLVU5JVF9QUk9DX1dSSVRFLAorCQkJCQkgICAgICAgdXNlcl9idWZmZXIsICZsZW4sICZwb3Mp KTsKKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgc2l6ZW9mKGlucHV0KSAtIDEsIGxlbik7CisJS1VO SVRfRVhQRUNUX0VRKHRlc3QsIHNpemVvZihpbnB1dCkgLSAxLCAoc2l6ZV90KXBvcyk7CisJS1VO SVRfRVhQRUNUX0VRKHRlc3QsIC05LCAqKChpbnQgKil0YWJsZS5kYXRhKSk7Cit9CisKKy8qCisg KiBUZXN0IHRoYXQgd3JpdGluZyBhIHZhbHVlIHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBwb3Nz aWJsZSB2YWx1ZSBpcyBub3QKKyAqIGFsbG93ZWQuCisgKi8KK3N0YXRpYyB2b2lkIHN5c2N0bF90 ZXN0X2FwaV9kb2ludHZlY193cml0ZV9zaW5nbGVfbGVzc19pbnRfbWluKAorCQlzdHJ1Y3Qga3Vu aXQgKnRlc3QpCit7CisJaW50IGRhdGEgPSAwOworCXN0cnVjdCBjdGxfdGFibGUgdGFibGUgPSB7 CisJCS5wcm9jbmFtZSA9ICJmb28iLAorCQkuZGF0YQkJPSAmZGF0YSwKKwkJLm1heGxlbgkJPSBz aXplb2YoaW50KSwKKwkJLm1vZGUJCT0gMDY0NCwKKwkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9p bnR2ZWMsCisJCS5leHRyYTEJCT0gJmlfemVybywKKwkJLmV4dHJhMiAgICAgICAgID0gJmlfb25l X2h1bmRyZWQsCisJfTsKKwlzaXplX3QgbWF4X2xlbiA9IDMyLCBsZW4gPSBtYXhfbGVuOworCWxv ZmZfdCBwb3MgPSAwOworCWNoYXIgKmJ1ZmZlciA9IGt1bml0X2t6YWxsb2ModGVzdCwgbWF4X2xl biwgR0ZQX1VTRVIpOworCWNoYXIgX191c2VyICp1c2VyX2J1ZmZlciA9IChjaGFyIF9fdXNlciAq KWJ1ZmZlcjsKKwl1bnNpZ25lZCBsb25nIGFic19vZl9sZXNzX3RoYW5fbWluID0gKHVuc2lnbmVk IGxvbmcpSU5UX01BWAorCQkJCQkgICAgIC0gKElOVF9NQVggKyBJTlRfTUlOKSArIDE7CisKKwkv KgorCSAqIFdlIHVzZSB0aGlzIHJpZ21hcm9sZSB0byBjcmVhdGUgYSBzdHJpbmcgdGhhdCBjb250 YWlucyBhIHZhbHVlIG9uZQorCSAqIGxlc3MgdGhhbiB0aGUgbWluaW11bSBhY2NlcHRlZCB2YWx1 ZS4KKwkgKi8KKwlLVU5JVF9BU1NFUlRfTFQodGVzdCwKKwkJCShzaXplX3Qpc25wcmludGYoYnVm ZmVyLCBtYXhfbGVuLCAiLSVsdSIsCisJCQkJCSBhYnNfb2ZfbGVzc190aGFuX21pbiksCisJCQlt YXhfbGVuKTsKKworCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCAtRUlOVkFMLCBwcm9jX2RvaW50dmVj KCZ0YWJsZSwgS1VOSVRfUFJPQ19XUklURSwKKwkJCQkJCSAgICAgdXNlcl9idWZmZXIsICZsZW4s ICZwb3MpKTsKKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgbWF4X2xlbiwgbGVuKTsKKwlLVU5JVF9F WFBFQ1RfRVEodGVzdCwgMCwgKigoaW50ICopdGFibGUuZGF0YSkpOworfQorCisvKgorICogVGVz dCB0aGF0IHdyaXRpbmcgdGhlIG1heGltdW0gcG9zc2libGUgdmFsdWUgd29ya3MuCisgKi8KK3N0 YXRpYyB2b2lkIHN5c2N0bF90ZXN0X2FwaV9kb2ludHZlY193cml0ZV9zaW5nbGVfZ3JlYXRlcl9p bnRfbWF4KAorCQlzdHJ1Y3Qga3VuaXQgKnRlc3QpCit7CisJaW50IGRhdGEgPSAwOworCXN0cnVj dCBjdGxfdGFibGUgdGFibGUgPSB7CisJCS5wcm9jbmFtZSA9ICJmb28iLAorCQkuZGF0YQkJPSAm ZGF0YSwKKwkJLm1heGxlbgkJPSBzaXplb2YoaW50KSwKKwkJLm1vZGUJCT0gMDY0NCwKKwkJLnBy b2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMsCisJCS5leHRyYTEJCT0gJmlfemVybywKKwkJLmV4 dHJhMiAgICAgICAgID0gJmlfb25lX2h1bmRyZWQsCisJfTsKKwlzaXplX3QgbWF4X2xlbiA9IDMy LCBsZW4gPSBtYXhfbGVuOworCWxvZmZfdCBwb3MgPSAwOworCWNoYXIgKmJ1ZmZlciA9IGt1bml0 X2t6YWxsb2ModGVzdCwgbWF4X2xlbiwgR0ZQX1VTRVIpOworCWNoYXIgX191c2VyICp1c2VyX2J1 ZmZlciA9IChjaGFyIF9fdXNlciAqKWJ1ZmZlcjsKKwl1bnNpZ25lZCBsb25nIGdyZWF0ZXJfdGhh bl9tYXggPSAodW5zaWduZWQgbG9uZylJTlRfTUFYICsgMTsKKworCUtVTklUX0FTU0VSVF9HVCh0 ZXN0LCBncmVhdGVyX3RoYW5fbWF4LCAodW5zaWduZWQgbG9uZylJTlRfTUFYKTsKKwlLVU5JVF9B U1NFUlRfTFQodGVzdCwgKHNpemVfdClzbnByaW50ZihidWZmZXIsIG1heF9sZW4sICIlbHUiLAor CQkJCQkgICAgICAgZ3JlYXRlcl90aGFuX21heCksCisJCQltYXhfbGVuKTsKKwlLVU5JVF9FWFBF Q1RfRVEodGVzdCwgLUVJTlZBTCwgcHJvY19kb2ludHZlYygmdGFibGUsIEtVTklUX1BST0NfV1JJ VEUsCisJCQkJCQkgICAgIHVzZXJfYnVmZmVyLCAmbGVuLCAmcG9zKSk7CisJS1VOSVRfQVNTRVJU X0VRKHRlc3QsIG1heF9sZW4sIGxlbik7CisJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsICooKGlu dCAqKXRhYmxlLmRhdGEpKTsKK30KKworc3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHN5c2N0bF90 ZXN0X2Nhc2VzW10gPSB7CisJS1VOSVRfQ0FTRShzeXNjdGxfdGVzdF9hcGlfZG9pbnR2ZWNfbnVs bF90YmxfZGF0YSksCisJS1VOSVRfQ0FTRShzeXNjdGxfdGVzdF9hcGlfZG9pbnR2ZWNfdGFibGVf bWF4bGVuX3Vuc2V0KSwKKwlLVU5JVF9DQVNFKHN5c2N0bF90ZXN0X2FwaV9kb2ludHZlY190YWJs ZV9sZW5faXNfemVybyksCisJS1VOSVRfQ0FTRShzeXNjdGxfdGVzdF9hcGlfZG9pbnR2ZWNfdGFi bGVfcmVhZF9idXRfcG9zaXRpb25fc2V0KSwKKwlLVU5JVF9DQVNFKHN5c2N0bF90ZXN0X2RvaW50 dmVjX3JlYWRfaGFwcHlfc2luZ2xlX3Bvc2l0aXZlKSwKKwlLVU5JVF9DQVNFKHN5c2N0bF90ZXN0 X2RvaW50dmVjX3JlYWRfaGFwcHlfc2luZ2xlX25lZ2F0aXZlKSwKKwlLVU5JVF9DQVNFKHN5c2N0 bF90ZXN0X2RvaW50dmVjX3dyaXRlX2hhcHB5X3NpbmdsZV9wb3NpdGl2ZSksCisJS1VOSVRfQ0FT RShzeXNjdGxfdGVzdF9kb2ludHZlY193cml0ZV9oYXBweV9zaW5nbGVfbmVnYXRpdmUpLAorCUtV TklUX0NBU0Uoc3lzY3RsX3Rlc3RfYXBpX2RvaW50dmVjX3dyaXRlX3NpbmdsZV9sZXNzX2ludF9t aW4pLAorCUtVTklUX0NBU0Uoc3lzY3RsX3Rlc3RfYXBpX2RvaW50dmVjX3dyaXRlX3NpbmdsZV9n cmVhdGVyX2ludF9tYXgpLAorCXt9Cit9OworCitzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIHN5 c2N0bF90ZXN0X3N1aXRlID0geworCS5uYW1lID0gInN5c2N0bF90ZXN0IiwKKwkudGVzdF9jYXNl cyA9IHN5c2N0bF90ZXN0X2Nhc2VzLAorfTsKKwora3VuaXRfdGVzdF9zdWl0ZShzeXNjdGxfdGVz dF9zdWl0ZSk7CmRpZmYgLS1naXQgYS9saWIvS2NvbmZpZy5kZWJ1ZyBiL2xpYi9LY29uZmlnLmRl YnVnCmluZGV4IDU5NjBlMjk4MGE4YTAuLmE0MjU3NDE5MDdiMGQgMTAwNjQ0Ci0tLSBhL2xpYi9L Y29uZmlnLmRlYnVnCisrKyBiL2xpYi9LY29uZmlnLmRlYnVnCkBAIC0xOTY1LDYgKzE5NjUsMTcg QEAgY29uZmlnIFRFU1RfU1lTQ1RMCiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBT WVNDVExfS1VOSVRfVEVTVAorCWJvb2wgIktVbml0IHRlc3QgZm9yIHN5c2N0bCIKKwlkZXBlbmRz IG9uIEtVTklUCisJaGVscAorCSAgVGhpcyBidWlsZHMgdGhlIHByb2Mgc3lzY3RsIHVuaXQgdGVz dCwgd2hpY2ggcnVucyBvbiBib290LgorCSAgVGVzdHMgdGhlIEFQSSBjb250cmFjdCBhbmQgaW1w bGVtZW50YXRpb24gY29ycmVjdG5lc3Mgb2Ygc3lzY3RsLgorCSAgRm9yIG1vcmUgaW5mb3JtYXRp b24gb24gS1VuaXQgYW5kIHVuaXQgdGVzdHMgaW4gZ2VuZXJhbCBwbGVhc2UgcmVmZXIKKwkgIHRv IHRoZSBLVW5pdCBkb2N1bWVudGF0aW9uIGluIERvY3VtZW50YXRpb24vZGV2LXRvb2xzL2t1bml0 Ly4KKworCSAgSWYgdW5zdXJlLCBzYXkgTi4KKwogY29uZmlnIFRFU1RfVURFTEFZCiAJdHJpc3Rh dGUgInVkZWxheSB0ZXN0IGRyaXZlciIKIAloZWxwCi0tIAoyLjIzLjAucmMxLjE1My5nZGVlZDgw MzMwZi1nb29nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=