From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KbKD5-0004C5-ES for qemu-devel@nongnu.org; Thu, 04 Sep 2008 15:09:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KbKD3-0004Al-On for qemu-devel@nongnu.org; Thu, 04 Sep 2008 15:09:38 -0400 Received: from [199.232.76.173] (port=54282 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KbKD3-0004Ai-Jn for qemu-devel@nongnu.org; Thu, 04 Sep 2008 15:09:37 -0400 Received: from wf-out-1314.google.com ([209.85.200.173]:51311) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KbKD2-0007x0-Kk for qemu-devel@nongnu.org; Thu, 04 Sep 2008 15:09:37 -0400 Received: by wf-out-1314.google.com with SMTP id 27so78929wfd.4 for ; Thu, 04 Sep 2008 12:09:34 -0700 (PDT) Message-ID: Date: Thu, 4 Sep 2008 22:09:34 +0300 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_57006_20925302.1220555374770" Subject: [Qemu-devel] More gcc -Wflags 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 , Paul Brook ------=_Part_57006_20925302.1220555374770 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline These patches enable gcc warning flags -Wendif-labels, -Wshadow and -Wpointer-arith. The other patches fix some of these warnings. For -Wendif-labels there is nothing to fix, all code is clean. I'd enable this flag. Enabling -Wshadow produces a lot of useless warnings about variables named 'index' etc, so I'm not proposing to add that. I might still fix the warnings for local variables shadowing each other, but maybe it's not worth the trouble and risk for new bugs. Fixes for -Wpointer-arith are not too many, except for ARM devices. Maybe there the use of void * arithmetics is intentional? If Paul agrees that these should be fixed, I could make a patch that removes these warnings too. After that, the flag could be enabled. ------=_Part_57006_20925302.1220555374770 Content-Type: plain/text; name=wpointer_arith.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkpqz3go Content-Disposition: attachment; filename=wpointer_arith.diff SW5kZXg6IHFlbXUvTWFrZWZpbGUudGFyZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9NYWtl ZmlsZS50YXJnZXQJMjAwOC0wOS0wNCAxNzozNDoyMi4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv TWFrZWZpbGUudGFyZ2V0CTIwMDgtMDktMDQgMTc6MzU6MDQuMDAwMDAwMDAwICswMDAwCkBAIC03 Myw3ICs3Myw3IEBACiBQUk9HUz0kKFFFTVVfUFJPRykKIAogIyBXZSByZXF1aXJlIC1PMiB0byBh dm9pZCB0aGUgc3RhY2sgc2V0dXAgcHJvbG9ndWUgaW4gRVhJVF9UQgotT1BfQ0ZMQUdTIDo9IC1X YWxsIC1PMiAtZyAtZm5vLXN0cmljdC1hbGlhc2luZworT1BfQ0ZMQUdTIDo9IC1XYWxsIC1XcG9p bnRlci1hcml0aCAtTzIgLWcgLWZuby1zdHJpY3QtYWxpYXNpbmcKIAogIyBjYy1vcHRpb24KICMg VXNhZ2U6IE9QX0NGTEFHUys9JChjYWxsIGNjLW9wdGlvbiwgLWZhbGlnbi1mdW5jdGlvbnM9MCwg LW1hbGlnbi1mdW5jdGlvbnM9MCkKSW5kZXg6IHFlbXUvY29uZmlndXJlCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHFlbXUub3JpZy9jb25maWd1cmUJMjAwOC0wOS0wNCAxNzozNDoyMi4wMDAwMDAwMDAgKzAwMDAK KysrIHFlbXUvY29uZmlndXJlCTIwMDgtMDktMDQgMTc6MzU6MjAuMDAwMDAwMDAwICswMDAwCkBA IC0zNDYsNyArMzQ2LDcgQEAKIGRvbmUKIAogIyBkZWZhdWx0IGZsYWdzIGZvciBhbGwgaG9zdHMK LUNGTEFHUz0iJENGTEFHUyAtV2FsbCAtTzIgLWcgLWZuby1zdHJpY3QtYWxpYXNpbmciCitDRkxB R1M9IiRDRkxBR1MgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1PMiAtZyAtZm5vLXN0cmljdC1hbGlh c2luZyIKIExERkxBR1M9IiRMREZMQUdTIC1nIgogaWYgdGVzdCAiJHdlcnJvciIgPSAieWVzIiA7 IHRoZW4KIENGTEFHUz0iJENGTEFHUyAtV2Vycm9yIgo= ------=_Part_57006_20925302.1220555374770 Content-Type: plain/text; name=fix_wpointer_arith.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkpqzdr4 Content-Disposition: attachment; filename=fix_wpointer_arith.diff SW5kZXg6IHFlbXUvYmxvY2stdnZmYXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvYmxvY2st dnZmYXQuYwkyMDA4LTA5LTA0IDE4OjA0OjIyLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ibG9j ay12dmZhdC5jCTIwMDgtMDktMDQgMTg6MjA6MTIuMDAwMDAwMDAwICswMDAwCkBAIC0xNTIzLDcg KzE1MjMsNyBAQAogICAgICAgICB1aW50MTZfdCogZW50cnk9KCh1aW50MTZfdCopcy0+ZmF0Mikr Y2x1c3RlcjsKICAgICAgICAgcmV0dXJuIGxlMTZfdG9fY3B1KCplbnRyeSk7CiAgICAgfSBlbHNl IHsKLSAgICAgICAgY29uc3QgdWludDhfdCogeD1zLT5mYXQyK2NsdXN0ZXIqMy8yOworICAgICAg ICBjb25zdCB1aW50OF90KiB4PSgodWludDhfdCopcy0+ZmF0MikrY2x1c3RlciozLzI7CiAgICAg ICAgIHJldHVybiAoKHhbMF18KHhbMV08PDgpKT4+KGNsdXN0ZXImMT80OjApKSYweDBmZmY7CiAg ICAgfQogfQpJbmRleDogcWVtdS9ody9ydGw4MTM5LmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmln L2h3L3J0bDgxMzkuYwkyMDA4LTA5LTA0IDE4OjA2OjQxLjAwMDAwMDAwMCArMDAwMAorKysgcWVt dS9ody9ydGw4MTM5LmMJMjAwOC0wOS0wNCAxODo0MDoxOC4wMDAwMDAwMDAgKzAwMDAKQEAgLTc1 Miw2ICs3NTIsOCBAQAogICAgICAgICAvKiB3cml0ZSBwYWNrZXQgZGF0YSAqLwogICAgICAgICBp ZiAod3JhcHBlZCAmJiAhKHMtPlJ4QnVmZmVyU2l6ZSA8IDY1NTM2ICYmIHJ0bDgxMzlfUnhXcmFw KHMpKSkKICAgICAgICAgeworICAgICAgICAgICAgY29uc3QgdWludDhfdCAqYnVmZmVyOworCiAg ICAgICAgICAgICBERUJVR19QUklOVCgoIj4+PiBSVEw4MTM5OiByeCBwYWNrZXQgd3JhcHBlZCBp biBidWZmZXIgYXQgJWRcbiIsIHNpemUtd3JhcHBlZCkpOwogCiAgICAgICAgICAgICBpZiAoc2l6 ZSA+IHdyYXBwZWQpCkBAIC03NjMsOCArNzY1LDkgQEAKICAgICAgICAgICAgIC8qIHJlc2V0IGJ1 ZmZlciBwb2ludGVyICovCiAgICAgICAgICAgICBzLT5SeEJ1ZkFkZHIgPSAwOwogCisgICAgICAg ICAgICBidWZmZXIgPSBidWY7CiAgICAgICAgICAgICBjcHVfcGh5c2ljYWxfbWVtb3J5X3dyaXRl KCBzLT5SeEJ1ZiArIHMtPlJ4QnVmQWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1ZiArIChzaXplLXdyYXBwZWQpLCB3cmFwcGVkICk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmZmVyW3NpemUtd3JhcHBlZF0sIHdyYXBwZWQg KTsKIAogICAgICAgICAgICAgcy0+UnhCdWZBZGRyID0gd3JhcHBlZDsKIApJbmRleDogcWVtdS9s aW51eC11c2VyL2VsZmxvYWQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvbGludXgtdXNlci9l bGZsb2FkLmMJMjAwOC0wOS0wNCAxODowOToxMS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvbGlu dXgtdXNlci9lbGZsb2FkLmMJMjAwOC0wOS0wNCAxODoxOTozMy4wMDAwMDAwMDAgKzAwMDAKQEAg LTk5MywxMCArOTkzLDEwIEBACiAgICAgc3RydWN0IGVsZl9zaGRyIHNlY2hkciwgc3ltdGFiLCBz dHJ0YWI7CiAgICAgY2hhciAqc3RyaW5nczsKICAgICBzdHJ1Y3Qgc3ltaW5mbyAqczsKKyAgICBz dHJ1Y3QgZWxmX3N5bSAqc3ltczsKICNpZiAoRUxGX0NMQVNTID09IEVMRkNMQVNTNjQpCiAgICAg Ly8gRGlzYXMgdXNlcyAzMiBiaXQgc3ltYm9scwogICAgIHN0cnVjdCBlbGYzMl9zeW0gKnN5bXMz MiA9IE5VTEw7Ci0gICAgc3RydWN0IGVsZl9zeW0gKnN5bTsKICNlbmRpZgogCiAgICAgbHNlZWso ZmQsIGhkci0+ZV9zaG9mZiwgU0VFS19TRVQpOwpAQCAtMTAzNywxOCArMTAzNywxOCBAQAogICAg IGlmIChyZWFkKGZkLCBzLT5kaXNhc19zeW10YWIsIHN5bXRhYi5zaF9zaXplKSAhPSBzeW10YWIu c2hfc2l6ZSkKIAlyZXR1cm47CiAKKyAgICBzeW1zID0gcy0+ZGlzYXNfc3ltdGFiOwogICAgIGZv ciAoaSA9IDA7IGkgPCBzeW10YWIuc2hfc2l6ZSAvIHNpemVvZihzdHJ1Y3QgZWxmX3N5bSk7IGkr KykgewogI2lmZGVmIEJTV0FQX05FRURFRAotCWJzd2FwX3N5bShzLT5kaXNhc19zeW10YWIgKyBz aXplb2Yoc3RydWN0IGVsZl9zeW0pKmkpOworICAgICAgICBic3dhcF9zeW0oJnN5bXNbaV0pOwog I2VuZGlmCiAjaWYgKEVMRl9DTEFTUyA9PSBFTEZDTEFTUzY0KQotICAgICAgICBzeW0gPSBzLT5k aXNhc19zeW10YWIgKyBzaXplb2Yoc3RydWN0IGVsZl9zeW0pKmk7Ci0gICAgICAgIHN5bXMzMltp XS5zdF9uYW1lID0gc3ltLT5zdF9uYW1lOwotICAgICAgICBzeW1zMzJbaV0uc3RfaW5mbyA9IHN5 bS0+c3RfaW5mbzsKLSAgICAgICAgc3ltczMyW2ldLnN0X290aGVyID0gc3ltLT5zdF9vdGhlcjsK LSAgICAgICAgc3ltczMyW2ldLnN0X3NobmR4ID0gc3ltLT5zdF9zaG5keDsKLSAgICAgICAgc3lt czMyW2ldLnN0X3ZhbHVlID0gc3ltLT5zdF92YWx1ZSAmIDB4ZmZmZmZmZmY7Ci0gICAgICAgIHN5 bXMzMltpXS5zdF9zaXplID0gc3ltLT5zdF9zaXplICYgMHhmZmZmZmZmZjsKKyAgICAgICAgc3lt czMyW2ldLnN0X25hbWUgPSBzeW1zW2ldLnN0X25hbWU7CisgICAgICAgIHN5bXMzMltpXS5zdF9p bmZvID0gc3ltc1tpXS5zdF9pbmZvOworICAgICAgICBzeW1zMzJbaV0uc3Rfb3RoZXIgPSBzeW1z W2ldLnN0X290aGVyOworICAgICAgICBzeW1zMzJbaV0uc3Rfc2huZHggPSBzeW1zW2ldLnN0X3No bmR4OworICAgICAgICBzeW1zMzJbaV0uc3RfdmFsdWUgPSBzeW1zW2ldLnN0X3ZhbHVlICYgMHhm ZmZmZmZmZjsKKyAgICAgICAgc3ltczMyW2ldLnN0X3NpemUgPSBzeW1zW2ldLnN0X3NpemUgJiAw eGZmZmZmZmZmOwogI2VuZGlmCiAgICAgfQogCkluZGV4OiBxZW11L25iZC5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHFlbXUub3JpZy9uYmQuYwkyMDA4LTA5LTA0IDE3OjUxOjE0LjAwMDAwMDAwMCArMDAwMAor KysgcWVtdS9uYmQuYwkyMDA4LTA5LTA0IDE4OjIwOjA4LjAwMDAwMDAwMCArMDAwMApAQCAtNzUs MTEgKzc1LDEyIEBACiAKICAgICB3aGlsZSAob2Zmc2V0IDwgc2l6ZSkgewogICAgICAgICBzc2l6 ZV90IGxlbjsKKyAgICAgICAgY2hhciAqYnVmID0gYnVmZmVyOwogCiAgICAgICAgIGlmIChkb19y ZWFkKSB7Ci0gICAgICAgICAgICBsZW4gPSByZWFkKGZkLCBidWZmZXIgKyBvZmZzZXQsIHNpemUg LSBvZmZzZXQpOworICAgICAgICAgICAgbGVuID0gcmVhZChmZCwgJmJ1ZltvZmZzZXRdLCBzaXpl IC0gb2Zmc2V0KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxlbiA9IHdyaXRlKGZk LCBidWZmZXIgKyBvZmZzZXQsIHNpemUgLSBvZmZzZXQpOworICAgICAgICAgICAgbGVuID0gd3Jp dGUoZmQsICZidWZbb2Zmc2V0XSwgc2l6ZSAtIG9mZnNldCk7CiAgICAgICAgIH0KIAogICAgICAg ICAvKiByZWNvdmVyYWJsZSBlcnJvciAqLwpJbmRleDogcWVtdS9ody9wZmxhc2hfY2ZpMDEuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvcGZsYXNoX2NmaTAxLmMJMjAwOC0wOS0wNCAxODoz Mjo1NS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcGZsYXNoX2NmaTAxLmMJMjAwOC0wOS0w NCAxODozNDozNS4wMDAwMDAwMDAgKzAwMDAKQEAgLTE4NSwxMiArMTg1LDE1IEBACiAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBzaXplKQogewogICAgIGludCBvZmZzZXRfZW5kOworICAg IHVpbnQ4X3QgKmJ1ZjsKKwogICAgIGlmIChwZmwtPmJzKSB7CiAgICAgICAgIG9mZnNldF9lbmQg PSBvZmZzZXQgKyBzaXplOwogICAgICAgICAvKiByb3VuZCB0byBzZWN0b3JzICovCiAgICAgICAg IG9mZnNldCA9IG9mZnNldCA+PiA5OwogICAgICAgICBvZmZzZXRfZW5kID0gKG9mZnNldF9lbmQg KyA1MTEpID4+IDk7Ci0gICAgICAgIGJkcnZfd3JpdGUocGZsLT5icywgb2Zmc2V0LCBwZmwtPnN0 b3JhZ2UgKyAob2Zmc2V0IDw8IDkpLAorICAgICAgICBidWYgPSBwZmwtPnN0b3JhZ2U7CisgICAg ICAgIGJkcnZfd3JpdGUocGZsLT5icywgb2Zmc2V0LCAmYnVmW29mZnNldCA8PCA5XSwKICAgICAg ICAgICAgICAgICAgICBvZmZzZXRfZW5kIC0gb2Zmc2V0KTsKICAgICB9CiB9CkluZGV4OiBxZW11 L2h3L3BmbGFzaF9jZmkwMi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wZmxhc2hfY2Zp MDIuYwkyMDA4LTA5LTA0IDE4OjM0OjU0LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9wZmxh c2hfY2ZpMDIuYwkyMDA4LTA5LTA0IDE4OjM1OjMwLjAwMDAwMDAwMCArMDAwMApAQCAtMjE0LDEy ICsyMTQsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUpCiB7CiAgICAg aW50IG9mZnNldF9lbmQ7CisgICAgdWludDhfdCAqYnVmOworCiAgICAgaWYgKHBmbC0+YnMpIHsK ICAgICAgICAgb2Zmc2V0X2VuZCA9IG9mZnNldCArIHNpemU7CiAgICAgICAgIC8qIHJvdW5kIHRv IHNlY3RvcnMgKi8KICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ID4+IDk7CiAgICAgICAgIG9mZnNl dF9lbmQgPSAob2Zmc2V0X2VuZCArIDUxMSkgPj4gOTsKLSAgICAgICAgYmRydl93cml0ZShwZmwt PmJzLCBvZmZzZXQsIHBmbC0+c3RvcmFnZSArIChvZmZzZXQgPDwgOSksCisgICAgICAgIGJ1ZiA9 IHBmbC0+c3RvcmFnZTsKKyAgICAgICAgYmRydl93cml0ZShwZmwtPmJzLCBvZmZzZXQsICZidWZb b2Zmc2V0IDw8IDldLAogICAgICAgICAgICAgICAgICAgIG9mZnNldF9lbmQgLSBvZmZzZXQpOwog ICAgIH0KIH0K ------=_Part_57006_20925302.1220555374770 Content-Type: plain/text; name=wshadow.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkpqzlso Content-Disposition: attachment; filename=wshadow.diff SW5kZXg6IHFlbXUvTWFrZWZpbGUudGFyZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9NYWtl ZmlsZS50YXJnZXQJMjAwOC0wOS0wMyAxNzo1NzoxNC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv TWFrZWZpbGUudGFyZ2V0CTIwMDgtMDktMDQgMTc6MzQ6MTYuMDAwMDAwMDAwICswMDAwCkBAIC03 Myw3ICs3Myw3IEBACiBQUk9HUz0kKFFFTVVfUFJPRykKIAogIyBXZSByZXF1aXJlIC1PMiB0byBh dm9pZCB0aGUgc3RhY2sgc2V0dXAgcHJvbG9ndWUgaW4gRVhJVF9UQgotT1BfQ0ZMQUdTIDo9IC1X YWxsIC1PMiAtZyAtZm5vLXN0cmljdC1hbGlhc2luZworT1BfQ0ZMQUdTIDo9IC1XYWxsIC1XZW5k aWYtbGFiZWxzIC1Xc2hhZG93IC1PMiAtZyAtZm5vLXN0cmljdC1hbGlhc2luZwogCiAjIGNjLW9w dGlvbgogIyBVc2FnZTogT1BfQ0ZMQUdTKz0kKGNhbGwgY2Mtb3B0aW9uLCAtZmFsaWduLWZ1bmN0 aW9ucz0wLCAtbWFsaWduLWZ1bmN0aW9ucz0wKQpJbmRleDogcWVtdS9jb25maWd1cmUKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL2NvbmZpZ3VyZQkyMDA4LTA5LTAzIDE3OjU3OjIwLjAwMDAwMDAw MCArMDAwMAorKysgcWVtdS9jb25maWd1cmUJMjAwOC0wOS0wNCAxNzozNDoxNi4wMDAwMDAwMDAg KzAwMDAKQEAgLTM0Niw3ICszNDYsNyBAQAogZG9uZQogCiAjIGRlZmF1bHQgZmxhZ3MgZm9yIGFs bCBob3N0cwotQ0ZMQUdTPSIkQ0ZMQUdTIC1XYWxsIC1PMiAtZyAtZm5vLXN0cmljdC1hbGlhc2lu ZyIKK0NGTEFHUz0iJENGTEFHUyAtV2FsbCAtV2VuZGlmLWxhYmVscyAtV3NoYWRvdyAtTzIgLWcg LWZuby1zdHJpY3QtYWxpYXNpbmciCiBMREZMQUdTPSIkTERGTEFHUyAtZyIKIGlmIHRlc3QgIiR3 ZXJyb3IiID0gInllcyIgOyB0aGVuCiBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIK ------=_Part_57006_20925302.1220555374770 Content-Type: plain/text; name=fix_wshadow.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkpqzqe5 Content-Disposition: attachment; filename=fix_wshadow.diff SW5kZXg6IHFlbXUvYXVkaW8vYXVkaW8uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvYXVkaW8v YXVkaW8uYwkyMDA4LTA5LTAzIDE4OjQ1OjQ1LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9hdWRp by9hdWRpby5jCTIwMDgtMDktMDMgMTg6NDY6MDEuMDAwMDAwMDAwICswMDAwCkBAIC0xODUwLDcg KzE4NTAsNiBAQAogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgSFdWb2ljZU91dCAqaHc7Ci0g ICAgICAgIENhcHR1cmVWb2ljZU91dCAqY2FwOwogCiAgICAgICAgIGNhcCA9IGF1ZGlvX2NhbGxv YyAoQVVESU9fRlVOQywgMSwgc2l6ZW9mICgqY2FwKSk7CiAgICAgICAgIGlmICghY2FwKSB7Cklu ZGV4OiBxZW11L2F1ZGlvL29zc2F1ZGlvLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2F1ZGlv L29zc2F1ZGlvLmMJMjAwOC0wOS0wMyAxODo0Njo1MS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv YXVkaW8vb3NzYXVkaW8uYwkyMDA4LTA5LTAzIDE4OjQ3OjAwLjAwMDAwMDAwMCArMDAwMApAQCAt NDkyLDcgKzQ5Miw2IEBACiAgICAgICAgICAgICBvc3NfbG9nZXJyIChlcnJubywgIkZhaWxlZCB0 byBtYXAgJWQgYnl0ZXMgb2YgREFDXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgaHctPnNh bXBsZXMgPDwgaHctPmluZm8uc2hpZnQpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg aW50IGVycjsKICAgICAgICAgICAgIGludCB0cmlnID0gMDsKICAgICAgICAgICAgIGlmIChpb2N0 bCAoZmQsIFNORENUTF9EU1BfU0VUVFJJR0dFUiwgJnRyaWcpIDwgMCkgewogICAgICAgICAgICAg ICAgIG9zc19sb2dlcnIgKGVycm5vLCAiU05EQ1RMX0RTUF9TRVRUUklHR0VSIDAgZmFpbGVkXG4i KTsKSW5kZXg6IHFlbXUvYmxvY2stdnZmYXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvYmxv Y2stdnZmYXQuYwkyMDA4LTA5LTAzIDE4OjMyOjEyLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9i bG9jay12dmZhdC5jCTIwMDgtMDktMDMgMTg6NTU6MTYuMDAwMDAwMDAwICswMDAwCkBAIC02NDQs NyArNjQ0LDYgQEAKICAgICAvKiBtYW5nbGUgZHVwbGljYXRlcyAqLwogICAgIHdoaWxlKDEpIHsK IAlkaXJlbnRyeV90KiBlbnRyeTE9YXJyYXlfZ2V0KCYocy0+ZGlyZWN0b3J5KSxkaXJlY3Rvcnlf c3RhcnQpOwotCWludCBqOwogCiAJZm9yKDtlbnRyeTE8ZW50cnk7ZW50cnkxKyspCiAJICAgIGlm KCFpc19sb25nX25hbWUoZW50cnkxKSAmJiAhbWVtY21wKGVudHJ5MS0+bmFtZSxlbnRyeS0+bmFt ZSwxMSkpCkBAIC02NTQsNyArNjUzLDYgQEAKIAogCS8qIHVzZSBhbGwgOCBjaGFyYWN0ZXJzIG9m IG5hbWUgKi8KIAlpZihlbnRyeS0+bmFtZVs3XT09JyAnKSB7Ci0JICAgIGludCBqOwogCSAgICBm b3Ioaj02O2o+MCAmJiBlbnRyeS0+bmFtZVtqXT09JyAnO2otLSkKIAkJZW50cnktPm5hbWVbal09 J34nOwogCX0KQEAgLTY5MSw3ICs2ODksNiBAQAogc3RhdGljIGludCByZWFkX2RpcmVjdG9yeShC RFJWVlZGQVRTdGF0ZSogcywgaW50IG1hcHBpbmdfaW5kZXgpCiB7CiAgICAgbWFwcGluZ190KiBt YXBwaW5nID0gYXJyYXlfZ2V0KCYocy0+bWFwcGluZyksIG1hcHBpbmdfaW5kZXgpOwotICAgIGRp cmVudHJ5X3QqIGRpcmVudHJ5OwogICAgIGNvbnN0IGNoYXIqIGRpcm5hbWUgPSBtYXBwaW5nLT5w YXRoOwogICAgIGludCBmaXJzdF9jbHVzdGVyID0gbWFwcGluZy0+YmVnaW47CiAgICAgaW50IHBh cmVudF9pbmRleCA9IG1hcHBpbmctPmluZm8uZGlyLnBhcmVudF9tYXBwaW5nX2luZGV4OwpAQCAt NzAyLDYgKzY5OSw3IEBACiAgICAgRElSKiBkaXI9b3BlbmRpcihkaXJuYW1lKTsKICAgICBzdHJ1 Y3QgZGlyZW50KiBlbnRyeTsKICAgICBpbnQgaTsKKyAgICBkaXJlbnRyeV90KiBkaXJlbnRyeTsK IAogICAgIGFzc2VydChtYXBwaW5nLT5tb2RlICYgTU9ERV9ESVJFQ1RPUlkpOwogCkBAIC03MTcs NyArNzE1LDYgQEAKICAgICB3aGlsZSgoZW50cnk9cmVhZGRpcihkaXIpKSkgewogCXVuc2lnbmVk IGludCBsZW5ndGg9c3RybGVuKGRpcm5hbWUpKzIrc3RybGVuKGVudHJ5LT5kX25hbWUpOwogICAg ICAgICBjaGFyKiBidWZmZXI7Ci0JZGlyZW50cnlfdCogZGlyZW50cnk7CiAgICAgICAgIHN0cnVj dCBzdGF0IHN0OwogCWludCBpc19kb3Q9IXN0cmNtcChlbnRyeS0+ZF9uYW1lLCIuIik7CiAJaW50 IGlzX2RvdGRvdD0hc3RyY21wKGVudHJ5LT5kX25hbWUsIi4uIik7CkBAIC03ODYsNyArNzgzLDcg QEAKIAogICAgIC8qIGZpbGwgd2l0aCB6ZXJvZXMgdXAgdG8gdGhlIGVuZCBvZiB0aGUgY2x1c3Rl ciAqLwogICAgIHdoaWxlKHMtPmRpcmVjdG9yeS5uZXh0JSgweDEwKnMtPnNlY3RvcnNfcGVyX2Ns dXN0ZXIpKSB7Ci0JZGlyZW50cnlfdCogZGlyZW50cnk9YXJyYXlfZ2V0X25leHQoJihzLT5kaXJl Y3RvcnkpKTsKKwlkaXJlbnRyeT1hcnJheV9nZXRfbmV4dCgmKHMtPmRpcmVjdG9yeSkpOwogCW1l bXNldChkaXJlbnRyeSwwLHNpemVvZihkaXJlbnRyeV90KSk7CiAgICAgfQogCkBAIC0xNjgzLDE3 ICsxNjgwLDE3IEBACiAJCSAqIFRoaXMgaXMgaG9ycmlibHkgaW5lZmZpY2llbnQsIGJ1dCB0aGF0 IGlzIG9rYXksIHNpbmNlCiAJCSAqIGl0IGlzIHJhcmVseSBleGVjdXRlZCwgaWYgYXQgYWxsLgog CQkgKi8KLQkJaW50NjRfdCBvZmZzZXQgPSBjbHVzdGVyMnNlY3RvcihzLCBjbHVzdGVyX251bSk7 CisJCWludDY0X3Qgb2Zmc2V0MiA9IGNsdXN0ZXIyc2VjdG9yKHMsIGNsdXN0ZXJfbnVtKTsKIAog CQl2dmZhdF9jbG9zZV9jdXJyZW50X2ZpbGUocyk7CiAJCWZvciAoaSA9IDA7IGkgPCBzLT5zZWN0 b3JzX3Blcl9jbHVzdGVyOyBpKyspCiAJCSAgICBpZiAoIXMtPnFjb3ctPmRydi0+YmRydl9pc19h bGxvY2F0ZWQocy0+cWNvdywKLQkJCQlvZmZzZXQgKyBpLCAxLCAmZHVtbXkpKSB7CisJCQkJb2Zm c2V0MiArIGksIDEsICZkdW1teSkpIHsKIAkJCWlmICh2dmZhdF9yZWFkKHMtPmJzLAotCQkJCSAg ICBvZmZzZXQsIHMtPmNsdXN0ZXJfYnVmZmVyLCAxKSkKKwkJCQkgICAgb2Zmc2V0Miwgcy0+Y2x1 c3Rlcl9idWZmZXIsIDEpKQogCQkJICAgIHJldHVybiAtMTsKIAkJCWlmIChzLT5xY293LT5kcnYt PmJkcnZfd3JpdGUocy0+cWNvdywKLQkJCQkgICAgb2Zmc2V0LCBzLT5jbHVzdGVyX2J1ZmZlciwg MSkpCisJCQkJICAgIG9mZnNldDIsIHMtPmNsdXN0ZXJfYnVmZmVyLCAxKSkKIAkJCSAgICByZXR1 cm4gLTI7CiAJCSAgICB9CiAJICAgIH0KQEAgLTIxNjgsOCArMjE2NSw4IEBACiAJCWZhY3RvciAq IChvbGRfY2x1c3Rlcl9jb3VudCAtIG5ld19jbHVzdGVyX2NvdW50KSk7CiAKICAgICBmb3IgKGMg PSBmaXJzdF9jbHVzdGVyOyAhZmF0X2VvZihzLCBjKTsgYyA9IG1vZGlmaWVkX2ZhdF9nZXQocywg YykpIHsKLQl2b2lkKiBkaXJlbnRyeSA9IGFycmF5X2dldCgmKHMtPmRpcmVjdG9yeSksIGN1cnJl bnRfZGlyX2luZGV4KTsKLQlpbnQgcmV0ID0gdnZmYXRfcmVhZChzLT5icywgY2x1c3RlcjJzZWN0 b3IocywgYyksIGRpcmVudHJ5LAorCWRpcmVudHJ5ID0gYXJyYXlfZ2V0KCYocy0+ZGlyZWN0b3J5 KSwgY3VycmVudF9kaXJfaW5kZXgpOworCXJldCA9IHZ2ZmF0X3JlYWQocy0+YnMsIGNsdXN0ZXIy c2VjdG9yKHMsIGMpLCBkaXJlbnRyeSwKIAkJcy0+c2VjdG9yc19wZXJfY2x1c3Rlcik7CiAJaWYg KHJldCkKIAkgICAgcmV0dXJuIHJldDsKQEAgLTIzNTgsMTIgKzIzNTUsMTIgQEAKIAkJZGlyZW50 cnlfdCogZGlyZW50cnkgPSBhcnJheV9nZXQoJihzLT5kaXJlY3RvcnkpLAogCQkJbWFwcGluZy0+ aW5mby5kaXIuZmlyc3RfZGlyX2luZGV4KTsKIAkJdWludDMyX3QgYyA9IG1hcHBpbmctPmJlZ2lu OwotCQlpbnQgaSA9IDA7CisJCWludCBkaXJvZmZzZXQgPSAwOwogCiAJCS8qIHJlY3Vyc2UgKi8K IAkJd2hpbGUgKCFmYXRfZW9mKHMsIGMpKSB7CiAJCSAgICBkbyB7Ci0JCQlkaXJlbnRyeV90KiBk ID0gZGlyZW50cnkgKyBpOworCQkJZGlyZW50cnlfdCogZCA9IGRpcmVudHJ5ICsgZGlyb2Zmc2V0 OwogCiAJCQlpZiAoaXNfZmlsZShkKSB8fCAoaXNfZGlyZWN0b3J5KGQpICYmICFpc19kb3QoZCkp KSB7CiAJCQkgICAgbWFwcGluZ190KiBtID0gZmluZF9tYXBwaW5nX2Zvcl9jbHVzdGVyKHMsCkBA IC0yMzc5LDggKzIzNzYsOCBAQAogCiAJCQkgICAgc2NoZWR1bGVfcmVuYW1lKHMsIG0tPmJlZ2lu LCBuZXdfcGF0aCk7CiAJCQl9Ci0JCQlpKys7Ci0JCSAgICB9IHdoaWxlKChpICUgKDB4MTAgKiBz LT5zZWN0b3JzX3Blcl9jbHVzdGVyKSkgIT0gMCk7CisJCQlkaXJvZmZzZXQrKzsKKwkJICAgIH0g d2hpbGUoKGRpcm9mZnNldCAlICgweDEwICogcy0+c2VjdG9yc19wZXJfY2x1c3RlcikpICE9IDAp OwogCQkgICAgYyA9IGZhdF9nZXQocywgYyk7CiAJCX0KIAkgICAgfQpAQCAtMjQ3MSwxNiArMjQ2 OCwxNiBAQAogCSAgICBpbnQgYmVnaW4gPSBjb21taXQtPnBhcmFtLm5ld19maWxlLmZpcnN0X2Ns dXN0ZXI7CiAJICAgIG1hcHBpbmdfdCogbWFwcGluZyA9IGZpbmRfbWFwcGluZ19mb3JfY2x1c3Rl cihzLCBiZWdpbik7CiAJICAgIGRpcmVudHJ5X3QqIGVudHJ5OwotCSAgICBpbnQgaTsKKwkgICAg aW50IGo7CiAKIAkgICAgLyogZmluZCBkaXJlbnRyeSAqLwotCSAgICBmb3IgKGkgPSAwOyBpIDwg cy0+ZGlyZWN0b3J5Lm5leHQ7IGkrKykgewotCQllbnRyeSA9IGFycmF5X2dldCgmKHMtPmRpcmVj dG9yeSksIGkpOworCSAgICBmb3IgKGogPSAwOyBqIDwgcy0+ZGlyZWN0b3J5Lm5leHQ7IGorKykg eworCQllbnRyeSA9IGFycmF5X2dldCgmKHMtPmRpcmVjdG9yeSksIGopOwogCQlpZiAoaXNfZmls ZShlbnRyeSkgJiYgYmVnaW5fb2ZfZGlyZW50cnkoZW50cnkpID09IGJlZ2luKQogCQkgICAgYnJl YWs7CiAJICAgIH0KIAotCSAgICBpZiAoaSA+PSBzLT5kaXJlY3RvcnkubmV4dCkgeworCSAgICBp ZiAoaiA+PSBzLT5kaXJlY3RvcnkubmV4dCkgewogCQlmYWlsID0gLTY7CiAJCWNvbnRpbnVlOwog CSAgICB9CkBAIC0yNTAwLDcgKzI0OTcsNyBAQAogCSAgICBtYXBwaW5nLT5tb2RlID0gTU9ERV9O T1JNQUw7CiAJICAgIG1hcHBpbmctPmluZm8uZmlsZS5vZmZzZXQgPSAwOwogCi0JICAgIGlmIChj b21taXRfb25lX2ZpbGUocywgaSwgMCkpCisJICAgIGlmIChjb21taXRfb25lX2ZpbGUocywgaiwg MCkpCiAJCWZhaWwgPSAtNzsKIAogCSAgICBicmVhazsKSW5kZXg6IHFlbXUvdm5jLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL3ZuYy5jCTIwMDgtMDktMDMgMTg6NTc6MzMuMDAwMDAwMDAwICsw MDAwCisrKyBxZW11L3ZuYy5jCTIwMDgtMDktMDMgMTg6NTk6MjIuMDAwMDAwMDAwICswMDAwCkBA IC03NDUsNyArNzQ1LDYgQEAKIAogICAgIHdoaWxlICh2cy0+cmVhZF9oYW5kbGVyICYmIHZzLT5p bnB1dC5vZmZzZXQgPj0gdnMtPnJlYWRfaGFuZGxlcl9leHBlY3QpIHsKIAlzaXplX3QgbGVuID0g dnMtPnJlYWRfaGFuZGxlcl9leHBlY3Q7Ci0JaW50IHJldDsKIAogCXJldCA9IHZzLT5yZWFkX2hh bmRsZXIodnMsIHZzLT5pbnB1dC5idWZmZXIsIGxlbik7CiAJaWYgKHZzLT5jc29jayA9PSAtMSkK SW5kZXg6IHFlbXUvdGNnL3RjZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90Y2cvdGNnLmMJ MjAwOC0wOS0wMyAxOTowMzoxMC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGNnL3RjZy5jCTIw MDgtMDktMDMgMTk6MDQ6NDQuMDAwMDAwMDAwICswMDAwCkBAIC03NjAsOCArNzYwLDYgQEAKICAg ICAgICAgICAgIG5iX2lhcmdzID0gZGVmLT5uYl9pYXJnczsKICAgICAgICAgICAgIG5iX2Nhcmdz ID0gZGVmLT5uYl9jYXJnczsKICAgICAgICAgfSBlbHNlIGlmIChjID09IElOREVYX29wX2NhbGwp IHsKLSAgICAgICAgICAgIFRDR0FyZyBhcmc7Ci0KICAgICAgICAgICAgIC8qIHZhcmlhYmxlIG51 bWJlciBvZiBhcmd1bWVudHMgKi8KICAgICAgICAgICAgIGFyZyA9ICphcmdzKys7CiAgICAgICAg ICAgICBuYl9vYXJncyA9IGFyZyA+PiAxNjsKSW5kZXg6IHFlbXUvdmwuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBxZW11Lm9yaWcvdmwuYwkyMDA4LTA5LTAzIDE5OjAwOjExLjAwMDAwMDAwMCArMDAwMAorKysg cWVtdS92bC5jCTIwMDgtMDktMDMgMTk6MDI6NDUuMDAwMDAwMDAwICswMDAwCkBAIC04Njg3LDkg Kzg2ODcsOSBAQAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBRRU1V X09QVElPTl9lY2hyOgogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgY2hh ciAqcjsKLSAgICAgICAgICAgICAgICAgICAgdGVybV9lc2NhcGVfY2hhciA9IHN0cnRvbChvcHRh cmcsICZyLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHIgPT0gb3B0YXJnKQorICAgICAg ICAgICAgICAgICAgICBjaGFyICpvcHRwdHI7CisgICAgICAgICAgICAgICAgICAgIHRlcm1fZXNj YXBlX2NoYXIgPSBzdHJ0b2wob3B0YXJnLCAmb3B0cHRyLCAwKTsKKyAgICAgICAgICAgICAgICAg ICAgaWYgKG9wdHB0ciA9PSBvcHRhcmcpCiAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYo IkJhZCBhcmd1bWVudCB0byBlY2hyXG4iKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgICAgICAgICAgfQpJbmRleDogcWVtdS9jcHUtZXhlYy5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFl bXUub3JpZy9jcHUtZXhlYy5jCTIwMDgtMDktMDQgMTU6NDY6NTguMDAwMDAwMDAwICswMDAwCisr KyBxZW11L2NwdS1leGVjLmMJMjAwOC0wOS0wNCAxNTo0NzoyOC4wMDAwMDAwMDAgKzAwMDAKQEAg LTMzNCw3ICszMzQsNiBAQAogICAgICAgICAgICAgfQogI2lmZGVmIFVTRV9LUUVNVQogICAgICAg ICAgICAgaWYgKGtxZW11X2lzX29rKGVudikgJiYgZW52LT5pbnRlcnJ1cHRfcmVxdWVzdCA9PSAw KSB7Ci0gICAgICAgICAgICAgICAgaW50IHJldDsKICAgICAgICAgICAgICAgICBlbnYtPmVmbGFn cyA9IGVudi0+ZWZsYWdzIHwgY2NfdGFibGVbQ0NfT1BdLmNvbXB1dGVfYWxsKCkgfCAoREYgJiBE Rl9NQVNLKTsKICAgICAgICAgICAgICAgICByZXQgPSBrcWVtdV9jcHVfZXhlYyhlbnYpOwogICAg ICAgICAgICAgICAgIC8qIHB1dCBlZmxhZ3MgaW4gQ1BVIHRlbXBvcmFyeSBmb3JtYXQgKi8KSW5k ZXg6IHFlbXUvZXhlYy1hbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvZXhlYy1hbGwuaAky MDA4LTA5LTA0IDE3OjE4OjU2LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9leGVjLWFsbC5oCTIw MDgtMDktMDQgMTc6MTk6NTYuMDAwMDAwMDAwICswMDAwCkBAIC0zNDUsMTYgKzM0NSwxNiBAQAog CiAvKiBEZXRlcm1pbmlzdGljIGV4ZWN1dGlvbiByZXF1aXJlcyB0aGF0IElPIG9ubHkgYmUgcGVy Zm9ybWVkIG9uIHRoZSBsYXN0CiAgICBpbnN0cnVjdGlvbiBvZiBhIFRCIHNvIHRoYXQgaW50ZXJy dXB0cyB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS4gICovCi1zdGF0aWMgaW5saW5lIGludCBjYW5f ZG9faW8oQ1BVU3RhdGUgKmVudikKK3N0YXRpYyBpbmxpbmUgaW50IGNhbl9kb19pbyhDUFVTdGF0 ZSAqZW52MSkKIHsKICAgICBpZiAoIXVzZV9pY291bnQpCiAgICAgICAgIHJldHVybiAxOwogCiAg ICAgLyogSWYgbm90IGV4ZWN1dGluZyBjb2RlIHRoZW4gYXNzdW1lIHdlIGFyZSBvay4gICovCi0g ICAgaWYgKCFlbnYtPmN1cnJlbnRfdGIpCisgICAgaWYgKCFlbnYxLT5jdXJyZW50X3RiKQogICAg ICAgICByZXR1cm4gMTsKIAotICAgIHJldHVybiBlbnYtPmNhbl9kb19pbyAhPSAwOworICAgIHJl dHVybiBlbnYxLT5jYW5fZG9faW8gIT0gMDsKIH0KICNlbmRpZgogCkBAIC0zNzYsMTYgKzM3Niwx NiBAQAogCiBleHRlcm4gdWludDMyX3Qga3FlbXVfY29tbV9iYXNlOwogCi1zdGF0aWMgaW5saW5l IGludCBrcWVtdV9pc19vayhDUFVTdGF0ZSAqZW52KQorc3RhdGljIGlubGluZSBpbnQga3FlbXVf aXNfb2soQ1BVU3RhdGUgKmVudjEpCiB7Ci0gICAgcmV0dXJuKGVudi0+a3FlbXVfZW5hYmxlZCAm JgotICAgICAgICAgICAoZW52LT5jclswXSAmIENSMF9QRV9NQVNLKSAmJgotICAgICAgICAgICAh KGVudi0+aGZsYWdzICYgSEZfSU5ISUJJVF9JUlFfTUFTSykgJiYKLSAgICAgICAgICAgKGVudi0+ ZWZsYWdzICYgSUZfTUFTSykgJiYKLSAgICAgICAgICAgIShlbnYtPmVmbGFncyAmIFZNX01BU0sp ICYmCi0gICAgICAgICAgIChlbnYtPmtxZW11X2VuYWJsZWQgPT0gMiB8fAotICAgICAgICAgICAg KChlbnYtPmhmbGFncyAmIEhGX0NQTF9NQVNLKSA9PSAzICYmCi0gICAgICAgICAgICAgKGVudi0+ ZWZsYWdzICYgSU9QTF9NQVNLKSAhPSBJT1BMX01BU0spKSk7CisgICAgcmV0dXJuKGVudjEtPmtx ZW11X2VuYWJsZWQgJiYKKyAgICAgICAgICAgKGVudjEtPmNyWzBdICYgQ1IwX1BFX01BU0spICYm CisgICAgICAgICAgICEoZW52MS0+aGZsYWdzICYgSEZfSU5ISUJJVF9JUlFfTUFTSykgJiYKKyAg ICAgICAgICAgKGVudjEtPmVmbGFncyAmIElGX01BU0spICYmCisgICAgICAgICAgICEoZW52MS0+ ZWZsYWdzICYgVk1fTUFTSykgJiYKKyAgICAgICAgICAgKGVudjEtPmtxZW11X2VuYWJsZWQgPT0g MiB8fAorICAgICAgICAgICAgKChlbnYxLT5oZmxhZ3MgJiBIRl9DUExfTUFTSykgPT0gMyAmJgor ICAgICAgICAgICAgIChlbnYxLT5lZmxhZ3MgJiBJT1BMX01BU0spICE9IElPUExfTUFTSykpKTsK IH0KIAogI2VuZGlmCkluZGV4OiBxZW11L3RhcmdldC1zcGFyYy9vcF9oZWxwZXIuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LXNwYXJjL29wX2hlbHBlci5jCTIwMDgtMDktMDQgMTc6 MjU6MDMuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1zcGFyYy9vcF9oZWxwZXIuYwky MDA4LTA5LTA0IDE3OjI2OjI3LjAwMDAwMDAwMCArMDAwMApAQCAtMjc5Miw5ICsyNzkyLDkgQEAK IH07CiAjZW5kaWYKIAotdm9pZCBkb19pbnRlcnJ1cHQoQ1BVU3RhdGUgKmVudikKK3ZvaWQgZG9f aW50ZXJydXB0KENQVVN0YXRlICplbnYxKQogewotICAgIGludCBpbnRubyA9IGVudi0+ZXhjZXB0 aW9uX2luZGV4OworICAgIGludCBpbnRubyA9IGVudjEtPmV4Y2VwdGlvbl9pbmRleDsKIAogI2lm ZGVmIERFQlVHX1BDQUxMCiAgICAgaWYgKGxvZ2xldmVsICYgQ1BVX0xPR19JTlQpIHsKQEAgLTI4 MTgsMTYgKzI4MTgsMTYgQEAKICAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiJTZkOiAlcyAodj0l MDR4KSBwYz0lMDE2IiBQUkl4NjQgIiBucGM9JTAxNiIgUFJJeDY0CiAgICAgICAgICAgICAgICAg IiBTUD0lMDE2IiBQUkl4NjQgIlxuIiwKICAgICAgICAgICAgICAgICBjb3VudCwgbmFtZSwgaW50 bm8sCi0gICAgICAgICAgICAgICAgZW52LT5wYywKLSAgICAgICAgICAgICAgICBlbnYtPm5wYywg ZW52LT5yZWd3cHRyWzZdKTsKLSAgICAgICAgY3B1X2R1bXBfc3RhdGUoZW52LCBsb2dmaWxlLCBm cHJpbnRmLCAwKTsKKyAgICAgICAgICAgICAgICBlbnYxLT5wYywKKyAgICAgICAgICAgICAgICBl bnYxLT5ucGMsIGVudjEtPnJlZ3dwdHJbNl0pOworICAgICAgICBjcHVfZHVtcF9zdGF0ZShlbnYx LCBsb2dmaWxlLCBmcHJpbnRmLCAwKTsKICNpZiAwCiAgICAgICAgIHsKICAgICAgICAgICAgIGlu dCBpOwogICAgICAgICAgICAgdWludDhfdCAqcHRyOwogCiAgICAgICAgICAgICBmcHJpbnRmKGxv Z2ZpbGUsICIgICAgICAgY29kZT0iKTsKLSAgICAgICAgICAgIHB0ciA9ICh1aW50OF90ICopZW52 LT5wYzsKKyAgICAgICAgICAgIHB0ciA9ICh1aW50OF90ICopZW52MS0+cGM7CiAgICAgICAgICAg ICBmb3IoaSA9IDA7IGkgPCAxNjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgZnByaW50Zihsb2dm aWxlLCAiICUwMngiLCBsZHViKHB0ciArIGkpKTsKICAgICAgICAgICAgIH0KQEAgLTI4MzgsMjcg KzI4MzgsMjcgQEAKICAgICB9CiAjZW5kaWYKICNpZiAhZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZ KQotICAgIGlmIChlbnYtPnRsID49IGVudi0+bWF4dGwpIHsKLSAgICAgICAgY3B1X2Fib3J0KGVu diwgIlRyYXAgMHglMDR4IHdoaWxlIHRyYXAgbGV2ZWwgKCVkKSA+PSBNQVhUTCAoJWQpLCIKLSAg ICAgICAgICAgICAgICAgICIgRXJyb3Igc3RhdGUiLCBlbnYtPmV4Y2VwdGlvbl9pbmRleCwgZW52 LT50bCwgZW52LT5tYXh0bCk7CisgICAgaWYgKGVudjEtPnRsID49IGVudjEtPm1heHRsKSB7Cisg ICAgICAgIGNwdV9hYm9ydChlbnYxLCAiVHJhcCAweCUwNHggd2hpbGUgdHJhcCBsZXZlbCAoJWQp ID49IE1BWFRMICglZCksIgorICAgICAgICAgICAgICAgICAgIiBFcnJvciBzdGF0ZSIsIGVudjEt PmV4Y2VwdGlvbl9pbmRleCwgZW52MS0+dGwsIGVudjEtPm1heHRsKTsKICAgICAgICAgcmV0dXJu OwogICAgIH0KICNlbmRpZgotICAgIGlmIChlbnYtPnRsIDwgZW52LT5tYXh0bCAtIDEpIHsKLSAg ICAgICAgZW52LT50bCsrOworICAgIGlmIChlbnYxLT50bCA8IGVudjEtPm1heHRsIC0gMSkgewor ICAgICAgICBlbnYxLT50bCsrOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGVudi0+cHN0YXRlIHw9 IFBTX1JFRDsKLSAgICAgICAgaWYgKGVudi0+dGwgPCBlbnYtPm1heHRsKQotICAgICAgICAgICAg ZW52LT50bCsrOworICAgICAgICBlbnYxLT5wc3RhdGUgfD0gUFNfUkVEOworICAgICAgICBpZiAo ZW52MS0+dGwgPCBlbnYxLT5tYXh0bCkKKyAgICAgICAgICAgIGVudjEtPnRsKys7CiAgICAgfQot ICAgIGVudi0+dHNwdHIgPSAmZW52LT50c1tlbnYtPnRsICYgTUFYVExfTUFTS107Ci0gICAgZW52 LT50c3B0ci0+dHN0YXRlID0gKCh1aW50NjRfdClHRVRfQ0NSKGVudikgPDwgMzIpIHwKLSAgICAg ICAgKChlbnYtPmFzaSAmIDB4ZmYpIDw8IDI0KSB8ICgoZW52LT5wc3RhdGUgJiAweGYzZikgPDwg OCkgfAotICAgICAgICBHRVRfQ1dQNjQoZW52KTsKLSAgICBlbnYtPnRzcHRyLT50cGMgPSBlbnYt PnBjOwotICAgIGVudi0+dHNwdHItPnRucGMgPSBlbnYtPm5wYzsKLSAgICBlbnYtPnRzcHRyLT50 dCA9IGludG5vOwotICAgIGlmICghKGVudi0+ZGVmLT5mZWF0dXJlcyAmIENQVV9GRUFUVVJFX0dM KSkgeworICAgIGVudjEtPnRzcHRyID0gJmVudjEtPnRzW2VudjEtPnRsICYgTUFYVExfTUFTS107 CisgICAgZW52MS0+dHNwdHItPnRzdGF0ZSA9ICgodWludDY0X3QpR0VUX0NDUihlbnYxKSA8PCAz MikgfAorICAgICAgICAoKGVudjEtPmFzaSAmIDB4ZmYpIDw8IDI0KSB8ICgoZW52MS0+cHN0YXRl ICYgMHhmM2YpIDw8IDgpIHwKKyAgICAgICAgR0VUX0NXUDY0KGVudjEpOworICAgIGVudjEtPnRz cHRyLT50cGMgPSBlbnYxLT5wYzsKKyAgICBlbnYxLT50c3B0ci0+dG5wYyA9IGVudjEtPm5wYzsK KyAgICBlbnYxLT50c3B0ci0+dHQgPSBpbnRubzsKKyAgICBpZiAoIShlbnYxLT5kZWYtPmZlYXR1 cmVzICYgQ1BVX0ZFQVRVUkVfR0wpKSB7CiAgICAgICAgIHN3aXRjaCAoaW50bm8pIHsKICAgICAg ICAgY2FzZSBUVF9JVkVDOgogICAgICAgICAgICAgY2hhbmdlX3BzdGF0ZShQU19QRUYgfCBQU19Q UklWIHwgUFNfSUcpOwpAQCAtMjg3NiwxNiArMjg3NiwxNiBAQAogICAgICAgICB9CiAgICAgfQog ICAgIGlmIChpbnRubyA9PSBUVF9DTFJXSU4pCi0gICAgICAgIGNwdV9zZXRfY3dwKGVudiwgY3B1 X2N3cF9kZWMoZW52LCBlbnYtPmN3cCAtIDEpKTsKKyAgICAgICAgY3B1X3NldF9jd3AoZW52MSwg Y3B1X2N3cF9kZWMoZW52MSwgZW52MS0+Y3dwIC0gMSkpOwogICAgIGVsc2UgaWYgKChpbnRubyAm IDB4MWMwKSA9PSBUVF9TUElMTCkKLSAgICAgICAgY3B1X3NldF9jd3AoZW52LCBjcHVfY3dwX2Rl YyhlbnYsIGVudi0+Y3dwIC0gZW52LT5jYW5zYXZlIC0gMikpOworICAgICAgICBjcHVfc2V0X2N3 cChlbnYxLCBjcHVfY3dwX2RlYyhlbnYxLCBlbnYxLT5jd3AgLSBlbnYxLT5jYW5zYXZlIC0gMikp OwogICAgIGVsc2UgaWYgKChpbnRubyAmIDB4MWMwKSA9PSBUVF9GSUxMKQotICAgICAgICBjcHVf c2V0X2N3cChlbnYsIGNwdV9jd3BfaW5jKGVudiwgZW52LT5jd3AgKyAxKSk7Ci0gICAgZW52LT50 YnIgJj0gfjB4N2ZmZlVMTDsKLSAgICBlbnYtPnRiciB8PSAoKGVudi0+dGwgPiAxKSA/IDEgPDwg MTQgOiAwKSB8IChpbnRubyA8PCA1KTsKLSAgICBlbnYtPnBjID0gZW52LT50YnI7Ci0gICAgZW52 LT5ucGMgPSBlbnYtPnBjICsgNDsKLSAgICBlbnYtPmV4Y2VwdGlvbl9pbmRleCA9IDA7CisgICAg ICAgIGNwdV9zZXRfY3dwKGVudjEsIGNwdV9jd3BfaW5jKGVudjEsIGVudjEtPmN3cCArIDEpKTsK KyAgICBlbnYxLT50YnIgJj0gfjB4N2ZmZlVMTDsKKyAgICBlbnYxLT50YnIgfD0gKChlbnYxLT50 bCA+IDEpID8gMSA8PCAxNCA6IDApIHwgKGludG5vIDw8IDUpOworICAgIGVudjEtPnBjID0gZW52 MS0+dGJyOworICAgIGVudjEtPm5wYyA9IGVudjEtPnBjICsgNDsKKyAgICBlbnYxLT5leGNlcHRp b25faW5kZXggPSAwOwogfQogI2Vsc2UKICNpZmRlZiBERUJVR19QQ0FMTApAQCAtMjkyMyw5ICsy OTIzLDkgQEAKIH07CiAjZW5kaWYKIAotdm9pZCBkb19pbnRlcnJ1cHQoQ1BVU3RhdGUgKmVudikK K3ZvaWQgZG9faW50ZXJydXB0KENQVVN0YXRlICplbnYxKQogewotICAgIGludCBjd3AsIGludG5v ID0gZW52LT5leGNlcHRpb25faW5kZXg7CisgICAgaW50IGN3cCwgaW50bm8gPSBlbnYxLT5leGNl cHRpb25faW5kZXg7CiAKICNpZmRlZiBERUJVR19QQ0FMTAogICAgIGlmIChsb2dsZXZlbCAmIENQ VV9MT0dfSU5UKSB7CkBAIC0yOTQ0LDE2ICsyOTQ0LDE2IEBACiAKICAgICAgICAgZnByaW50Zihs b2dmaWxlLCAiJTZkOiAlcyAodj0lMDJ4KSBwYz0lMDh4IG5wYz0lMDh4IFNQPSUwOHhcbiIsCiAg ICAgICAgICAgICAgICAgY291bnQsIG5hbWUsIGludG5vLAotICAgICAgICAgICAgICAgIGVudi0+ cGMsCi0gICAgICAgICAgICAgICAgZW52LT5ucGMsIGVudi0+cmVnd3B0cls2XSk7Ci0gICAgICAg IGNwdV9kdW1wX3N0YXRlKGVudiwgbG9nZmlsZSwgZnByaW50ZiwgMCk7CisgICAgICAgICAgICAg ICAgZW52MS0+cGMsCisgICAgICAgICAgICAgICAgZW52MS0+bnBjLCBlbnYxLT5yZWd3cHRyWzZd KTsKKyAgICAgICAgY3B1X2R1bXBfc3RhdGUoZW52MSwgbG9nZmlsZSwgZnByaW50ZiwgMCk7CiAj aWYgMAogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgaTsKICAgICAgICAgICAgIHVpbnQ4X3Qg KnB0cjsKIAogICAgICAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiICAgICAgIGNvZGU9Iik7Ci0g ICAgICAgICAgICBwdHIgPSAodWludDhfdCAqKWVudi0+cGM7CisgICAgICAgICAgICBwdHIgPSAo dWludDhfdCAqKWVudjEtPnBjOwogICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgMTY7IGkrKykg ewogICAgICAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgIiAlMDJ4IiwgbGR1YihwdHIgKyBp KSk7CiAgICAgICAgICAgICB9CkBAIC0yOTY0LDIzICsyOTY0LDIzIEBACiAgICAgfQogI2VuZGlm CiAjaWYgIWRlZmluZWQoQ09ORklHX1VTRVJfT05MWSkKLSAgICBpZiAoZW52LT5wc3JldCA9PSAw KSB7Ci0gICAgICAgIGNwdV9hYm9ydChlbnYsICJUcmFwIDB4JTAyeCB3aGlsZSBpbnRlcnJ1cHRz IGRpc2FibGVkLCBFcnJvciBzdGF0ZSIsCi0gICAgICAgICAgICAgICAgICBlbnYtPmV4Y2VwdGlv bl9pbmRleCk7CisgICAgaWYgKGVudjEtPnBzcmV0ID09IDApIHsKKyAgICAgICAgY3B1X2Fib3J0 KGVudjEsICJUcmFwIDB4JTAyeCB3aGlsZSBpbnRlcnJ1cHRzIGRpc2FibGVkLCBFcnJvciBzdGF0 ZSIsCisgICAgICAgICAgICAgICAgICBlbnYxLT5leGNlcHRpb25faW5kZXgpOwogICAgICAgICBy ZXR1cm47CiAgICAgfQogI2VuZGlmCi0gICAgZW52LT5wc3JldCA9IDA7Ci0gICAgY3dwID0gY3B1 X2N3cF9kZWMoZW52LCBlbnYtPmN3cCAtIDEpOwotICAgIGNwdV9zZXRfY3dwKGVudiwgY3dwKTsK LSAgICBlbnYtPnJlZ3dwdHJbOV0gPSBlbnYtPnBjOwotICAgIGVudi0+cmVnd3B0clsxMF0gPSBl bnYtPm5wYzsKLSAgICBlbnYtPnBzcnBzID0gZW52LT5wc3JzOwotICAgIGVudi0+cHNycyA9IDE7 Ci0gICAgZW52LT50YnIgPSAoZW52LT50YnIgJiBUQlJfQkFTRV9NQVNLKSB8IChpbnRubyA8PCA0 KTsKLSAgICBlbnYtPnBjID0gZW52LT50YnI7Ci0gICAgZW52LT5ucGMgPSBlbnYtPnBjICsgNDsK LSAgICBlbnYtPmV4Y2VwdGlvbl9pbmRleCA9IDA7CisgICAgZW52MS0+cHNyZXQgPSAwOworICAg IGN3cCA9IGNwdV9jd3BfZGVjKGVudjEsIGVudjEtPmN3cCAtIDEpOworICAgIGNwdV9zZXRfY3dw KGVudjEsIGN3cCk7CisgICAgZW52MS0+cmVnd3B0cls5XSA9IGVudjEtPnBjOworICAgIGVudjEt PnJlZ3dwdHJbMTBdID0gZW52MS0+bnBjOworICAgIGVudjEtPnBzcnBzID0gZW52MS0+cHNyczsK KyAgICBlbnYxLT5wc3JzID0gMTsKKyAgICBlbnYxLT50YnIgPSAoZW52MS0+dGJyICYgVEJSX0JB U0VfTUFTSykgfCAoaW50bm8gPDwgNCk7CisgICAgZW52MS0+cGMgPSBlbnYxLT50YnI7CisgICAg ZW52MS0+bnBjID0gZW52MS0+cGMgKyA0OworICAgIGVudjEtPmV4Y2VwdGlvbl9pbmRleCA9IDA7 CiB9CiAjZW5kaWYKIApJbmRleDogcWVtdS90YXJnZXQtc3BhcmMvY3B1LmgKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcWVtdS5vcmlnL3RhcmdldC1zcGFyYy9jcHUuaAkyMDA4LTA5LTA0IDE3OjMwOjA4LjAwMDAw MDAwMCArMDAwMAorKysgcWVtdS90YXJnZXQtc3BhcmMvY3B1LmgJMjAwOC0wOS0wNCAxNzozMDoz MC4wMDAwMDAwMDAgKzAwMDAKQEAgLTQ3NSwxMSArNDc1LDExIEBACiB9CiAKICNpZiBkZWZpbmVk KENPTkZJR19VU0VSX09OTFkpCi1zdGF0aWMgaW5saW5lIHZvaWQgY3B1X2Nsb25lX3JlZ3MoQ1BV U3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIG5ld3NwKQorc3RhdGljIGlubGluZSB2b2lkIGNwdV9j bG9uZV9yZWdzKENQVVN0YXRlICplbnYxLCB0YXJnZXRfdWxvbmcgbmV3c3ApCiB7CiAgICAgaWYg KG5ld3NwKQotICAgICAgICBlbnYtPnJlZ3dwdHJbMjJdID0gbmV3c3A7Ci0gICAgZW52LT5yZWd3 cHRyWzBdID0gMDsKKyAgICAgICAgZW52MS0+cmVnd3B0clsyMl0gPSBuZXdzcDsKKyAgICBlbnYx LT5yZWd3cHRyWzBdID0gMDsKICAgICAvKiBGSVhNRTogRG8gd2UgYWxzbyBuZWVkIHRvIGNsZWFy IENGPyAgKi8KICAgICAvKiBYWFhYWCAqLwogICAgIHByaW50ZiAoIkhFTFBNRTogJXM6JWRcbiIs IF9fRklMRV9fLCBfX0xJTkVfXyk7Cg== ------=_Part_57006_20925302.1220555374770--