From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KU5mf-0002T3-Bj for qemu-devel@nongnu.org; Fri, 15 Aug 2008 16:20:29 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KU5me-0002Rx-SF for qemu-devel@nongnu.org; Fri, 15 Aug 2008 16:20:28 -0400 Received: from [199.232.76.173] (port=37470 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KU5me-0002RY-FQ for qemu-devel@nongnu.org; Fri, 15 Aug 2008 16:20:28 -0400 Received: from yx-out-1718.google.com ([74.125.44.158]:5270) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KU5md-0002gF-Vd for qemu-devel@nongnu.org; Fri, 15 Aug 2008 16:20:28 -0400 Received: by yx-out-1718.google.com with SMTP id 3so720014yxi.82 for ; Fri, 15 Aug 2008 13:20:27 -0700 (PDT) Message-ID: Date: Fri, 15 Aug 2008 23:20:26 +0300 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_138575_29710428.1218831626469" Subject: [Qemu-devel] [PATCH] Fix OpenBSD linker warnings Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel ------=_Part_138575_29710428.1218831626469 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline OpenBSD gcc issues warnings for some suspicious constructs, like: slirp/tcp_subr.c:1077: warning: Array size (256) smaller than format string size (257) (arg 3) vl.o(.text+0x7bc0): In function `drive_init': vl.c:5464: warning: strcpy() is almost always misused, please use strlcpy() This patch silences the warnings. Comments? ------=_Part_138575_29710428.1218831626469 Content-Type: plain/text; name=fix_obsd_ld_warnings.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fjx8sb3s Content-Disposition: attachment; filename=fix_obsd_ld_warnings.diff SW5kZXg6IHFlbXUvbW9uaXRvci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9tb25pdG9yLmMJ MjAwOC0wOC0xNSAxODozMTowNC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvbW9uaXRvci5jCTIw MDgtMDgtMTUgMTk6MzE6MzYuMDAwMDAwMDAwICswMDAwCkBAIC0yMjMzLDcgKzIyMzMsNyBAQAog ICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgIHN0ciA9IHFlbXVfbWFsbG9jKHN0cmxlbihidWYpICsgMSk7Ci0gICAgICAgICAg ICAgICAgc3RyY3B5KHN0ciwgYnVmKTsKKyAgICAgICAgICAgICAgICBwc3RyY3B5KHN0ciwgc2l6 ZW9mKGJ1ZiksIGJ1Zik7CiAgICAgICAgICAgICAgICAgc3RyX2FsbG9jYXRlZFtuYl9hcmdzXSA9 IHN0cjsKICAgICAgICAgICAgIGFkZF9zdHI6CiAgICAgICAgICAgICAgICAgaWYgKG5iX2FyZ3Mg Pj0gTUFYX0FSR1MpIHsKQEAgLTI0OTIsNyArMjQ5Miw3IEBACiAgICAgaWYgKCFwKSB7CiAgICAg ICAgIGlucHV0X3BhdGhfbGVuID0gMDsKICAgICAgICAgcHN0cmNweShmaWxlX3ByZWZpeCwgc2l6 ZW9mKGZpbGVfcHJlZml4KSwgaW5wdXQpOwotICAgICAgICBzdHJjcHkocGF0aCwgIi4iKTsKKyAg ICAgICAgcHN0cmNweShwYXRoLCBzaXplb2YocGF0aCksICIuIik7CiAgICAgfSBlbHNlIHsKICAg ICAgICAgaW5wdXRfcGF0aF9sZW4gPSBwIC0gaW5wdXQgKyAxOwogICAgICAgICBtZW1jcHkocGF0 aCwgaW5wdXQsIGlucHV0X3BhdGhfbGVuKTsKQEAgLTI1MTQsMTMgKzI1MTQsMTUgQEAKICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoc3Ryc3RhcnQoZC0+ZF9uYW1lLCBmaWxlX3ByZWZp eCwgTlVMTCkpIHsKICAgICAgICAgICAgIG1lbWNweShmaWxlLCBpbnB1dCwgaW5wdXRfcGF0aF9s ZW4pOwotICAgICAgICAgICAgc3RyY3B5KGZpbGUgKyBpbnB1dF9wYXRoX2xlbiwgZC0+ZF9uYW1l KTsKKyAgICAgICAgICAgIGlmIChpbnB1dF9wYXRoX2xlbiA8IHNpemVvZihmaWxlKSkKKyAgICAg ICAgICAgICAgICBwc3RyY3B5KGZpbGUgKyBpbnB1dF9wYXRoX2xlbiwgc2l6ZW9mKGZpbGUpIC0g aW5wdXRfcGF0aF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICBkLT5kX25hbWUpOwogICAg ICAgICAgICAgLyogc3RhdCB0aGUgZmlsZSB0byBmaW5kIG91dCBpZiBpdCdzIGEgZGlyZWN0b3J5 LgogICAgICAgICAgICAgICogSW4gdGhhdCBjYXNlIGFkZCBhIHNsYXNoIHRvIHNwZWVkIHVwIHR5 cGluZyBsb25nIHBhdGhzCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIHN0YXQoZmlsZSwg JnNiKTsKICAgICAgICAgICAgIGlmKFNfSVNESVIoc2Iuc3RfbW9kZSkpCi0gICAgICAgICAgICAg ICAgc3RyY2F0KGZpbGUsICIvIik7CisgICAgICAgICAgICAgICAgcHN0cmNhdChmaWxlLCBzaXpl b2YoZmlsZSksICIvIik7CiAgICAgICAgICAgICBhZGRfY29tcGxldGlvbihmaWxlKTsKICAgICAg ICAgfQogICAgIH0KSW5kZXg6IHFlbXUvdmwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdmwu YwkyMDA4LTA4LTE1IDE4OjMxOjM2LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS92bC5jCTIwMDgt MDgtMTUgMTk6MzE6MzYuMDAwMDAwMDAwICswMDAwCkBAIC0xOTE1LDExICsxOTE1LDEyIEBACiAg ICAgY2hhciBjYnVmWzUwXSA9ICJcblxyIjsKIAogICAgIGlmICh0ZXJtX2VzY2FwZV9jaGFyID4g MCAmJiB0ZXJtX2VzY2FwZV9jaGFyIDwgMjYpIHsKLSAgICAgICAgc3ByaW50ZihjYnVmLCJcblxy Iik7Ci0gICAgICAgIHNwcmludGYoZWJ1ZiwiQy0lYyIsIHRlcm1fZXNjYXBlX2NoYXIgLSAxICsg J2EnKTsKKyAgICAgICAgc25wcmludGYoY2J1Ziwgc2l6ZW9mKGNidWYpLCAiXG5cciIpOworICAg ICAgICBzbnByaW50ZihlYnVmLCBzaXplb2YoZWJ1ZiksICJDLSVjIiwgdGVybV9lc2NhcGVfY2hh ciAtIDEgKyAnYScpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHNwcmludGYoY2J1ZiwiXG5cckVz Y2FwZS1DaGFyIHNldCB0byBBc2NpaTogMHglMDJ4XG5cclxuXHIiLAotICAgICAgICAgICAgdGVy bV9lc2NhcGVfY2hhcik7CisgICAgICAgIHNucHJpbnRmKGNidWYsIHNpemVvZihjYnVmKSwKKyAg ICAgICAgICAgICAgICAgIlxuXHJFc2NhcGUtQ2hhciBzZXQgdG8gQXNjaWk6IDB4JTAyeFxuXHJc blxyIiwKKyAgICAgICAgICAgICAgICAgdGVybV9lc2NhcGVfY2hhcik7CiAgICAgfQogICAgIGNo ci0+Y2hyX3dyaXRlKGNociwgKHVpbnQ4X3QgKiljYnVmLCBzdHJsZW4oY2J1ZikpOwogICAgIGZv ciAoaSA9IDA7IG11eF9oZWxwW2ldICE9IE5VTEw7IGkrKykgewpAQCAtNDM4NSw3ICs0Mzg2LDcg QEAKICAqIEFsbG9jYXRlIFRBUCBkZXZpY2UsIHJldHVybnMgb3BlbmVkIGZkLgogICogU3RvcmVz IGRldiBuYW1lIGluIHRoZSBmaXJzdCBhcmcobXVzdCBiZSBsYXJnZSBlbm91Z2gpLgogICovCi1p bnQgdGFwX2FsbG9jKGNoYXIgKmRldikKK2ludCB0YXBfYWxsb2MoY2hhciAqZGV2LCBzaXplX3Qg ZGV2X3NpemUpCiB7CiAgICAgaW50IHRhcF9mZCwgaWZfZmQsIHBwYSA9IC0xOwogICAgIHN0YXRp YyBpbnQgaXBfZmQgPSAwOwpAQCAtNDQ5OCw3ICs0NDk5LDcgQEAKICAgICAgIHN5c2xvZyAoTE9H X0VSUiwgIkNhbid0IHNldCBtdWx0aXBsZXhvciBpZCIpOwogICAgIH0KIAotICAgIHNwcmludGYo ZGV2LCAidGFwJWQiLCBwcGEpOworICAgIHNucHJpbnRmKGRldiwgZGV2X3NpemUsICJ0YXAlZCIs IHBwYSk7CiAgICAgcmV0dXJuIHRhcF9mZDsKIH0KIApAQCAtNDUwNiw3ICs0NTA3LDcgQEAKIHsK ICAgICBjaGFyICBkZXZbMTBdPSIiOwogICAgIGludCBmZDsKLSAgICBpZiggKGZkID0gdGFwX2Fs bG9jKGRldikpIDwgMCApeworICAgIGlmKCAoZmQgPSB0YXBfYWxsb2MoZGV2LCBzaXplb2YoZGV2 KSkpIDwgMCApewogICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ2Fubm90IGFsbG9jYXRlIFRBUCBk ZXZpY2VcbiIpOwogICAgICAgIHJldHVybiAtMTsKICAgICB9CkBAIC01NDYxLDExICs1NDYyLDEx IEBACiAgICAgICAgICFzdHJjbXAobWFjaGluZS0+bmFtZSwgInZlcnNhdGlsZWFiIikpIHsKICAg ICAgICAgdHlwZSA9IElGX1NDU0k7CiAgICAgICAgIG1heF9kZXZzID0gTUFYX1NDU0lfREVWUzsK LSAgICAgICAgc3RyY3B5KGRldm5hbWUsICJzY3NpIik7CisgICAgICAgIHBzdHJjcHkoZGV2bmFt ZSwgc2l6ZW9mKGRldm5hbWUpLCAic2NzaSIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHR5cGUg PSBJRl9JREU7CiAgICAgICAgIG1heF9kZXZzID0gTUFYX0lERV9ERVZTOwotICAgICAgICBzdHJj cHkoZGV2bmFtZSwgImlkZSIpOworICAgICAgICBwc3RyY3B5KGRldm5hbWUsIHNpemVvZihkZXZu YW1lKSwgImlkZSIpOwogICAgIH0KICAgICBtZWRpYSA9IE1FRElBX0RJU0s7CiAKSW5kZXg6IHFl bXUvZ2Ric3R1Yi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9nZGJzdHViLmMJMjAwOC0wOC0x NSAxODozMTowMy4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvZ2Ric3R1Yi5jCTIwMDgtMDgtMTUg MTk6MzE6MzYuMDAwMDAwMDAwICswMDAwCkBAIC0xMTczLDEwICsxMTczLDEwIEBACiAgICAgICAg IC8qIHBhcnNlIGFueSAncScgcGFja2V0cyBoZXJlICovCiAgICAgICAgIGlmICghc3RyY21wKHAs InFlbXUuc3N0ZXBiaXRzIikpIHsKICAgICAgICAgICAgIC8qIFF1ZXJ5IEJyZWFrcG9pbnQgYml0 IGRlZmluaXRpb25zICovCi0gICAgICAgICAgICBzcHJpbnRmKGJ1ZiwiRU5BQkxFPSV4LE5PSVJR PSV4LE5PVElNRVI9JXgiLAotICAgICAgICAgICAgICAgICAgICBTU1RFUF9FTkFCTEUsCi0gICAg ICAgICAgICAgICAgICAgIFNTVEVQX05PSVJRLAotICAgICAgICAgICAgICAgICAgICBTU1RFUF9O T1RJTUVSKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJFTkFCTEU9 JXgsTk9JUlE9JXgsTk9USU1FUj0leCIsCisgICAgICAgICAgICAgICAgICAgICBTU1RFUF9FTkFC TEUsCisgICAgICAgICAgICAgICAgICAgICBTU1RFUF9OT0lSUSwKKyAgICAgICAgICAgICAgICAg ICAgIFNTVEVQX05PVElNRVIpOwogICAgICAgICAgICAgcHV0X3BhY2tldChzLCBidWYpOwogICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gZWxzZSBpZiAoc3RybmNtcChwLCJxZW11LnNzdGVw IiwxMCkgPT0gMCkgewpAQCAtMTE4NCw3ICsxMTg0LDcgQEAKICAgICAgICAgICAgIHAgKz0gMTA7 CiAgICAgICAgICAgICBpZiAoKnAgIT0gJz0nKSB7CiAgICAgICAgICAgICAgICAgLyogRGlzcGxh eSBjdXJyZW50IHNldHRpbmcgKi8KLSAgICAgICAgICAgICAgICBzcHJpbnRmKGJ1ZiwiMHgleCIs IHNzdGVwX2ZsYWdzKTsKKyAgICAgICAgICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYp LCAiMHgleCIsIHNzdGVwX2ZsYWdzKTsKICAgICAgICAgICAgICAgICBwdXRfcGFja2V0KHMsIGJ1 Zik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xMTk4LDEyICsx MTk4LDEyIEBACiAgICAgICAgIGVsc2UgaWYgKHN0cm5jbXAocCwgIk9mZnNldHMiLCA3KSA9PSAw KSB7CiAgICAgICAgICAgICBUYXNrU3RhdGUgKnRzID0gZW52LT5vcGFxdWU7CiAKLSAgICAgICAg ICAgIHNwcmludGYoYnVmLAotICAgICAgICAgICAgICAgICAgICAiVGV4dD0iIFRBUkdFVF9BQklf Rk1UX2x4ICI7RGF0YT0iIFRBUkdFVF9BQklfRk1UX2x4Ci0gICAgICAgICAgICAgICAgICAgICI7 QnNzPSIgVEFSR0VUX0FCSV9GTVRfbHgsCi0gICAgICAgICAgICAgICAgICAgIHRzLT5pbmZvLT5j b2RlX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgdHMtPmluZm8tPmRhdGFfb2Zmc2V0LAot ICAgICAgICAgICAgICAgICAgICB0cy0+aW5mby0+ZGF0YV9vZmZzZXQpOworICAgICAgICAgICAg c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwKKyAgICAgICAgICAgICAgICAgICAgICJUZXh0PSIg VEFSR0VUX0FCSV9GTVRfbHggIjtEYXRhPSIgVEFSR0VUX0FCSV9GTVRfbHgKKyAgICAgICAgICAg ICAgICAgICAgICI7QnNzPSIgVEFSR0VUX0FCSV9GTVRfbHgsCisgICAgICAgICAgICAgICAgICAg ICB0cy0+aW5mby0+Y29kZV9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICB0cy0+aW5mby0+ ZGF0YV9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICB0cy0+aW5mby0+ZGF0YV9vZmZzZXQp OwogICAgICAgICAgICAgcHV0X3BhY2tldChzLCBidWYpOwogICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgIH0KQEAgLTEyODYsMTcgKzEyODYsMTggQEAKICAgICAgICAgICAgIHN3aXRjaCAoKmZt dCsrKSB7CiAgICAgICAgICAgICBjYXNlICd4JzoKICAgICAgICAgICAgICAgICBhZGRyID0gdmFf YXJnKHZhLCB0YXJnZXRfdWxvbmcpOwotICAgICAgICAgICAgICAgIHAgKz0gc3ByaW50ZihwLCBU QVJHRVRfRk1UX2x4LCBhZGRyKTsKKyAgICAgICAgICAgICAgICBwICs9IHNucHJpbnRmKHAsICZi dWZbc2l6ZW9mKGJ1ZildIC0gcCwgVEFSR0VUX0ZNVF9seCwgYWRkcik7CiAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICdsJzoKICAgICAgICAgICAgICAgICBpZiAoKihm bXQrKykgIT0gJ3gnKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGJhZF9mb3JtYXQ7CiAgICAg ICAgICAgICAgICAgaTY0ID0gdmFfYXJnKHZhLCB1aW50NjRfdCk7Ci0gICAgICAgICAgICAgICAg cCArPSBzcHJpbnRmKHAsICIlIiBQUkl4NjQsIGk2NCk7CisgICAgICAgICAgICAgICAgcCArPSBz bnByaW50ZihwLCAmYnVmW3NpemVvZihidWYpXSAtIHAsICIlIiBQUkl4NjQsIGk2NCk7CiAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICdzJzoKICAgICAgICAgICAgICAg ICBhZGRyID0gdmFfYXJnKHZhLCB0YXJnZXRfdWxvbmcpOwotICAgICAgICAgICAgICAgIHAgKz0g c3ByaW50ZihwLCBUQVJHRVRfRk1UX2x4ICIvJXgiLCBhZGRyLCB2YV9hcmcodmEsIGludCkpOwor ICAgICAgICAgICAgICAgIHAgKz0gc25wcmludGYocCwgJmJ1ZltzaXplb2YoYnVmKV0gLSBwLCBU QVJHRVRfRk1UX2x4ICIvJXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkciwg dmFfYXJnKHZhLCBpbnQpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRl ZmF1bHQ6CiAgICAgICAgICAgICBiYWRfZm9ybWF0OgpJbmRleDogcWVtdS9ody9zdW40bS5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9zdW40bS5jCTIwMDgtMDgtMTUgMTg6MzE6MDQuMDAw MDAwMDAwICswMDAwCisrKyBxZW11L2h3L3N1bjRtLmMJMjAwOC0wOC0xNSAxOTozMTozNi4wMDAw MDAwMDAgKzAwMDAKQEAgLTE1OSw3ICsxNTksOCBAQAogICAgIGZvciAoaSA9IDA7IGkgPCBzaXpl b2YoaW1hZ2UpOyBpKyspCiAgICAgICAgIGltYWdlW2ldID0gbTQ4dDU5X3JlYWQobnZyYW0sIGkp ICYgMHhmZjsKIAotICAgIHN0cmNweSgoY2hhciAqKWhlYWRlci0+Ym9vdF9kZXZpY2VzLCBib290 X2RldmljZSk7CisgICAgcHN0cmNweSgoY2hhciAqKWhlYWRlci0+Ym9vdF9kZXZpY2VzLCBzaXpl b2YoaGVhZGVyLT5ib290X2RldmljZXMpLAorICAgICAgICAgICAgYm9vdF9kZXZpY2UpOwogICAg IGhlYWRlci0+bmJvb3RfZGV2aWNlcyA9IHN0cmxlbihib290X2RldmljZSkgJiAweGZmOwogICAg IGhlYWRlci0+Y3JjID0gY3B1X3RvX2JlMTYoT0hXX2NvbXB1dGVfY3JjKGhlYWRlciwgMHgwMCwg MHhGOCkpOwogCkBAIC0xODcsMTcgKzE4OCwxOSBAQAogICAgIG1lbXNldChpbWFnZSwgJ1wwJywg c2l6ZW9mKGltYWdlKSk7CiAKICAgICAvLyBUcnkgdG8gbWF0Y2ggUFBDIE5WUkFNCi0gICAgc3Ry Y3B5KChjaGFyICopaGVhZGVyLT5zdHJ1Y3RfaWRlbnQsICJRRU1VX0JJT1MiKTsKKyAgICBwc3Ry Y3B5KChjaGFyICopaGVhZGVyLT5zdHJ1Y3RfaWRlbnQsIHNpemVvZihoZWFkZXItPnN0cnVjdF9p ZGVudCksCisgICAgICAgICAgICAiUUVNVV9CSU9TIik7CiAgICAgaGVhZGVyLT5zdHJ1Y3RfdmVy c2lvbiA9IGNwdV90b19iZTMyKDMpOyAvKiBzdHJ1Y3R1cmUgdjMgKi8KIAogICAgIGhlYWRlci0+ bnZyYW1fc2l6ZSA9IGNwdV90b19iZTE2KDB4MjAwMCk7CiAgICAgaGVhZGVyLT5udnJhbV9hcmNo X3B0ciA9IGNwdV90b19iZTE2KHNpemVvZihvaHdjZmdfdjNfdCkpOwogICAgIGhlYWRlci0+bnZy YW1fYXJjaF9zaXplID0gY3B1X3RvX2JlMTYoc2l6ZW9mKHN0cnVjdCBzcGFyY19hcmNoX2NmZykp OwotICAgIHN0cmNweSgoY2hhciAqKWhlYWRlci0+YXJjaCwgYXJjaCk7CisgICAgcHN0cmNweSgo Y2hhciAqKWhlYWRlci0+YXJjaCwgc2l6ZW9mKGhlYWRlci0+YXJjaCksIGFyY2gpOwogICAgIGhl YWRlci0+bmJfY3B1cyA9IHNtcF9jcHVzICYgMHhmZjsKICAgICBoZWFkZXItPlJBTTBfYmFzZSA9 IDA7CiAgICAgaGVhZGVyLT5SQU0wX3NpemUgPSBjcHVfdG9fYmU2NCgodWludDY0X3QpUkFNX3Np emUpOwotICAgIHN0cmNweSgoY2hhciAqKWhlYWRlci0+Ym9vdF9kZXZpY2VzLCBib290X2Rldmlj ZXMpOworICAgIHBzdHJjcHkoKGNoYXIgKiloZWFkZXItPmJvb3RfZGV2aWNlcywgc2l6ZW9mKGhl YWRlci0+Ym9vdF9kZXZpY2VzKSwKKyAgICAgICAgICAgIGJvb3RfZGV2aWNlcyk7CiAgICAgaGVh ZGVyLT5uYm9vdF9kZXZpY2VzID0gc3RybGVuKGJvb3RfZGV2aWNlcykgJiAweGZmOwogICAgIGhl YWRlci0+a2VybmVsX2ltYWdlID0gY3B1X3RvX2JlNjQoKHVpbnQ2NF90KUtFUk5FTF9MT0FEX0FE RFIpOwogICAgIGhlYWRlci0+a2VybmVsX3NpemUgPSBjcHVfdG9fYmU2NCgodWludDY0X3Qpa2Vy bmVsX3NpemUpOwpAQCAtMjI1LDcgKzIyOCw3IEBACiAgICAgLy8gVmFyaWFibGUgcGFydGl0aW9u CiAgICAgcGFydF9oZWFkZXIgPSAoc3RydWN0IE9wZW5CSU9TX252cGFydF92MSAqKSZpbWFnZVtz dGFydF07CiAgICAgcGFydF9oZWFkZXItPnNpZ25hdHVyZSA9IE9QRU5CSU9TX1BBUlRfU1lTVEVN OwotICAgIHN0cmNweShwYXJ0X2hlYWRlci0+bmFtZSwgInN5c3RlbSIpOworICAgIHBzdHJjcHko cGFydF9oZWFkZXItPm5hbWUsIHNpemVvZihwYXJ0X2hlYWRlci0+bmFtZSksICJzeXN0ZW0iKTsK IAogICAgIGVuZCA9IHN0YXJ0ICsgc2l6ZW9mKHN0cnVjdCBPcGVuQklPU19udnBhcnRfdjEpOwog ICAgIGZvciAoaSA9IDA7IGkgPCBuYl9wcm9tX2VudnM7IGkrKykKQEAgLTI0MSw3ICsyNDQsNyBA QAogICAgIHN0YXJ0ID0gZW5kOwogICAgIHBhcnRfaGVhZGVyID0gKHN0cnVjdCBPcGVuQklPU19u dnBhcnRfdjEgKikmaW1hZ2Vbc3RhcnRdOwogICAgIHBhcnRfaGVhZGVyLT5zaWduYXR1cmUgPSBP UEVOQklPU19QQVJUX0ZSRUU7Ci0gICAgc3RyY3B5KHBhcnRfaGVhZGVyLT5uYW1lLCAiZnJlZSIp OworICAgIHBzdHJjcHkocGFydF9oZWFkZXItPm5hbWUsIHNpemVvZihwYXJ0X2hlYWRlci0+bmFt ZSksICJmcmVlIik7CiAKICAgICBlbmQgPSAweDFmZDA7CiAgICAgT3BlbkJJT1NfZmluaXNoX3Bh cnRpdGlvbihwYXJ0X2hlYWRlciwgZW5kIC0gc3RhcnQpOwpJbmRleDogcWVtdS9zbGlycC9taXNj LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3NsaXJwL21pc2MuYwkyMDA4LTA4LTE1IDE4OjMx OjA0LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9zbGlycC9taXNjLmMJMjAwOC0wOC0xNSAxOToz MTozNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTQxNyw4ICs0MTcsOSBAQAogCQkgIHsKIAkJCSAgY2hh ciBidWZmWzI1Nl07CiAKLQkJCSAgc3ByaW50ZihidWZmLCAiRXJyb3I6IGV4ZWN2cCBvZiAlcyBm YWlsZWQ6ICVzXG4iLAotCQkJCSAgYXJndlswXSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCSAgc25w cmludGYoYnVmZiwgc2l6ZW9mKGJ1ZmYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRXJyb3I6IGV4ZWN2cCBvZiAlcyBmYWlsZWQ6ICVzXG4iLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhcmd2WzBdLCBzdHJlcnJvcihlcnJubykpOwogCQkJICB3cml0 ZSgyLCBidWZmLCBzdHJsZW4oYnVmZikrMSk7CiAJCSAgfQogCQljbG9zZSgwKTsgY2xvc2UoMSk7 IGNsb3NlKDIpOyAvKiBYWFggKi8KSW5kZXg6IHFlbXUvc2xpcnAvdGNwX3N1YnIuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBxZW11Lm9yaWcvc2xpcnAvdGNwX3N1YnIuYwkyMDA4LTA4LTE1IDE4OjMxOjA0LjAw MDAwMDAwMCArMDAwMAorKysgcWVtdS9zbGlycC90Y3Bfc3Vici5jCTIwMDgtMDgtMTUgMTk6MzE6 MzYuMDAwMDAwMDAwICswMDAwCkBAIC02MjksNyArNjI5LDcgQEAKIAlzdHJ1Y3QgbWJ1ZiAqbTsK IHsKIAl1X2ludCBuMSwgbjIsIG4zLCBuNCwgbjUsIG42OwotCWNoYXIgYnVmZlsyNTZdOworICAg ICAgICBjaGFyIGJ1ZmZbMjU3XTsKIAl1X2ludDMyX3QgbGFkZHI7CiAJdV9pbnQgbHBvcnQ7CiAJ Y2hhciAqYnB0cjsKQEAgLTY3Myw3ICs2NzMsOSBAQAogCQkJCQkJfQogCQkJCQl9CiAJCQkJfQot CQkJCXNvX3Jjdi0+c2JfY2MgPSBzcHJpbnRmKHNvX3Jjdi0+c2JfZGF0YSwgIiVkLCVkXHJcbiIs IG4xLCBuMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvX3Jjdi0+c2JfY2Mg PSBzbnByaW50Zihzb19yY3YtPnNiX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb19yY3YtPnNiX2RhdGFsZW4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJWQsJWRc clxuIiwgbjEsIG4yKTsKIAkJCQlzb19yY3YtPnNiX3JwdHIgPSBzb19yY3YtPnNiX2RhdGE7CiAJ CQkJc29fcmN2LT5zYl93cHRyID0gc29fcmN2LT5zYl9kYXRhICsgc29fcmN2LT5zYl9jYzsKIAkJ CX0KQEAgLTEwMDcsOCArMTAwOSw5IEBACiAJCQluNCA9ICAobGFkZHIgJiAweGZmKTsKIAogCQkJ bS0+bV9sZW4gPSBicHRyIC0gbS0+bV9kYXRhOyAvKiBBZGp1c3QgbGVuZ3RoICovCi0JCQltLT5t X2xlbiArPSBzcHJpbnRmKGJwdHIsIk9SVCAlZCwlZCwlZCwlZCwlZCwlZFxyXG4lcyIsCi0JCQkJ CSAgICBuMSwgbjIsIG4zLCBuNCwgbjUsIG42LCB4PT03P2J1ZmY6IiIpOworICAgICAgICAgICAg ICAgICAgICAgICAgbS0+bV9sZW4gKz0gc25wcmludGYoYnB0ciwgbS0+bV9oZHIubWhfc2l6ZSAt IG0tPm1fbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ik9SVCAlZCwlZCwlZCwlZCwlZCwlZFxyXG4lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuMSwgbjIsIG4zLCBuNCwgbjUsIG42LCB4PT03P2J1ZmY6IiIp OwogCQkJcmV0dXJuIDE7CiAJCX0gZWxzZSBpZiAoKGJwdHIgPSAoY2hhciAqKXN0cnN0cihtLT5t X2RhdGEsICIyNyBFbnRlcmluZyIpKSAhPSBOVUxMKSB7CiAJCQkvKgpAQCAtMTAzOCw4ICsxMDQx LDkgQEAKIAkJCW40ID0gIChsYWRkciAmIDB4ZmYpOwogCiAJCQltLT5tX2xlbiA9IGJwdHIgLSBt LT5tX2RhdGE7IC8qIEFkanVzdCBsZW5ndGggKi8KLQkJCW0tPm1fbGVuICs9IHNwcmludGYoYnB0 ciwiMjcgRW50ZXJpbmcgUGFzc2l2ZSBNb2RlICglZCwlZCwlZCwlZCwlZCwlZClcclxuJXMiLAot CQkJCQkgICAgbjEsIG4yLCBuMywgbjQsIG41LCBuNiwgeD09Nz9idWZmOiIiKTsKKwkJCW0tPm1f bGVuICs9IHNucHJpbnRmKGJwdHIsIG0tPm1faGRyLm1oX3NpemUgLSBtLT5tX2xlbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyNyBFbnRlcmluZyBQYXNz aXZlIE1vZGUgKCVkLCVkLCVkLCVkLCVkLCVkKVxyXG4lcyIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuMSwgbjIsIG4zLCBuNCwgbjUsIG42LCB4PT03P2J1 ZmY6IiIpOwogCiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtMTA2Miw3ICsxMDY2LDggQEAKIAkJfQog CQlpZiAobS0+bV9kYXRhW20tPm1fbGVuLTFdID09ICdcMCcgJiYgbHBvcnQgIT0gMCAmJgogCQkg ICAgKHNvID0gc29saXN0ZW4oMCwgc28tPnNvX2xhZGRyLnNfYWRkciwgaHRvbnMobHBvcnQpLCBT U19GQUNDRVBUT05DRSkpICE9IE5VTEwpCi0JCQltLT5tX2xlbiA9IHNwcmludGYobS0+bV9kYXRh LCAiJWQiLCBudG9ocyhzby0+c29fZnBvcnQpKSsxOworICAgICAgICAgICAgICAgICAgICBtLT5t X2xlbiA9IHNucHJpbnRmKG0tPm1fZGF0YSwgbS0+bV9oZHIubWhfc2l6ZSwgIiVkIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudG9ocyhzby0+c29fZnBvcnQpKSAr IDE7CiAJCXJldHVybiAxOwogCiAJIGNhc2UgRU1VX0lSQzoKQEAgLTEwNzksMjUgKzEwODQsMjgg QEAKIAkJCQlyZXR1cm4gMTsKIAogCQkJbS0+bV9sZW4gPSBicHRyIC0gbS0+bV9kYXRhOyAvKiBB ZGp1c3QgbGVuZ3RoICovCi0JCQltLT5tX2xlbiArPSBzcHJpbnRmKGJwdHIsICJEQ0MgQ0hBVCBj aGF0ICVsdSAldSVjXG4iLAotCQkJICAgICAodW5zaWduZWQgbG9uZyludG9obChzby0+c29fZmFk ZHIuc19hZGRyKSwKLQkJCSAgICAgbnRvaHMoc28tPnNvX2Zwb3J0KSwgMSk7CisgICAgICAgICAg ICAgICAgICAgICAgICBtLT5tX2xlbiArPSBzbnByaW50ZihicHRyLCBtLT5tX2hkci5taF9zaXpl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRDQyBDSEFU IGNoYXQgJWx1ICV1JWNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodW5zaWduZWQgbG9uZyludG9obChzby0+c29fZmFkZHIuc19hZGRyKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG50b2hzKHNvLT5zb19mcG9y dCksIDEpOwogCQl9IGVsc2UgaWYgKHNzY2FuZihicHRyLCAiRENDIFNFTkQgJTI1NnMgJXUgJXUg JXUiLCBidWZmLCAmbGFkZHIsICZscG9ydCwgJm4xKSA9PSA0KSB7CiAJCQlpZiAoKHNvID0gc29s aXN0ZW4oMCwgaHRvbmwobGFkZHIpLCBodG9ucyhscG9ydCksIFNTX0ZBQ0NFUFRPTkNFKSkgPT0g TlVMTCkKIAkJCQlyZXR1cm4gMTsKIAogCQkJbS0+bV9sZW4gPSBicHRyIC0gbS0+bV9kYXRhOyAv KiBBZGp1c3QgbGVuZ3RoICovCi0JCQltLT5tX2xlbiArPSBzcHJpbnRmKGJwdHIsICJEQ0MgU0VO RCAlcyAlbHUgJXUgJXUlY1xuIiwKLQkJCSAgICAgIGJ1ZmYsICh1bnNpZ25lZCBsb25nKW50b2hs KHNvLT5zb19mYWRkci5zX2FkZHIpLAotCQkJICAgICAgbnRvaHMoc28tPnNvX2Zwb3J0KSwgbjEs IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbS0+bV9sZW4gKz0gc25wcmludGYoYnB0ciwg bS0+bV9oZHIubWhfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJEQ0MgU0VORCAlcyAlbHUgJXUgJXUlY1xuIiwgYnVmZiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKW50b2hsKHNvLT5z b19mYWRkci5zX2FkZHIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbnRvaHMoc28tPnNvX2Zwb3J0KSwgbjEsIDEpOwogCQl9IGVsc2UgaWYgKHNzY2FuZihi cHRyLCAiRENDIE1PVkUgJTI1NnMgJXUgJXUgJXUiLCBidWZmLCAmbGFkZHIsICZscG9ydCwgJm4x KSA9PSA0KSB7CiAJCQlpZiAoKHNvID0gc29saXN0ZW4oMCwgaHRvbmwobGFkZHIpLCBodG9ucyhs cG9ydCksIFNTX0ZBQ0NFUFRPTkNFKSkgPT0gTlVMTCkKIAkJCQlyZXR1cm4gMTsKIAogCQkJbS0+ bV9sZW4gPSBicHRyIC0gbS0+bV9kYXRhOyAvKiBBZGp1c3QgbGVuZ3RoICovCi0JCQltLT5tX2xl biArPSBzcHJpbnRmKGJwdHIsICJEQ0MgTU9WRSAlcyAlbHUgJXUgJXUlY1xuIiwKLQkJCSAgICAg IGJ1ZmYsICh1bnNpZ25lZCBsb25nKW50b2hsKHNvLT5zb19mYWRkci5zX2FkZHIpLAotCQkJICAg ICAgbnRvaHMoc28tPnNvX2Zwb3J0KSwgbjEsIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg bS0+bV9sZW4gKz0gc25wcmludGYoYnB0ciwgbS0+bV9oZHIubWhfc2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEQ0MgTU9WRSAlcyAlbHUgJXUgJXUl Y1xuIiwgYnVmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh1bnNpZ25lZCBsb25nKW50b2hsKHNvLT5zb19mYWRkci5zX2FkZHIpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnRvaHMoc28tPnNvX2Zwb3J0KSwgbjEs IDEpOwogCQl9CiAJCXJldHVybiAxOwogCkBAIC0xMjg1LDggKzEyOTMsOCBAQAogCiAJCS8qIEZB TExUSFJPVUdIICovCiAJY2FzZSBDVExfQUxJQVM6Ci0JICBzYi0+c2JfY2MgPSBzcHJpbnRmKHNi LT5zYl93cHRyLAotCQkJICAgICAgIkVycm9yOiBObyBhcHBsaWNhdGlvbiBjb25maWd1cmVkLlxy XG4iKTsKKyAgICAgICAgICBzYi0+c2JfY2MgPSBzbnByaW50ZihzYi0+c2Jfd3B0ciwgc2ItPnNi X2RhdGFsZW4gLSAoc2ItPnNiX3dwdHIgLSBzYi0+c2JfZGF0YSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkVycm9yOiBObyBhcHBsaWNhdGlvbiBjb25maWd1cmVkLlxyXG4iKTsK IAkgIHNiLT5zYl93cHRyICs9IHNiLT5zYl9jYzsKIAkgIHJldHVybigwKTsKIApJbmRleDogcWVt dS9ibG9jay12bWRrLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2Jsb2NrLXZtZGsuYwkyMDA4 LTA4LTE1IDE4OjMxOjA0LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ibG9jay12bWRrLmMJMjAw OC0wOC0xNSAxOTozMTozNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE1MywxMSArMTUzLDExIEBACiAg ICAgICAgIHJldHVybiAtMTsKIAogICAgIHRtcF9zdHIgPSBzdHJzdHIoZGVzYywicGFyZW50Q0lE Iik7Ci0gICAgc3RyY3B5KHRtcF9kZXNjLCB0bXBfc3RyKTsKKyAgICBwc3RyY3B5KHRtcF9kZXNj LCBzaXplb2YodG1wX2Rlc2MpLCB0bXBfc3RyKTsKICAgICBpZiAoKHBfbmFtZSA9IHN0cnN0cihk ZXNjLCJDSUQiKSkgIT0gMCkgewogICAgICAgICBwX25hbWUgKz0gc2l6ZW9mKCJDSUQiKTsKLSAg ICAgICAgc3ByaW50ZihwX25hbWUsIiV4XG4iLGNpZCk7Ci0gICAgICAgIHN0cmNhdChkZXNjLHRt cF9kZXNjKTsKKyAgICAgICAgc25wcmludGYocF9uYW1lLCBzaXplb2YoZGVzYykgLSAocF9uYW1l IC0gZGVzYyksICIleFxuIiwgY2lkKTsKKyAgICAgICAgcHN0cmNhdChkZXNjLCBzaXplb2YoZGVz YyksIHRtcF9kZXNjKTsKICAgICB9CiAKICAgICBpZiAoYmRydl9wd3JpdGUocy0+aGQsIDB4MjAw LCBkZXNjLCBERVNDX1NJWkUpICE9IERFU0NfU0laRSkKQEAgLTI1Miw4ICsyNTIsOCBAQAogICAg IGlmICgodGVtcF9zdHIgPSBzdHJyY2hyKHJlYWxfZmlsZW5hbWUsICc6JykpICE9IE5VTEwpCiAg ICAgICAgIHJlYWxfZmlsZW5hbWUgPSB0ZW1wX3N0ciArIDE7CiAKLSAgICBzcHJpbnRmKHNfZGVz YywgZGVzY190ZW1wbGF0ZSwgcF9jaWQsIHBfY2lkLCBiYWNraW5nX2ZpbGUKLSAgICAgICAgICAg ICwgKHVpbnQzMl90KWhlYWRlci5jYXBhY2l0eSwgcmVhbF9maWxlbmFtZSk7CisgICAgc25wcmlu dGYoc19kZXNjLCBzaXplb2Yoc19kZXNjKSwgZGVzY190ZW1wbGF0ZSwgcF9jaWQsIHBfY2lkLCBi YWNraW5nX2ZpbGUsCisgICAgICAgICAgICAgKHVpbnQzMl90KWhlYWRlci5jYXBhY2l0eSwgcmVh bF9maWxlbmFtZSk7CiAKICAgICAvKiB3cml0ZSB0aGUgZGVzY3JpcHRvciAqLwogICAgIGlmIChs c2VlayhzbnBfZmQsIDB4MjAwLCBTRUVLX1NFVCkgPT0gLTEpCkBAIC0zNDksNyArMzQ5LDggQEAK ICAgICAgICAgICAgIHBhdGhfY29tYmluZShwYXJlbnRfaW1nX25hbWUsIHNpemVvZihwYXJlbnRf aW1nX25hbWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBzLT5oZC0+YmFj a2luZ19maWxlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHN0cmNweShwYXJlbnRf aW1nX25hbWUsIHMtPmhkLT5iYWNraW5nX2ZpbGUpOworICAgICAgICAgICAgcHN0cmNweShwYXJl bnRfaW1nX25hbWUsIHNpemVvZihwYXJlbnRfaW1nX25hbWUpLAorICAgICAgICAgICAgICAgICAg ICBzLT5oZC0+YmFja2luZ19maWxlKTsKICAgICAgICAgfQogCiAgICAgICAgIHMtPmhkLT5iYWNr aW5nX2hkID0gYmRydl9uZXcoIiIpOwpAQCAtNzkxLDggKzc5Miw4IEBACiAgICAgICAgIHJlYWxf ZmlsZW5hbWUgPSB0ZW1wX3N0ciArIDE7CiAgICAgaWYgKCh0ZW1wX3N0ciA9IHN0cnJjaHIocmVh bF9maWxlbmFtZSwgJzonKSkgIT0gTlVMTCkKICAgICAgICAgcmVhbF9maWxlbmFtZSA9IHRlbXBf c3RyICsgMTsKLSAgICBzcHJpbnRmKGRlc2MsIGRlc2NfdGVtcGxhdGUsIHRpbWUoTlVMTCksICh1 bnNpZ25lZCBsb25nKXRvdGFsX3NpemUsCi0gICAgICAgICAgICByZWFsX2ZpbGVuYW1lLCAoZmxh Z3MgJiBCTE9DS19GTEFHX0NPTVBBVDYgPyA2IDogNCksIHRvdGFsX3NpemUgLyAoNjMgKiAxNikp OworICAgIHNucHJpbnRmKGRlc2MsIHNpemVvZihkZXNjKSwgZGVzY190ZW1wbGF0ZSwgdGltZShO VUxMKSwgKHVuc2lnbmVkIGxvbmcpdG90YWxfc2l6ZSwKKyAgICAgICAgICAgICByZWFsX2ZpbGVu YW1lLCAoZmxhZ3MgJiBCTE9DS19GTEFHX0NPTVBBVDYgPyA2IDogNCksIHRvdGFsX3NpemUgLyAo NjMgKiAxNikpOwogCiAgICAgLyogd3JpdGUgdGhlIGRlc2NyaXB0b3IgKi8KICAgICBsc2Vlayhm ZCwgbGU2NF90b19jcHUoaGVhZGVyLmRlc2Nfb2Zmc2V0KSA8PCA5LCBTRUVLX1NFVCk7CkluZGV4 OiBxZW11L3FlbXUtbWFsbG9jLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3FlbXUtbWFsbG9j LmMJMjAwOC0wOC0xNSAxODozMTowNC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvcWVtdS1tYWxs b2MuYwkyMDA4LTA4LTE1IDE5OjMxOjM2LjAwMDAwMDAwMCArMDAwMApAQCAtNTYsOSArNTYsMTAg QEAKIGNoYXIgKnFlbXVfc3RyZHVwKGNvbnN0IGNoYXIgKnN0cikKIHsKICAgICBjaGFyICpwdHI7 Ci0gICAgcHRyID0gcWVtdV9tYWxsb2Moc3RybGVuKHN0cikgKyAxKTsKKyAgICBzaXplX3QgbGVu ID0gc3RybGVuKHN0cik7CisgICAgcHRyID0gcWVtdV9tYWxsb2MobGVuICsgMSk7CiAgICAgaWYg KCFwdHIpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHN0cmNweShwdHIsIHN0cik7CisgICAg cHN0cmNweShwdHIsIGxlbiwgc3RyKTsKICAgICByZXR1cm4gcHRyOwogfQpJbmRleDogcWVtdS9i bG9jay12dmZhdC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ibG9jay12dmZhdC5jCTIwMDgt MDgtMTUgMTg6MzE6MDQuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2Jsb2NrLXZ2ZmF0LmMJMjAw OC0wOC0xNSAxOTozMTozNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3MzMsNyArMTczMyw3IEBACiAg ICAgY2hhciBwYXRoMltQQVRIX01BWF07CiAKICAgICBhc3NlcnQocGF0aF9sZW4gPCBQQVRIX01B WCk7IC8qIGxlbiB3YXMgdGVzdGVkIGJlZm9yZSEgKi8KLSAgICBzdHJjcHkocGF0aDIsIHBhdGgp OworICAgIHBzdHJjcHkocGF0aDIsIHNpemVvZihwYXRoMiksIHBhdGgpOwogICAgIHBhdGgyW3Bh dGhfbGVuXSA9ICcvJzsKICAgICBwYXRoMltwYXRoX2xlbiArIDFdID0gJ1wwJzsKIApAQCAtMTgw Nyw3ICsxODA3LDggQEAKIAkJZnByaW50ZihzdGRlcnIsICJOYW1lIHRvbyBsb25nOiAlcy8lc1xu IiwgcGF0aCwgbGZuLm5hbWUpOwogCQlnb3RvIGZhaWw7CiAJICAgIH0KLQkgICAgc3RyY3B5KHBh dGgyICsgcGF0aF9sZW4gKyAxLCAoY2hhciopbGZuLm5hbWUpOworICAgICAgICAgICAgcHN0cmNw eShwYXRoMiArIHBhdGhfbGVuICsgMSwgc2l6ZW9mKHBhdGgyKSAtIHBhdGhfbGVuIC0gMSwKKyAg ICAgICAgICAgICAgICAgICAgKGNoYXIqKWxmbi5uYW1lKTsKIAogCSAgICBpZiAoaXNfZGlyZWN0 b3J5KGRpcmVudHJpZXMgKyBpKSkgewogCQlpZiAoYmVnaW5fb2ZfZGlyZW50cnkoZGlyZW50cmll cyArIGkpID09IDApIHsKQEAgLTIzNzIsOCArMjM3Myw5IEBACiAKIAkJCSAgICBhc3NlcnQoIXN0 cm5jbXAobS0+cGF0aCwgbWFwcGluZy0+cGF0aCwgbDIpKTsKIAotCQkJICAgIHN0cmNweShuZXdf cGF0aCwgbWFwcGluZy0+cGF0aCk7Ci0JCQkgICAgc3RyY3B5KG5ld19wYXRoICsgbDEsIG0tPnBh dGggKyBsMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHN0cmNweShuZXdfcGF0aCwg bCArIGRpZmYgKyAxLCBtYXBwaW5nLT5wYXRoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwc3RyY3B5KG5ld19wYXRoICsgbDEsIGwgKyBkaWZmICsgMSAtIGwxLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbS0+cGF0aCArIGwyKTsKIAogCQkJICAgIHNjaGVkdWxl X3JlbmFtZShzLCBtLT5iZWdpbiwgbmV3X3BhdGgpOwogCQkJfQpJbmRleDogcWVtdS9ody9zdW40 dS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9zdW40dS5jCTIwMDgtMDgtMTUgMTg6MzE6 MDQuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3N1bjR1LmMJMjAwOC0wOC0xNSAxOTozMToz Ni4wMDAwMDAwMDAgKzAwMDAKQEAgLTgyLDcgKzgyLDggQEAKICAgICBmb3IgKGkgPSAwOyBpIDwg c2l6ZW9mKGltYWdlKTsgaSsrKQogICAgICAgICBpbWFnZVtpXSA9IG00OHQ1OV9yZWFkKG52cmFt LCBpKSAmIDB4ZmY7CiAKLSAgICBzdHJjcHkoKGNoYXIgKiloZWFkZXItPmJvb3RfZGV2aWNlcywg Ym9vdF9kZXZpY2UpOworICAgIHBzdHJjcHkoKGNoYXIgKiloZWFkZXItPmJvb3RfZGV2aWNlcywg c2l6ZW9mKGhlYWRlci0+Ym9vdF9kZXZpY2VzKSwKKyAgICAgICAgICAgIGJvb3RfZGV2aWNlKTsK ICAgICBoZWFkZXItPm5ib290X2RldmljZXMgPSBzdHJsZW4oYm9vdF9kZXZpY2UpICYgMHhmZjsK ICAgICBoZWFkZXItPmNyYyA9IGNwdV90b19iZTE2KE9IV19jb21wdXRlX2NyYyhoZWFkZXIsIDB4 MDAsIDB4RjgpKTsKIApAQCAtMTE1LDE3ICsxMTYsMTkgQEAKICAgICBtZW1zZXQoaW1hZ2UsICdc MCcsIHNpemVvZihpbWFnZSkpOwogCiAgICAgLy8gVHJ5IHRvIG1hdGNoIFBQQyBOVlJBTQotICAg IHN0cmNweSgoY2hhciAqKWhlYWRlci0+c3RydWN0X2lkZW50LCAiUUVNVV9CSU9TIik7CisgICAg cHN0cmNweSgoY2hhciAqKWhlYWRlci0+c3RydWN0X2lkZW50LCBzaXplb2YoaGVhZGVyLT5zdHJ1 Y3RfaWRlbnQpLAorICAgICAgICAgICAgIlFFTVVfQklPUyIpOwogICAgIGhlYWRlci0+c3RydWN0 X3ZlcnNpb24gPSBjcHVfdG9fYmUzMigzKTsgLyogc3RydWN0dXJlIHYzICovCiAKICAgICBoZWFk ZXItPm52cmFtX3NpemUgPSBjcHVfdG9fYmUxNihOVlJBTV9zaXplKTsKICAgICBoZWFkZXItPm52 cmFtX2FyY2hfcHRyID0gY3B1X3RvX2JlMTYoc2l6ZW9mKG9od2NmZ192M190KSk7CiAgICAgaGVh ZGVyLT5udnJhbV9hcmNoX3NpemUgPSBjcHVfdG9fYmUxNihzaXplb2Yoc3RydWN0IHNwYXJjX2Fy Y2hfY2ZnKSk7Ci0gICAgc3RyY3B5KChjaGFyICopaGVhZGVyLT5hcmNoLCBhcmNoKTsKKyAgICBw c3RyY3B5KChjaGFyICopaGVhZGVyLT5hcmNoLCBzaXplb2YoaGVhZGVyLT5hcmNoKSwgYXJjaCk7 CiAgICAgaGVhZGVyLT5uYl9jcHVzID0gc21wX2NwdXMgJiAweGZmOwogICAgIGhlYWRlci0+UkFN MF9iYXNlID0gMDsKICAgICBoZWFkZXItPlJBTTBfc2l6ZSA9IGNwdV90b19iZTY0KCh1aW50NjRf dClSQU1fc2l6ZSk7Ci0gICAgc3RyY3B5KChjaGFyICopaGVhZGVyLT5ib290X2RldmljZXMsIGJv b3RfZGV2aWNlcyk7CisgICAgcHN0cmNweSgoY2hhciAqKWhlYWRlci0+Ym9vdF9kZXZpY2VzLCBz aXplb2YoaGVhZGVyLT5ib290X2RldmljZXMpLAorICAgICAgICAgICAgYm9vdF9kZXZpY2VzKTsK ICAgICBoZWFkZXItPm5ib290X2RldmljZXMgPSBzdHJsZW4oYm9vdF9kZXZpY2VzKSAmIDB4ZmY7 CiAgICAgaGVhZGVyLT5rZXJuZWxfaW1hZ2UgPSBjcHVfdG9fYmU2NCgodWludDY0X3Qpa2VybmVs X2ltYWdlKTsKICAgICBoZWFkZXItPmtlcm5lbF9zaXplID0gY3B1X3RvX2JlNjQoKHVpbnQ2NF90 KWtlcm5lbF9zaXplKTsKQEAgLTE1Niw3ICsxNTksNyBAQAogICAgIC8vIFZhcmlhYmxlIHBhcnRp dGlvbgogICAgIHBhcnRfaGVhZGVyID0gKHN0cnVjdCBPcGVuQklPU19udnBhcnRfdjEgKikmaW1h Z2Vbc3RhcnRdOwogICAgIHBhcnRfaGVhZGVyLT5zaWduYXR1cmUgPSBPUEVOQklPU19QQVJUX1NZ U1RFTTsKLSAgICBzdHJjcHkocGFydF9oZWFkZXItPm5hbWUsICJzeXN0ZW0iKTsKKyAgICBwc3Ry Y3B5KHBhcnRfaGVhZGVyLT5uYW1lLCBzaXplb2YocGFydF9oZWFkZXItPm5hbWUpLCAic3lzdGVt Iik7CiAKICAgICBlbmQgPSBzdGFydCArIHNpemVvZihzdHJ1Y3QgT3BlbkJJT1NfbnZwYXJ0X3Yx KTsKICAgICBmb3IgKGkgPSAwOyBpIDwgbmJfcHJvbV9lbnZzOyBpKyspCkBAIC0xNzIsNyArMTc1 LDcgQEAKICAgICBzdGFydCA9IGVuZDsKICAgICBwYXJ0X2hlYWRlciA9IChzdHJ1Y3QgT3BlbkJJ T1NfbnZwYXJ0X3YxICopJmltYWdlW3N0YXJ0XTsKICAgICBwYXJ0X2hlYWRlci0+c2lnbmF0dXJl ID0gT1BFTkJJT1NfUEFSVF9GUkVFOwotICAgIHN0cmNweShwYXJ0X2hlYWRlci0+bmFtZSwgImZy ZWUiKTsKKyAgICBwc3RyY3B5KHBhcnRfaGVhZGVyLT5uYW1lLCBzaXplb2YocGFydF9oZWFkZXIt Pm5hbWUpLCAiZnJlZSIpOwogCiAgICAgZW5kID0gMHgxZmQwOwogICAgIE9wZW5CSU9TX2Zpbmlz aF9wYXJ0aXRpb24ocGFydF9oZWFkZXIsIGVuZCAtIHN0YXJ0KTsKSW5kZXg6IHFlbXUvaHcvdXNi LW5ldC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody91c2ItbmV0LmMJMjAwOC0wOC0xNSAx ODozMTowNC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvdXNiLW5ldC5jCTIwMDgtMDgtMTUg MTk6MzE6MzYuMDAwMDAwMDAwICswMDAwCkBAIC02MjUsNyArNjI1LDggQEAKIH0gVVNCTmV0U3Rh dGU7CiAKIHN0YXRpYyBpbnQgbmRpc19xdWVyeShVU0JOZXRTdGF0ZSAqcywgdWludDMyX3Qgb2lk LAotICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmluYnVmLCB1bnNpZ25lZCBpbnQgaW5sZW4sIHVp bnQ4X3QgKm91dGJ1ZikKKyAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICppbmJ1ZiwgdW5z aWduZWQgaW50IGlubGVuLCB1aW50OF90ICpvdXRidWYsCisgICAgICAgICAgICAgICAgICAgICAg c2l6ZV90IG91dGxlbikKIHsKICAgICB1bnNpZ25lZCBpbnQgaSwgY291bnQ7CiAKQEAgLTY4MCw3 ICs2ODEsNyBAQAogCiAgICAgLyogbWFuZGF0b3J5ICovCiAgICAgY2FzZSBPSURfR0VOX1ZFTkRP Ul9ERVNDUklQVElPTjoKLSAgICAgICAgc3RyY3B5KG91dGJ1ZiwgIlFFTVUgVVNCIFJORElTIE5l dCIpOworICAgICAgICBwc3RyY3B5KG91dGJ1Ziwgb3V0bGVuLCAiUUVNVSBVU0IgUk5ESVMgTmV0 Iik7CiAgICAgICAgIHJldHVybiBzdHJsZW4ob3V0YnVmKSArIDE7CiAKICAgICBjYXNlIE9JRF9H RU5fVkVORE9SX0RSSVZFUl9WRVJTSU9OOgpAQCAtODgyLDcgKzg4Myw4IEBACiAgICAgICAgIHJl dHVybiBVU0JfUkVUX1NUQUxMOwogCiAgICAgaW5mb2J1ZmxlbiA9IG5kaXNfcXVlcnkocywgbGUz Ml90b19jcHUoYnVmLT5PSUQpLAotICAgICAgICAgICAgICAgICAgICBidWZvZmZzICsgKHVpbnQ4 X3QgKikgYnVmLCBidWZsZW4sIGluZm9idWYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJ1Zm9mZnMgKyAodWludDhfdCAqKSBidWYsIGJ1ZmxlbiwgaW5mb2J1ZiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YoaW5mb2J1ZikpOwogICAgIHJlc3BsZW4gPSBzaXplb2Yo cm5kaXNfcXVlcnlfY21wbHRfdHlwZSkgKwogICAgICAgICAgICAgKChpbmZvYnVmbGVuIDwgMCkg PyAwIDogaW5mb2J1Zmxlbik7CiAgICAgcmVzcCA9IHJuZGlzX3F1ZXVlX3Jlc3BvbnNlKHMsIHJl c3BsZW4pOwpJbmRleDogcWVtdS9ody92Z2EuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcv dmdhLmMJMjAwOC0wOC0xNSAxODozMTowNC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvdmdh LmMJMjAwOC0wOC0xNSAxOTozMTozNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3MjYsNyArMTcyNiw4 IEBACiAgICAgICAgICAgICBpZiAoIWZ1bGxfdXBkYXRlKQogICAgICAgICAgICAgICAgIHJldHVy bjsKIAotICAgICAgICAgICAgc3ByaW50Zihtc2dfYnVmZmVyLCAiJWkgeCAlaSBUZXh0IG1vZGUi LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgIHNucHJpbnRmKG1zZ19idWZmZXIsIHNpemVv Zihtc2dfYnVmZmVyKSwgIiVpIHggJWkgVGV4dCBtb2RlIiwKKyAgICAgICAgICAgICAgICAgICAg IHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtMTc5 OSwxNCArMTgwMCwxNSBAQAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHMtPmdldF9y ZXNvbHV0aW9uKHMsICZ3aWR0aCwgJmhlaWdodCk7Ci0gICAgICAgIHNwcmludGYobXNnX2J1ZmZl ciwgIiVpIHggJWkgR3JhcGhpYyBtb2RlIiwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgIHNucHJp bnRmKG1zZ19idWZmZXIsIHNpemVvZihtc2dfYnVmZmVyKSwgIiVpIHggJWkgR3JhcGhpYyBtb2Rl IiwKKyAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAg IGNhc2UgR01PREVfQkxBTks6CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKCFmdWxsX3VwZGF0 ZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBzcHJpbnRmKG1zZ19idWZmZXIsICJW R0EgQmxhbmsgbW9kZSIpOworICAgICAgICBzbnByaW50Zihtc2dfYnVmZmVyLCBzaXplb2YobXNn X2J1ZmZlciksICJWR0EgQmxhbmsgbW9kZSIpOwogICAgICAgICBicmVhazsKICAgICB9CiAKSW5k ZXg6IHFlbXUvc2xpcnAvdGZ0cC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9zbGlycC90ZnRw LmMJMjAwOC0wOC0xNSAxODozMTowNC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvc2xpcnAvdGZ0 cC5jCTIwMDgtMDgtMTUgMTk6MzE6MzYuMDAwMDAwMDAwICswMDAwCkBAIC0yMyw2ICsyMyw3IEBA CiAgKi8KIAogI2luY2x1ZGUgPHNsaXJwLmg+CisjaW5jbHVkZSAicWVtdS1jb21tb24uaCIgLy8g Zm9yIHBzdHJjcHkKIAogc3RydWN0IHRmdHBfc2Vzc2lvbiB7CiAgICAgaW50IGluX3VzZTsKQEAg LTE0OCw4ICsxNDksOCBAQAogICAgIG0tPm1fZGF0YSArPSBzaXplb2Yoc3RydWN0IHVkcGlwaGRy KTsKIAogICAgIHRwLT50cF9vcCA9IGh0b25zKFRGVFBfT0FDSyk7Ci0gICAgbiArPSBzcHJpbnRm KHRwLT54LnRwX2J1ZiArIG4sICIlcyIsIGtleSkgKyAxOwotICAgIG4gKz0gc3ByaW50Zih0cC0+ eC50cF9idWYgKyBuLCAiJXUiLCB2YWx1ZSkgKyAxOworICAgIG4gKz0gc25wcmludGYodHAtPngu dHBfYnVmICsgbiwgc2l6ZW9mKHRwLT54LnRwX2J1ZikgLSBuLCAiJXMiLCBrZXkpICsgMTsKKyAg ICBuICs9IHNucHJpbnRmKHRwLT54LnRwX2J1ZiArIG4sIHNpemVvZih0cC0+eC50cF9idWYpIC0g biwgIiV1IiwgdmFsdWUpICsgMTsKIAogICAgIHNhZGRyLnNpbl9hZGRyID0gcmVjdl90cC0+aXAu aXBfZHN0OwogICAgIHNhZGRyLnNpbl9wb3J0ID0gcmVjdl90cC0+dWRwLnVoX2Rwb3J0OwpAQCAt MTg5LDcgKzE5MCw3IEBACiAKICAgdHAtPnRwX29wID0gaHRvbnMoVEZUUF9FUlJPUik7CiAgIHRw LT54LnRwX2Vycm9yLnRwX2Vycm9yX2NvZGUgPSBodG9ucyhlcnJvcmNvZGUpOwotICBzdHJjcHko dHAtPngudHBfZXJyb3IudHBfbXNnLCBtc2cpOworICBwc3RyY3B5KHRwLT54LnRwX2Vycm9yLnRw X21zZywgc2l6ZW9mKHRwLT54LnRwX2Vycm9yLnRwX21zZyksIG1zZyk7CiAKICAgc2FkZHIuc2lu X2FkZHIgPSByZWN2X3RwLT5pcC5pcF9kc3Q7CiAgIHNhZGRyLnNpbl9wb3J0ID0gcmVjdl90cC0+ dWRwLnVoX2Rwb3J0Owo= ------=_Part_138575_29710428.1218831626469--