From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14150 invoked by alias); 2 Oct 2010 00:16:20 -0000 Received: (qmail 14063 invoked by uid 22791); 2 Oct 2010 00:16:13 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,TW_BJ,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-wy0-f169.google.com (HELO mail-wy0-f169.google.com) (74.125.82.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 02 Oct 2010 00:16:05 +0000 Received: by wyb36 with SMTP id 36so4520566wyb.0 for ; Fri, 01 Oct 2010 17:16:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.11.131 with SMTP id 3mr2690292wex.92.1285978562658; Fri, 01 Oct 2010 17:16:02 -0700 (PDT) Received: by 10.216.82.135 with HTTP; Fri, 1 Oct 2010 17:16:02 -0700 (PDT) Date: Sat, 02 Oct 2010 00:16:00 -0000 Message-ID: Subject: [patch] Memory leak fixes From: Ali Lakhia To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016364c7d996a89de04919737a0 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-10/txt/msg00018.txt.bz2 --0016364c7d996a89de04919737a0 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 143 Please see fixes for memory leaks. My testing for these has been limited to just making sure things work for my day-to-day use. Thanks, -Ali --0016364c7d996a89de04919737a0 Content-Type: text/plain; charset=US-ASCII; name="patch2.txt" Content-Disposition: attachment; filename="patch2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gerq96uh0 Content-length: 15938 LS0tIGdkYi03LjEvYmZkL2VsZjMyLWkzODYuYwkyMDEwLTA5LTE0IDE2OjU5 OjQwLjAwMDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9iZmQvZWxmMzItaTM4 Ni5jCTIwMTAtMDYtMTQgMTU6MDQ6MDUuMDAwMDAwMDAwIC0wNzAwCkBAIC04 MzUsNiArODM1LDcgQEAKICAgcmV0LT5sb2NfaGFzaF9tZW1vcnkgPSBvYmph bGxvY19jcmVhdGUgKCk7CiAgIGlmICghcmV0LT5sb2NfaGFzaF90YWJsZSB8 fCAhcmV0LT5sb2NfaGFzaF9tZW1vcnkpCiAgICAgeworICAgICAgb2JqYWxs b2NfZnJlZSAocmV0LT5sb2NfaGFzaF9tZW1vcnkpOwogICAgICAgZnJlZSAo cmV0KTsKICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KZGlmZiAtcnUgZ2Ri LTcuMS9iZmQvZWxmNjQteDg2LTY0LmMgZ2RiLTcuMS9iZmQvZWxmNjQteDg2 LTY0LmMKLS0tIGdkYi03LjEvYmZkL2VsZjY0LXg4Ni02NC5jCTIwMTAtMDkt MTQgMTY6NTk6NDAuMDAwMDAwMDAwIC0wNzAwCisrKyBnZGItNy4xL2JmZC9l bGY2NC14ODYtNjQuYwkyMDEwLTA2LTE0IDE1OjAxOjU1LjAwMDAwMDAwMCAt MDcwMApAQCAtNjQ3LDYgKzY0Nyw3IEBACiAgIHJldC0+bG9jX2hhc2hfbWVt b3J5ID0gb2JqYWxsb2NfY3JlYXRlICgpOwogICBpZiAoIXJldC0+bG9jX2hh c2hfdGFibGUgfHwgIXJldC0+bG9jX2hhc2hfbWVtb3J5KQogICAgIHsKKyAg ICAgIG9iamFsbG9jX2ZyZWUgKHJldC0+bG9jX2hhc2hfbWVtb3J5KTsKICAg ICAgIGZyZWUgKHJldCk7CiAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CmRp ZmYgLXJ1IGdkYi03LjEvZ2RiL2R3YXJmMnJlYWQuYyBnZGItNy4xL2dkYi9k d2FyZjJyZWFkLmMKLS0tIGdkYi03LjEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEw LTA5LTE0IDE2OjU5OjQwLjAwMDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9n ZGIvZHdhcmYycmVhZC5jCTIwMTAtMDYtMTUgMTQ6NTM6NTQuMDAwMDAwMDAw IC0wNzAwCkBAIC01NDYyLDYgKzU0NjIsNyBAQAogICBzZXRfZGVzY3JpcHRp dmVfdHlwZSAodHlwZSwgZGllLCBjdSk7CiAKICAgZG9fY2xlYW51cHMgKGJh Y2tfdG8pOworICB4ZnJlZSAocmFuZ2VfdHlwZXMpOwogCiAgIC8qIEluc3Rh bGwgdGhlIHR5cGUgaW4gdGhlIGRpZS4gKi8KICAgcmV0dXJuIHNldF9kaWVf dHlwZSAoZGllLCB0eXBlLCBjdSk7CmRpZmYgLXJ1IGdkYi03LjEvZ2RiL2Vs ZnJlYWQuYyBnZGItNy4xL2dkYi9lbGZyZWFkLmMKLS0tIGdkYi03LjEvZ2Ri L2VsZnJlYWQuYwkyMDEwLTA5LTE0IDE2OjU5OjQwLjAwMDAwMDAwMCAtMDcw MAorKysgZ2RiLTcuMS9nZGIvZWxmcmVhZC5jCTIwMTAtMDYtMTUgMTQ6NTM6 NTQuMDAwMDAwMDAwIC0wNzAwCkBAIC01NjYsNiArNTY2LDcgQEAKIAkgICAg fQogCX0KICAgICB9CisgIHhmcmVlIChzZWN0aW5mbyk7CiB9CiAKIHN0cnVj dCBidWlsZF9pZAotLS0gZ2RiLTcuMS9nZGIvZ2Ric2VydmVyL2hvc3Rpby5j CTIwMTAtMDktMTQgMTY6NTk6NDAuMDAwMDAwMDAwIC0wNzAwCisrKyBnZGIt Ny4xL2dkYi9nZGJzZXJ2ZXIvaG9zdGlvLmMJMjAxMC0wNi0xNCAxMjoxODox MS4wMDAwMDAwMDAgLTA3MDAKQEAgLTM2Nyw2ICszNjcsNyBAQAogICAgICAg fHwgcmVxdWlyZV9kYXRhIChwLCBwYWNrZXRfbGVuIC0gKHAgLSBvd25fYnVm KSwgJmRhdGEsICZsZW4pKQogICAgIHsKICAgICAgIGhvc3Rpb19wYWNrZXRf ZXJyb3IgKG93bl9idWYpOworICAgICAgZnJlZSAoZGF0YSk7CiAgICAgICBy ZXR1cm47CiAgICAgfQogCi0tLSBnZGItNy4xL2dkYi9tYWludC5jCTIwMTAt MDktMTQgMTY6NTk6NDAuMDAwMDAwMDAwIC0wNzAwCisrKyBnZGItNy4xL2dk Yi9tYWludC5jCTIwMTAtMDYtMTUgMTQ6NTM6NTQuMDAwMDAwMDAwIC0wNzAw CkBAIC02MDgsOCArNjA4LDEwIEBACiAgICAgfQogCiAgIGlmICghc3RhcnRf cHRyIHx8ICFlbmRfcHRyKQotICAgIHJlcGxhY2VtZW50ID0gTlVMTDsKLQor ICAgIHsKKyAgICAgIHhmcmVlIChyZXBsYWNlbWVudCk7CisgICAgICByZXBs YWNlbWVudCA9IE5VTEw7CisgICAgfQogCiAgIC8qIElmIHRoZXkgdXNlZCBh biBhbGlhcywgd2Ugb25seSB3YW50IHRvIGRlcHJlY2F0ZSB0aGUgYWxpYXMu CiAKZGlmZiAtcnUgZ2RiLTcuMS9nZGIvbWkvbWktY21kLWRpc2FzLmMgZ2Ri LTcuMS9nZGIvbWkvbWktY21kLWRpc2FzLmMKLS0tIGdkYi03LjEvZ2RiL21p L21pLWNtZC1kaXNhcy5jCTIwMTAtMDktMTQgMTc6MDM6MjguMDAwMDAwMDAw IC0wNzAwCisrKyBnZGItNy4xL2dkYi9taS9taS1jbWQtZGlzYXMuYwkyMDEw LTA2LTE0IDE0OjQzOjE4LjAwMDAwMDAwMCAtMDcwMApAQCAtMTU4LDQgKzE1 OCw1IEBACiAgIAkJICAgZmlsZV9zdHJpbmcsCiAJCSAgIG1peGVkX3NvdXJj ZV9hbmRfYXNzZW1ibHk/IERJU0FTU0VNQkxZX1NPVVJDRSA6IDAsCiAJCSAg IGhvd19tYW55LCBsb3csIGhpZ2gpOworICB4ZnJlZSAoZmlsZV9zdHJpbmcp OwogfQpkaWZmIC1ydSBnZGItNy4xL2dkYi9taS9taS1jbWQtZW52LmMgZ2Ri LTcuMS9nZGIvbWkvbWktY21kLWVudi5jCi0tLSBnZGItNy4xL2dkYi9taS9t aS1jbWQtZW52LmMJMjAxMC0wOS0xNCAxNzowMzoyOC4wMDAwMDAwMDAgLTA3 MDAKKysrIGdkYi03LjEvZ2RiL21pL21pLWNtZC1lbnYuYwkyMDEwLTA2LTE0 IDExOjU3OjAyLjAwMDAwMDAwMCAtMDcwMApAQCAtMjc2LDQgKzI3Niw1IEBA CiAgIGlmICghZW52KQogICAgIGVudiA9ICIiOwogICBvcmlnX3BhdGggPSB4 c3RyZHVwIChlbnYpOworICBmcmVlX2Vudmlyb24oZW52aXJvbm1lbnQpOwog fQpkaWZmIC1ydSBnZGItNy4xL2dkYi9wcmludGNtZC5jIGdkYi03LjEvZ2Ri L3ByaW50Y21kLmMKLS0tIGdkYi03LjEvZ2RiL3ByaW50Y21kLmMJMjAxMC0w OS0xNCAxNzowMzoyOC4wMDAwMDAwMDAgLTA3MDAKKysrIGdkYi03LjEvZ2Ri L3ByaW50Y21kLmMJMjAxMC0wNi0xNSAxNDo1Mzo1NC4wMDAwMDAwMDAgLTA3 MDAKQEAgLTYwOCw2ICs2MDgsNyBAQAogICAgIGZwdXRzX2ZpbHRlcmVkICgi PiIsIHN0cmVhbSk7CiAKICAgZG9fY2xlYW51cHMgKGNsZWFudXBfY2hhaW4p OworICB4ZnJlZSAoZmlsZW5hbWUpOwogfQogCiAvKiBHaXZlbiBhbiBhZGRy ZXNzIEFERFIgcmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgbmVlZGVkIHRvIHBy aW50IHRoZQpkaWZmIC1ydSBnZGItNy4xL2dkYi9weXRob24vcHktY21kLmMg Z2RiLTcuMS9nZGIvcHl0aG9uL3B5LWNtZC5jCi0tLSBnZGItNy4xL2dkYi9w eXRob24vcHktY21kLmMJMjAxMC0wOS0xNCAxNzowMzoyOC4wMDAwMDAwMDAg LTA3MDAKKysrIGdkYi03LjEvZ2RiL3B5dGhvbi9weS1jbWQuYwkyMDEwLTA2 LTE0IDE0OjA2OjE0LjAwMDAwMDAwMCAtMDcwMApAQCAtNDMxLDcgKzQzMSwx MCBAQAogCSAgcGZ4X25hbWVbb3V0XSA9ICdcMCc7CiAJfQogICAgICAgZWxz ZSBpZiAoY21wIDwgMCkKLQkgIHJldHVybiAtMTsKKyAgICAgICAgeworICAg ICAgICAgIHhmcmVlIChjbWRfbmFtZSk7CisgICAgICAgICAgcmV0dXJuIC0x OworICAgICAgICB9CiAgICAgfQogICBpZiAoUHlPYmplY3RfSGFzQXR0ciAo c2VsZiwgZ2RicHlfZG9jX2NzdCkpCiAgICAgewpkaWZmIC1ydSBnZGItNy4x L2dkYi9weXRob24vcHktdHlwZS5jIGdkYi03LjEvZ2RiL3B5dGhvbi9weS10 eXBlLmMKLS0tIGdkYi03LjEvZ2RiL3B5dGhvbi9weS10eXBlLmMJMjAxMC0w OS0xNCAxNzowMzoyOC4wMDAwMDAwMDAgLTA3MDAKKysrIGdkYi03LjEvZ2Ri L3B5dGhvbi9weS10eXBlLmMJMjAxMC0wNi0xNCAxNDowNDoyOC4wMDAwMDAw MDAgLTA3MDAKQEAgLTU4MCw2ICs1ODAsNyBAQAogCiAgICAgICB0eXBlX3By aW50ICh0eXBlX29iamVjdF90b190eXBlIChzZWxmKSwgIiIsIHN0YiwgLTEp OwogCisgICAgICB4ZnJlZSAodGhldHlwZSk7CiAgICAgICB0aGV0eXBlID0g dWlfZmlsZV94c3RyZHVwIChzdGIsICZsZW5ndGgpOwogICAgICAgZG9fY2xl YW51cHMgKG9sZF9jaGFpbik7CiAgICAgfQpkaWZmIC1ydSBnZGItNy4xL2dk Yi9weXRob24vcHktdmFsdWUuYyBnZGItNy4xL2dkYi9weXRob24vcHktdmFs dWUuYwotLS0gZ2RiLTcuMS9nZGIvcHl0aG9uL3B5LXZhbHVlLmMJMjAxMC0w OS0xNCAxNzowMzoyOC4wMDAwMDAwMDAgLTA3MDAKKysrIGdkYi03LjEvZ2Ri L3B5dGhvbi9weS12YWx1ZS5jCTIwMTAtMDYtMTQgMTU6Mjg6MTguMDAwMDAw MDAwIC0wNzAwCkBAIC00MDcsNiArNDA3LDcgQEAKICAgICB7CiAgICAgICBj b21tb25fdmFsX3ByaW50ICgoKHZhbHVlX29iamVjdCAqKSBzZWxmKS0+dmFs dWUsIHN0YiwgMCwKIAkJCSZvcHRzLCBweXRob25fbGFuZ3VhZ2UpOworICAg ICAgeGZyZWUgKHMpOwogICAgICAgcyA9IHVpX2ZpbGVfeHN0cmR1cCAoc3Ri LCBOVUxMKTsKICAgICB9CiAgIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OIChl eGNlcHQpOwpkaWZmIC1ydSBnZGItNy4xL2dkYi9zZXItdW5peC5jIGdkYi03 LjEvZ2RiL3Nlci11bml4LmMKLS0tIGdkYi03LjEvZ2RiL3Nlci11bml4LmMJ MjAxMC0wOS0xNCAxNzowMzoyOC4wMDAwMDAwMDAgLTA3MDAKKysrIGdkYi03 LjEvZ2RiL3Nlci11bml4LmMJMjAxMC0wNi0xNSAxNDo1Mzo1NC4wMDAwMDAw MDAgLTA3MDAKQEAgLTE4Myw3ICsxODMsMTAgQEAKICAgc3RhdGUgPSAoc3Ry dWN0IGhhcmR3aXJlX3R0eXN0YXRlICopIHhtYWxsb2MgKHNpemVvZiAqc3Rh dGUpOwogCiAgIGlmIChnZXRfdHR5X3N0YXRlIChzY2IsIHN0YXRlKSkKLSAg ICByZXR1cm4gTlVMTDsKKyAgICB7CisgICAgICB4ZnJlZSAoc3RhdGUpOwor ICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogCiAgIHJldHVybiAoc2VyaWFs X3R0eXN0YXRlKSBzdGF0ZTsKIH0KZGlmZiAtcnUgZ2RiLTcuMS9nZGIvc3lt ZmlsZS5jIGdkYi03LjEvZ2RiL3N5bWZpbGUuYwotLS0gZ2RiLTcuMS9nZGIv c3ltZmlsZS5jCTIwMTAtMDktMTUgMTQ6NDU6MjIuMDAwMDAwMDAwIC0wNzAw CisrKyBnZGItNy4xL2dkYi9zeW1maWxlLmMJMjAxMC0wNi0xNSAxNDo1Mzo1 NC4wMDAwMDAwMDAgLTA3MDAKQEAgLTIxNzYsNiArMjE3Niw3IEBACiAgICAg IGZyYW1lbGVzcy4gICovCiAgIHJlaW5pdF9mcmFtZV9jYWNoZSAoKTsKICAg ZG9fY2xlYW51cHMgKG15X2NsZWFudXBzKTsKKyAgeGZyZWUgKHNlY3Rfb3B0 cyk7CiB9CiAMCiAKQEAgLTIzMzgsOSArMjMzOSw2IEBACiAJICBtZW1zZXQg KCZvYmpmaWxlLT5tc3ltYm9sX2RlbWFuZ2xlZF9oYXNoLCAwLAogCQkgIHNp emVvZiAob2JqZmlsZS0+bXN5bWJvbF9kZW1hbmdsZWRfaGFzaCkpOwogCi0J ICBvYmpmaWxlLT5wc3ltYm9sX2NhY2hlID0gYmNhY2hlX3htYWxsb2MgKCk7 Ci0JICBvYmpmaWxlLT5tYWNyb19jYWNoZSA9IGJjYWNoZV94bWFsbG9jICgp OwotCSAgb2JqZmlsZS0+ZmlsZW5hbWVfY2FjaGUgPSBiY2FjaGVfeG1hbGxv YyAoKTsKIAkgIC8qIG9ic3RhY2tfaW5pdCBhbHNvIGluaXRpYWxpemVzIHRo ZSBvYnN0YWNrIHNvIGl0IGlzCiAJICAgICBlbXB0eS4gIFdlIGNvdWxkIHVz ZSBvYnN0YWNrX3NwZWNpZnlfYWxsb2NhdGlvbiBidXQKIAkgICAgIGdkYl9v YnN0YWNrLmggc3BlY2lmaWVzIHRoZSBhbGxvYy9kZWFsbG9jCmRpZmYgLXJ1 IGdkYi03LjEvZ2RiL3RhcmdldC5jIGdkYi03LjEvZ2RiL3RhcmdldC5jCi0t LSBnZGItNy4xL2dkYi90YXJnZXQuYwkyMDEwLTA5LTE0IDE3OjA2OjQ2LjAw MDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9nZGIvdGFyZ2V0LmMJMjAxMC0w Ni0xNSAxNDo1Mzo1NC4wMDAwMDAwMDAgLTA3MDAKQEAgLTE5MDcsMTYgKzE5 MDcsMjEgQEAKIHRhcmdldF9yZWFkX3N0cmFsbG9jIChzdHJ1Y3QgdGFyZ2V0 X29wcyAqb3BzLCBlbnVtIHRhcmdldF9vYmplY3Qgb2JqZWN0LAogCQkgICAg ICBjb25zdCBjaGFyICphbm5leCkKIHsKLSAgZ2RiX2J5dGUgKmJ1ZmZlcjsK KyAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgIExPTkdFU1QgdHJhbnNm ZXJyZWQ7CiAKICAgdHJhbnNmZXJyZWQgPSB0YXJnZXRfcmVhZF9hbGxvY18x IChvcHMsIG9iamVjdCwgYW5uZXgsICZidWZmZXIsIDEpOwogCiAgIGlmICh0 cmFuc2ZlcnJlZCA8IDApCi0gICAgcmV0dXJuIE5VTEw7Ci0KKyAgICB7Cisg ICAgICB4ZnJlZSAoYnVmZmVyKTsKKyAgICAgIHJldHVybiBOVUxMOworICAg IH0KICAgaWYgKHRyYW5zZmVycmVkID09IDApCi0gICAgcmV0dXJuIHhzdHJk dXAgKCIiKTsKKyAgICB7CisgICAgICB4ZnJlZSAoYnVmZmVyKTsKKyAgICAg IHJldHVybiB4c3RyZHVwICgiIik7CisgICAgfQogCiAgIGJ1ZmZlclt0cmFu c2ZlcnJlZF0gPSAwOwogICBpZiAoc3RybGVuIChidWZmZXIpIDwgdHJhbnNm ZXJyZWQpCmRpZmYgLXJ1IGdkYi03LjEvZ2RiL3RvcC5jIGdkYi03LjEvZ2Ri L3RvcC5jCi0tLSBnZGItNy4xL2dkYi90b3AuYwkyMDEwLTA5LTE0IDE3OjA2 OjQ2LjAwMDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9nZGIvdG9wLmMJMjAx MC0wOS0xNiAxNDoyMTo0OS4wMDAwMDAwMDAgLTA3MDAKQEAgLTk2MCw3ICs5 NjAsMTAgQEAKICAgaW1tZWRpYXRlX3F1aXQtLTsKIAogICBpZiAoZ290X2Vv ZikKLSAgICByZXR1cm4gTlVMTDsKKyAgICB7CisgICAgICB4ZnJlZSAocmwp OwkJLyogQWxsb2NhdGVkIGluIHJlYWRsaW5lLiAgKi8KKyAgICAgIHJldHVy biBOVUxMOworICAgIH0KIAogI2RlZmluZSBTRVJWRVJfQ09NTUFORF9MRU5H VEggNwogICBzZXJ2ZXJfY29tbWFuZCA9CmRpZmYgLXJ1IGdkYi03LjEvZ2Ri L3RyYWNlcG9pbnQuYyBnZGItNy4xL2dkYi90cmFjZXBvaW50LmMKLS0tIGdk Yi03LjEvZ2RiL3RyYWNlcG9pbnQuYwkyMDEwLTA5LTE0IDE3OjA2OjQ2LjAw MDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9nZGIvdHJhY2Vwb2ludC5jCTIw MTAtMDYtMTUgMTQ6NTM6NTQuMDAwMDAwMDAwIC0wNzAwCkBAIC0xMjMzLDcg KzEyMzMsMTEgQEAKICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgZWxz ZQotICAgIHJldHVybiAqc3RyX2xpc3Q7CisgICAgeworICAgICAgY2hhciAq KnJldCA9ICpzdHJfbGlzdDsKKyAgICAgIHhmcmVlIChzdHJfbGlzdCk7Cisg ICAgICByZXR1cm4gcmV0OworICAgIH0KIH0KIAogLyogUmVuZGVyIGFsbCBh Y3Rpb25zIGludG8gZ2RiIHByb3RvY29sLiAgKi8KQEAgLTIwNzYsNiArMjA4 MCw4IEBACiAgICAgZXJyb3IgKF8oInJlcXVpcmVzIGFuIGFyZ3VtZW50IChm dW5jdGlvbiwgbGluZSBvciAqYWRkcikgdG8gZGVmaW5lIGEgc2NvcGUiKSk7 CiAKICAgc2FscyA9IGRlY29kZV9saW5lXzEgKCZhcmdzLCAxLCBOVUxMLCAw LCAmY2Fub25pY2FsLCBOVUxMKTsKKyAgeGZyZWUgKGNhbm9uaWNhbCk7CisK ICAgaWYgKHNhbHMubmVsdHMgPT0gMCkKICAgICByZXR1cm47CQkvKiBwcmVz dW1hYmx5IGRlY29kZV9saW5lXzEgaGFzIGFscmVhZHkgd2FybmVkICovCiAK QEAgLTI3NzIsNyArMjc3OCw3IEBACiAgICAgc3ByaW50ZiAoYnVmLCAiJXNf JWQiLCBuYW1lYmFzZSwgdHJ5X251bSsrKTsKIAogICAvKiBXZSBoYXZlIGFu IGF2YWlsYWJsZSBuYW1lLCBjcmVhdGUgdGhlIHZhcmlhYmxlLiAgKi8KLSAg dHN2ID0gY3JlYXRlX3RyYWNlX3N0YXRlX3ZhcmlhYmxlICh4c3RyZHVwIChi dWYpKTsKKyAgdHN2ID0gY3JlYXRlX3RyYWNlX3N0YXRlX3ZhcmlhYmxlIChi dWYpOwogICB0c3YtPmluaXRpYWxfdmFsdWUgPSB1dHN2LT5pbml0aWFsX3Zh bHVlOwogICB0c3YtPmJ1aWx0aW4gPSB1dHN2LT5idWlsdGluOwogCmRpZmYg LXJ1IGdkYi03LjEvZ2RiL3R1aS90dWktcmVncy5jIGdkYi03LjEvZ2RiL3R1 aS90dWktcmVncy5jCi0tLSBnZGItNy4xL2dkYi90dWkvdHVpLXJlZ3MuYwky MDEwLTA5LTE0IDE3OjEwOjA2LjAwMDAwMDAwMCAtMDcwMAorKysgZ2RiLTcu MS9nZGIvdHVpL3R1aS1yZWdzLmMJMjAxMC0wNi0xNCAxNDoyMzoxOC4wMDAw MDAwMDAgLTA3MDAKQEAgLTI1Nyw2ICsyNTcsNyBAQAogCSAgVFVJX0RBVEFf V0lOLT5nZW5lcmljLmNvbnRlbnQgPSAodm9pZCopIE5VTEw7CiAJICBUVUlf REFUQV9XSU4tPmdlbmVyaWMuY29udGVudF9zaXplID0gMDsKIAkgIHR1aV9h ZGRfY29udGVudF9lbGVtZW50cyAoJlRVSV9EQVRBX1dJTi0+Z2VuZXJpYywg bnJfcmVncyk7CisJICB4ZnJlZSAoZGlzcGxheV9pbmZvLT5yZWdzX2NvbnRl bnQpOwogCSAgZGlzcGxheV9pbmZvLT5yZWdzX2NvbnRlbnQKICAgICAgICAg ICAgID0gKHR1aV93aW5fY29udGVudCkgVFVJX0RBVEFfV0lOLT5nZW5lcmlj LmNvbnRlbnQ7CiAJICBkaXNwbGF5X2luZm8tPnJlZ3NfY29udGVudF9jb3Vu dCA9IG5yX3JlZ3M7CmRpZmYgLXJ1IGdkYi03LjEvZ2RiL3R1aS90dWktd2lu c291cmNlLmMgZ2RiLTcuMS9nZGIvdHVpL3R1aS13aW5zb3VyY2UuYwotLS0g Z2RiLTcuMS9nZGIvdHVpL3R1aS13aW5zb3VyY2UuYwkyMDEwLTA5LTE0IDE3 OjEwOjA2LjAwMDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9nZGIvdHVpL3R1 aS13aW5zb3VyY2UuYwkyMDEwLTA2LTE0IDEyOjUyOjQxLjAwMDAwMDAwMCAt MDcwMApAQCAtNjI1LDYgKzYyNSw3IEBACiAJICBzcmNfbGluZV9idWYgKyAo bGluZV93aWR0aCAqIGkpOwogICAgIH0KIAorICB4ZnJlZSAoc3JjX2xpbmVf YnVmKTsKICAgcmV0dXJuIFRVSV9TVUNDRVNTOwogfQogCmRpZmYgLXJ1IGdk Yi03LjEvZ2RiL3R5cGVwcmludC5jIGdkYi03LjEvZ2RiL3R5cGVwcmludC5j Ci0tLSBnZGItNy4xL2dkYi90eXBlcHJpbnQuYwkyMDEwLTA5LTE0IDE3OjEw OjA2LjAwMDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9nZGIvdHlwZXByaW50 LmMJMjAxMC0wNi0xNSAxNDo1Mzo1NC4wMDAwMDAwMDAgLTA3MDAKQEAgLTk3 LDYgKzk3LDcgQEAKICAgVFJZX0NBVENIIChleGNlcHQsIFJFVFVSTl9NQVNL X0FMTCkKICAgICB7CiAgICAgICB0eXBlX3ByaW50ICh0eXBlLCAiIiwgc3Ri LCAtMSk7CisgICAgICB4ZnJlZSAocyk7CiAgICAgICBzID0gdWlfZmlsZV94 c3RyZHVwIChzdGIsIE5VTEwpOwogICAgIH0KICAgaWYgKGV4Y2VwdC5yZWFz b24gPCAwKQpkaWZmIC1ydSBnZGItNy4xL2dkYi92YXJvYmouYyBnZGItNy4x L2dkYi92YXJvYmouYwotLS0gZ2RiLTcuMS9nZGIvdmFyb2JqLmMJMjAxMC0w My0wMyAxMDozMzowNC4wMDAwMDAwMDAgLTA4MDAKKysrIGdkYi03LjEvZ2Ri L3Zhcm9iai5jCTIwMTAtMDYtMTUgMTQ6NTM6NTQuMDAwMDAwMDAwIC0wNzAw CkBAIC03NjAsNiArNzYwLDcgQEAKIAkJIG15Y291bnQpOwogICAgIH0KIAor ICB4ZnJlZSAocmVzdWx0KTsKICAgcmV0dXJuIGRlbGNvdW50OwogfQogCkBA IC0yNTY0LDYgKzI1NjUsNyBAQAogICB0aGV2YWx1ZSA9IHVpX2ZpbGVfeHN0 cmR1cCAoc3RiLCBOVUxMKTsKIAogICBkb19jbGVhbnVwcyAob2xkX2NoYWlu KTsKKyAgeGZyZWUgKGVuY29kaW5nKTsKICAgcmV0dXJuIHRoZXZhbHVlOwog fQogCmRpZmYgLXJ1IGdkYi03LjEvZ2RiL3htbC1zdXBwb3J0LmMgZ2RiLTcu MS9nZGIveG1sLXN1cHBvcnQuYwotLS0gZ2RiLTcuMS9nZGIveG1sLXN1cHBv cnQuYwkyMDA5LTEyLTMxIDIzOjMxOjQ2LjAwMDAwMDAwMCAtMDgwMAorKysg Z2RiLTcuMS9nZGIveG1sLXN1cHBvcnQuYwkyMDEwLTA2LTE1IDE0OjUzOjU0 LjAwMDAwMDAwMCAtMDcwMApAQCAtMTA3Nyw2ICsxMDc3LDcgQEAKIAl7CiAJ ICB3YXJuaW5nIChfKCJSZWFkIGVycm9yIGZyb20gXCIlc1wiIiksIGZpbGVu YW1lKTsKIAkgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKwkgIHhmcmVlICh0 ZXh0KTsKIAkgIHJldHVybiBOVUxMOwogCX0KIApkaWZmIC1ydSBnZGItNy4x L2xpYmliZXJ0eS9hcmd2LmMgZ2RiLTcuMS9saWJpYmVydHkvYXJndi5jCi0t LSBnZGItNy4xL2xpYmliZXJ0eS9hcmd2LmMJMjAwOS0xMC0wOCAyMTo0OTo0 OC4wMDAwMDAwMDAgLTA3MDAKKysrIGdkYi03LjEvbGliaWJlcnR5L2FyZ3Yu YwkyMDEwLTA2LTE0IDEyOjM3OjA2LjAwMDAwMDAwMCAtMDcwMApAQCAtNDAy LDcgKzQwMiw3IEBACiAgICAgICBzaXplX3QgbGVuOwogICAgICAgLyogQSBk eW5hbWljYWxseSBhbGxvY2F0ZWQgYnVmZmVyIHVzZWQgdG8gaG9sZCBvcHRp b25zIHJlYWQgZnJvbSBhCiAJIHJlc3BvbnNlIGZpbGUuICAqLwotICAgICAg Y2hhciAqYnVmZmVyOworICAgICAgY2hhciAqYnVmZmVyID0gTlVMTDsKICAg ICAgIC8qIER5bmFtaWNhbGx5IGFsbG9jYXRlZCBzdG9yYWdlIGZvciB0aGUg b3B0aW9ucyByZWFkIGZyb20gdGhlCiAJIHJlc3BvbnNlIGZpbGUuICAqLwog ICAgICAgY2hhciAqKmZpbGVfYXJndjsKQEAgLTQyMyw2ICs0MjMsNyBAQAog CWdvdG8gZXJyb3I7CiAgICAgICBpZiAoZnNlZWsgKGYsIDBMLCBTRUVLX1NF VCkgPT0gLTEpCiAJZ290byBlcnJvcjsKKyAgICAgIHhmcmVlIChidWZmZXIp OwogICAgICAgYnVmZmVyID0gKGNoYXIgKikgeG1hbGxvYyAocG9zICogc2l6 ZW9mIChjaGFyKSArIDEpOwogICAgICAgbGVuID0gZnJlYWQgKGJ1ZmZlciwg c2l6ZW9mIChjaGFyKSwgcG9zLCBmKTsKICAgICAgIGlmIChsZW4gIT0gKHNp emVfdCkgcG9zCi0tLSBnZGItNy4xL3JlYWRsaW5lL2JpbmQuYwkyMDA2LTA1 LTA1IDExOjI2OjEyLjAwMDAwMDAwMCAtMDcwMAorKysgZ2RiLTcuMS9yZWFk bGluZS9iaW5kLmMJMjAxMC0wNi0xNCAxMjozMzo0Ni4wMDAwMDAwMDAgLTA3 MDAKQEAgLTM3MCw3ICszNzAsMTAgQEAKIAogICAgICAgaWMgPSB1YzsKICAg ICAgIGlmIChpYyA8IDAgfHwgaWMgPj0gS0VZTUFQX1NJWkUpCi0JcmV0dXJu IC0xOworICAgICAgeworICAgICAgICBmcmVlIChrZXlzKTsKKyAgICAgICAg cmV0dXJuIC0xOworICAgICAgfQogCiAgICAgICBpZiAoTUVUQV9DSEFSIChp YykgJiYgX3JsX2NvbnZlcnRfbWV0YV9jaGFyc190b19hc2NpaSkKIAl7CkBA IC0yMDY4LDYgKzIwNzEsNyBAQAogCSAgICB9CiAJfQogICAgIH0KKyAgZnJl ZSAobmFtZXMpOwogfQogCiAvKiBQcmludCBhbGwgb2YgdGhlIGN1cnJlbnQg ZnVuY3Rpb25zIGFuZCB0aGVpciBiaW5kaW5ncyB0bwpkaWZmIC1ydSBnZGIt Ny4xL3JlYWRsaW5lL2tpbGwuYyBnZGItNy4xL3JlYWRsaW5lL2tpbGwuYwot LS0gZ2RiLTcuMS9yZWFkbGluZS9raWxsLmMJMjAwNi0wNS0wNSAxMToyNjox Mi4wMDAwMDAwMDAgLTA3MDAKKysrIGdkYi03LjEvcmVhZGxpbmUva2lsbC5j CTIwMTAtMDYtMTQgMTI6MzA6NTYuMDAwMDAwMDAwIC0wNzAwCkBAIC01ODEs NiArNTgxLDcgQEAKICAgYXJnID0gaGlzdG9yeV9hcmdfZXh0cmFjdCAoY291 bnQsIGNvdW50LCBlbnRyeS0+bGluZSk7CiAgIGlmICghYXJnIHx8ICEqYXJn KQogICAgIHsKKyAgICAgIGZyZWUgKGFyZyk7CiAgICAgICBybF9kaW5nICgp OwogICAgICAgcmV0dXJuIC0xOwogICAgIH0KZGlmZiAtcnUgZ2RiLTcuMS9y ZWFkbGluZS91dGlsLmMgZ2RiLTcuMS9yZWFkbGluZS91dGlsLmMKLS0tIGdk Yi03LjEvcmVhZGxpbmUvdXRpbC5jCTIwMDYtMDUtMDUgMTE6MjY6MTIuMDAw MDAwMDAwIC0wNzAwCisrKyBnZGItNy4xL3JlYWRsaW5lL3V0aWwuYwkyMDEw LTA2LTE0IDExOjMzOjQxLjAwMDAwMDAwMCAtMDcwMApAQCAtMTg1LDYgKzE4 NSw3IEBACiAgICAgewogICAgICAgaG9tZWRpciA9IHRpbGRlX2V4cGFuZCAo In4iKTsKICAgICAgIF9ybF9yZXBsYWNlX3RleHQgKGhvbWVkaXIsIHN0YXJ0 LCBlbmQpOworICAgICAgZnJlZSAoaG9tZWRpcik7CiAgICAgICByZXR1cm4g KDApOwogICAgIH0KICAgZWxzZSBpZiAocmxfbGluZV9idWZmZXJbc3RhcnRd ICE9ICd+JykKQEAgLTIxNSw2ICsyMTYsNyBAQAogICAgICAgZnJlZSAodGVt cCk7CiAKICAgICAgIF9ybF9yZXBsYWNlX3RleHQgKGhvbWVkaXIsIHN0YXJ0 LCBlbmQpOworICAgICAgZnJlZSAoaG9tZWRpcik7CiAgICAgfQogCiAgIHJl dHVybiAoMCk7Cg== --0016364c7d996a89de04919737a0--