From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22167 invoked by alias); 6 May 2011 18:08:24 -0000 Received: (qmail 22158 invoked by uid 22791); 6 May 2011 18:08:23 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_BJ X-Spam-Check-By: sourceware.org Received: from mail-gw0-f41.google.com (HELO mail-gw0-f41.google.com) (74.125.83.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 06 May 2011 18:08:08 +0000 Received: by gwaa12 with SMTP id a12so1587288gwa.0 for ; Fri, 06 May 2011 11:08:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.236.79.66 with SMTP id h42mr3224027yhe.494.1304705287665; Fri, 06 May 2011 11:08:07 -0700 (PDT) Received: by 10.236.110.142 with HTTP; Fri, 6 May 2011 11:08:07 -0700 (PDT) In-Reply-To: <20110506044220.GD2568@adacore.com> References: <20110505162855.GA2546@adacore.com> <20110505224016.GB2568@adacore.com> <20110506031935.GA17062@host1.jankratochvil.net> <20110506044220.GD2568@adacore.com> Date: Fri, 06 May 2011 18:08:00 -0000 Message-ID: Subject: Re: [RFC] canonical linespec and multiple breakpoints ... From: Matt Rice To: Joel Brobecker Cc: Jan Kratochvil , Tom Tromey , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=20cf300fb0c13546fb04a29f5fc2 X-IsSubscribed: yes 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: 2011-05/txt/msg00200.txt.bz2 --20cf300fb0c13546fb04a29f5fc2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1542 On Thu, May 5, 2011 at 9:42 PM, Joel Brobecker wrot= e: >> You have commonly system libraries debug info installed and you debug >> some unpackaged application without debug info. =A0You see there >> application function `next_line', you `break next_line' on it. >> >> Oops, the breakpoint is missed, it broke on libc static function >> `next_line' and not on the application function. > > OK. This means that we need to have a canonical form for symbols > without debug info as well. We actually have something for Ada > that could be extended to all languages, I think: We use angle > brackets to denote the fact that an entity name is a linkage > name. =A0For instance: > > =A0 =A0 =A0 =A0break here's a hastily thrown together hack of the approach I was considering when i was looking at objective-c's ambiguity problems... basically adding a decoder_info thing (which doesn't really contain anything useful atm) the idea is that we return this in linespec_result, and pass it back in on the next call to decode_line_1 in the case of objc it being non-null should be enough to disambiguate, if its non-null we're looking for an 'exact match' of the name, otherwise we can return ambiguous results. it may also be nice if we want to jump directly to the specific decoder, instead of running them all sequentially every time on re_set... its an update of an older patch hasn't been tested very well/looked at in a long time but seems to pass the testsuite with only racy differences --20cf300fb0c13546fb04a29f5fc2 Content-Type: application/octet-stream; name="foo.diff" Content-Disposition: attachment; filename="foo.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gndflwdi0 Content-length: 19146 ZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2lu dC5jCmluZGV4IGI1ZmM0NDguLmQ1ZWI1MzcgMTAwNjQ0Ci0tLSBhL2dkYi9i cmVha3BvaW50LmMKKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwpAQCAtNjQsNiAr NjQsNyBAQAogI2luY2x1ZGUgInhtbC1zeXNjYWxsLmgiCiAjaW5jbHVkZSAi cGFyc2VyLWRlZnMuaCIKICNpbmNsdWRlICJjbGkvY2xpLXV0aWxzLmgiCisj aW5jbHVkZSAibGluZXNwZWMuaCIKIAogLyogcmVhZGxpbmUgaW5jbHVkZSBm aWxlcyAqLwogI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCkBAIC03 MzM3LDcgKzczMzgsOCBAQCBjcmVhdGVfYnJlYWtwb2ludF9zYWwgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLAogCQkgICAgICAgZW51bSBicHR5cGUgdHlw ZSwgZW51bSBicGRpc3AgZGlzcG9zaXRpb24sCiAJCSAgICAgICBpbnQgdGhy ZWFkLCBpbnQgdGFzaywgaW50IGlnbm9yZV9jb3VudCwKIAkJICAgICAgIHN0 cnVjdCBicmVha3BvaW50X29wcyAqb3BzLCBpbnQgZnJvbV90dHksCi0JCSAg ICAgICBpbnQgZW5hYmxlZCwgaW50IGludGVybmFsLCBpbnQgZGlzcGxheV9j YW5vbmljYWwpCisJCSAgICAgICBpbnQgZW5hYmxlZCwgaW50IGludGVybmFs LCBpbnQgZGlzcGxheV9jYW5vbmljYWwsCisJCSAgICAgICBzdHJ1Y3QgbGlu ZXNwZWNfYnJlYWtwb2ludF9pbmZvICpkZWNvZGVyX2luZm8pCiB7CiAgIHN0 cnVjdCBicmVha3BvaW50ICpiID0gTlVMTDsKICAgaW50IGk7CkBAIC03NDQ2 LDYgKzc0NDgsNyBAQCBjcmVhdGVfYnJlYWtwb2ludF9zYWwgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLAogCX0KICAgICB9ICAgCiAKKyAgYi0+ZGVjb2Rl cl9pbmZvID0gZGVjb2Rlcl9pbmZvOwogICBiLT5kaXNwbGF5X2Nhbm9uaWNh bCA9IGRpc3BsYXlfY2Fub25pY2FsOwogICBpZiAoYWRkcl9zdHJpbmcpCiAg ICAgYi0+YWRkcl9zdHJpbmcgPSBhZGRyX3N0cmluZzsKQEAgLTc2MzEsNyAr NzYzNCwxMCBAQCBjcmVhdGVfYnJlYWtwb2ludHNfc2FsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKIAkJCSAgICAgY29uZF9zdHJpbmcsIHR5cGUsIGRp c3Bvc2l0aW9uLAogCQkJICAgICB0aHJlYWQsIHRhc2ssIGlnbm9yZV9jb3Vu dCwgb3BzLAogCQkJICAgICBmcm9tX3R0eSwgZW5hYmxlZCwgaW50ZXJuYWws Ci0JCQkgICAgIGNhbm9uaWNhbC0+c3BlY2lhbF9kaXNwbGF5KTsKKwkJCSAg ICAgY2Fub25pY2FsLT5zcGVjaWFsX2Rpc3BsYXksCisJCQkgICAgIGNhbm9u aWNhbC0+ZGVjb2Rlcl9pbmZvCisJCQkgICAgID8gY2Fub25pY2FsLT5kZWNv ZGVyX2luZm9baV0KKwkJCSAgICAgOiBOVUxMKTsKICAgICB9CiB9CiAKQEAg LTc2OTgsMTAgKzc3MDQsMTAgQEAgcGFyc2VfYnJlYWtwb2ludF9zYWxzIChj aGFyICoqYWRkcmVzcywKICAJICAgICAgfHwgKChzdHJjaHIgKCIrLSIsICgq YWRkcmVzcylbMF0pICE9IE5VTEwpCiAgCQkgICYmICgoKmFkZHJlc3MpWzFd ICE9ICdbJykpKSkKIAkqc2FscyA9IGRlY29kZV9saW5lXzEgKGFkZHJlc3Ms IDEsIGRlZmF1bHRfYnJlYWtwb2ludF9zeW10YWIsCi0JCQkgICAgICAgZGVm YXVsdF9icmVha3BvaW50X2xpbmUsIGNhbm9uaWNhbCk7CisJCQkgICAgICAg ZGVmYXVsdF9icmVha3BvaW50X2xpbmUsIGNhbm9uaWNhbCwgTlVMTCk7CiAg ICAgICBlbHNlCiAJKnNhbHMgPSBkZWNvZGVfbGluZV8xIChhZGRyZXNzLCAx LCAoc3RydWN0IHN5bXRhYiAqKSBOVUxMLCAwLAotCQkgICAgICAgICAgICAg ICBjYW5vbmljYWwpOworCQkgICAgICAgICAgICAgICBjYW5vbmljYWwsIE5V TEwpOwogICAgIH0KICAgLyogRm9yIGFueSBTQUwgdGhhdCBkaWRuJ3QgaGF2 ZSBhIGNhbm9uaWNhbCBzdHJpbmcsIGZpbGwgb25lIGluLiAgKi8KICAgaWYg KHNhbHMtPm5lbHRzID4gMCAmJiBjYW5vbmljYWwtPmNhbm9uaWNhbCA9PSBO VUxMKQpAQCAtNzkyNSw4ICs3OTMxLDEyIEBAIGNyZWF0ZV9icmVha3BvaW50 IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKIAogICAgICAgY29weV9hcmcg PSBzYXZlc3RyaW5nIChhZGRyX3N0YXJ0LCBhcmcgLSBhZGRyX3N0YXJ0KTsK ICAgICAgIGNhbm9uaWNhbC5jYW5vbmljYWwgPSB4Y2FsbG9jIChzYWxzLm5l bHRzLCBzaXplb2YgKGNoYXIgKikpOworICAgICAgY2Fub25pY2FsLmRlY29k ZXJfaW5mbyA9IHhjYWxsb2MgKHNhbHMubmVsdHMsIHNpemVvZiAoc3RydWN0 IGxpbmVzcGVjX2JyZWFrcG9pbnRfaW5mbyAqKikpOwogICAgICAgZm9yIChp ID0gMDsgaSA8IHNhbHMubmVsdHM7IGkrKykKLQljYW5vbmljYWwuY2Fub25p Y2FsW2ldID0geHN0cmR1cCAoY29weV9hcmcpOworCXsKKwkgIGNhbm9uaWNh bC5jYW5vbmljYWxbaV0gPSB4c3RyZHVwIChjb3B5X2FyZyk7CisJICBjYW5v bmljYWwuZGVjb2Rlcl9pbmZvW2ldID0gTlVMTDsKKwl9CiAgICAgICBnb3Rv IGRvbmU7CiAgICAgfQogCkBAIC04MDcyLDcgKzgwODIsOCBAQCBjcmVhdGVf YnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAJCQkJICAg ICB0ZW1wZmxhZyA/IGRpc3BfZGVsIDogZGlzcF9kb250dG91Y2gsCiAJCQkJ ICAgICB0aHJlYWQsIHRhc2ssIGlnbm9yZV9jb3VudCwgb3BzLAogCQkJCSAg ICAgZnJvbV90dHksIGVuYWJsZWQsIGludGVybmFsLAotCQkJCSAgICAgY2Fu b25pY2FsLnNwZWNpYWxfZGlzcGxheSk7CisJCQkJICAgICBjYW5vbmljYWwu c3BlY2lhbF9kaXNwbGF5LAorCQkJCSAgICAgY2Fub25pY2FsLmRlY29kZXJf aW5mb1tpXSk7CiAKIAkgICAgICBkb19jbGVhbnVwcyAob2xkX2NoYWluKTsK IApAQCAtODExNyw2ICs4MTI4LDcgQEAgY3JlYXRlX2JyZWFrcG9pbnQgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgICAgYi0+ZW5hYmxlX3N0YXRl ID0gZW5hYmxlZCA/IGJwX2VuYWJsZWQgOiBicF9kaXNhYmxlZDsKICAgICAg IGItPnBzcGFjZSA9IGN1cnJlbnRfcHJvZ3JhbV9zcGFjZTsKICAgICAgIGIt PnB5X2JwX29iamVjdCA9IE5VTEw7CisgICAgICBiLT5kZWNvZGVyX2luZm8g PSBOVUxMOwogCiAgICAgICBpZiAoZW5hYmxlZCAmJiBiLT5wc3BhY2UtPmV4 ZWN1dGluZ19zdGFydHVwCiAJICAmJiAoYi0+dHlwZSA9PSBicF9icmVha3Bv aW50CkBAIC04NTc2LDcgKzg1ODgsNyBAQCBicmVha19yYW5nZV9jb21tYW5k IChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgICAgcmFuZ2UuICBUaGlz IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgcmFuZ2VzIGxpa2UgImZvby5j OjI3LCArMTQiLAogICAgICB3aGVyZSArMTQgbWVhbnMgMTQgbGluZXMgZnJv bSB0aGUgc3RhcnQgbG9jYXRpb24uICAqLwogICBzYWxzX2VuZCA9IGRlY29k ZV9saW5lXzEgKCZhcmcsIDEsIHNhbF9zdGFydC5zeW10YWIsIHNhbF9zdGFy dC5saW5lLAotCQkJICAgICZjYW5vbmljYWxfZW5kKTsKKwkJCSAgICAmY2Fu b25pY2FsX2VuZCwgTlVMTCk7CiAKICAgLyogY2Fub25pY2FsX2VuZCBjYW4g YmUgTlVMTCBpZiBpdCB3YXMgb2YgdGhlIGZvcm0gIioweGRlYWRiZWVmIi4g ICovCiAgIGlmIChjYW5vbmljYWxfZW5kLmNhbm9uaWNhbCA9PSBOVUxMKQpA QCAtOTI1OSw5ICs5MjcxLDkgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hh ciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKIAogICBpZiAo ZGVmYXVsdF9icmVha3BvaW50X3ZhbGlkKQogICAgIHNhbHMgPSBkZWNvZGVf bGluZV8xICgmYXJnLCAxLCBkZWZhdWx0X2JyZWFrcG9pbnRfc3ltdGFiLAot CQkJICBkZWZhdWx0X2JyZWFrcG9pbnRfbGluZSwgTlVMTCk7CisJCQkgIGRl ZmF1bHRfYnJlYWtwb2ludF9saW5lLCBOVUxMLCBOVUxMKTsKICAgZWxzZQot ICAgIHNhbHMgPSBkZWNvZGVfbGluZV8xICgmYXJnLCAxLCAoc3RydWN0IHN5 bXRhYiAqKSBOVUxMLCAwLCBOVUxMKTsKKyAgICBzYWxzID0gZGVjb2RlX2xp bmVfMSAoJmFyZywgMSwgKHN0cnVjdCBzeW10YWIgKikgTlVMTCwgMCwgTlVM TCwgTlVMTCk7CiAKICAgaWYgKHNhbHMubmVsdHMgIT0gMSkKICAgICBlcnJv ciAoXygiQ291bGRuJ3QgZ2V0IGluZm9ybWF0aW9uIG9uIHNwZWNpZmllZCBs aW5lLiIpKTsKQEAgLTEwOTQ2LDcgKzEwOTU4LDcgQEAgYWRkcl9zdHJpbmdf dG9fc2FscyAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGNoYXIgKmFkZHJfc3Ry aW5nLCBpbnQgKmZvdW5kKQogCSAgICBlcnJvciAoXygibWFya2VyICVzIG5v dCBmb3VuZCIpLCBiLT5zdGF0aWNfdHJhY2VfbWFya2VyX2lkKTsKIAl9CiAg ICAgICBlbHNlCi0Jc2FscyA9IGRlY29kZV9saW5lXzEgKCZzLCAxLCAoc3Ry dWN0IHN5bXRhYiAqKSBOVUxMLCAwLCBOVUxMKTsKKwlzYWxzID0gZGVjb2Rl X2xpbmVfMSAoJnMsIDEsIChzdHJ1Y3Qgc3ltdGFiICopIE5VTEwsIDAsIE5V TEwsIGItPmRlY29kZXJfaW5mbyk7CiAgICAgfQogICBpZiAoZS5yZWFzb24g PCAwKQogICAgIHsKQEAgLTExNjEzLDEwICsxMTYyNSwxMCBAQCBkZWNvZGVf bGluZV9zcGVjXzEgKGNoYXIgKnN0cmluZywgaW50IGZ1bmZpcnN0bGluZSkK ICAgICBzYWxzID0gZGVjb2RlX2xpbmVfMSAoJnN0cmluZywgZnVuZmlyc3Rs aW5lLAogCQkJICBkZWZhdWx0X2JyZWFrcG9pbnRfc3ltdGFiLAogCQkJICBk ZWZhdWx0X2JyZWFrcG9pbnRfbGluZSwKLQkJCSAgTlVMTCk7CisJCQkgIE5V TEwsIE5VTEwpOwogICBlbHNlCiAgICAgc2FscyA9IGRlY29kZV9saW5lXzEg KCZzdHJpbmcsIGZ1bmZpcnN0bGluZSwKLQkJCSAgKHN0cnVjdCBzeW10YWIg KikgTlVMTCwgMCwgTlVMTCk7CisJCQkgIChzdHJ1Y3Qgc3ltdGFiICopIE5V TEwsIDAsIE5VTEwsIE5VTEwpOwogICBpZiAoKnN0cmluZykKICAgICBlcnJv ciAoXygiSnVuayBhdCBlbmQgb2YgbGluZSBzcGVjaWZpY2F0aW9uOiAlcyIp LCBzdHJpbmcpOwogICByZXR1cm4gc2FsczsKZGlmZiAtLWdpdCBhL2dkYi9i cmVha3BvaW50LmggYi9nZGIvYnJlYWtwb2ludC5oCmluZGV4IDdhOWMyZDQu LmYzY2NmY2QgMTAwNjQ0Ci0tLSBhL2dkYi9icmVha3BvaW50LmgKKysrIGIv Z2RiL2JyZWFrcG9pbnQuaApAQCAtNjUxLDYgKzY1MSw5IEBAIHN0cnVjdCBi cmVha3BvaW50CiAKICAgICAvKiBXaGV0aGVyIHRoaXMgd2F0Y2hwb2ludCBp cyBleGFjdCAoc2VlIHRhcmdldF9leGFjdF93YXRjaHBvaW50cykuICAqLwog ICAgIGludCBleGFjdDsKKworICAgIC8qIFdlIGhvbGQgb250byB0aGlzIGZv ciwgYW5kIHBhc3MgaXQgYmFjayBpbiB0byBkZWNvZGVfbGluZV8xLiAgKi8K KyAgICBzdHJ1Y3QgbGluZXNwZWNfYnJlYWtwb2ludF9pbmZvICpkZWNvZGVy X2luZm87CiAgIH07CiAKIHR5cGVkZWYgc3RydWN0IGJyZWFrcG9pbnQgKmJy ZWFrcG9pbnRfcDsKZGlmZiAtLWdpdCBhL2dkYi9jbGkvY2xpLWNtZHMuYyBi L2dkYi9jbGkvY2xpLWNtZHMuYwppbmRleCA3ZmQyZjUwLi4wZmM1ZWZjIDEw MDY0NAotLS0gYS9nZGIvY2xpL2NsaS1jbWRzLmMKKysrIGIvZ2RiL2NsaS9j bGktY21kcy5jCkBAIC03ODcsNyArNzg3LDcgQEAgZWRpdF9jb21tYW5kIChj aGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgICAgIC8qIE5vdyBzaG91bGQg b25seSBiZSBvbmUgYXJndW1lbnQgLS0gZGVjb2RlIGl0IGluIFNBTC4gICov CiAKICAgICAgIGFyZzEgPSBhcmc7Ci0gICAgICBzYWxzID0gZGVjb2RlX2xp bmVfMSAoJmFyZzEsIDAsIDAsIDAsIDApOworICAgICAgc2FscyA9IGRlY29k ZV9saW5lXzEgKCZhcmcxLCAwLCAwLCAwLCAwLCAwKTsKIAogICAgICAgaWYg KCEgc2Fscy5uZWx0cykKIAl7CkBAIC05MTcsNyArOTE3LDcgQEAgbGlzdF9j b21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgICBkdW1teV9i ZWcgPSAxOwogICBlbHNlCiAgICAgewotICAgICAgc2FscyA9IGRlY29kZV9s aW5lXzEgKCZhcmcxLCAwLCAwLCAwLCAwKTsKKyAgICAgIHNhbHMgPSBkZWNv ZGVfbGluZV8xICgmYXJnMSwgMCwgMCwgMCwgMCwgMCk7CiAKICAgICAgIGlm ICghc2Fscy5uZWx0cykKIAlyZXR1cm47CQkJLyogIEMrKyAgKi8KQEAgLTk1 MCw5ICs5NTAsOSBAQCBsaXN0X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZy b21fdHR5KQogICAgICAgZWxzZQogCXsKIAkgIGlmIChkdW1teV9iZWcpCi0J ICAgIHNhbHNfZW5kID0gZGVjb2RlX2xpbmVfMSAoJmFyZzEsIDAsIDAsIDAs IDApOworCSAgICBzYWxzX2VuZCA9IGRlY29kZV9saW5lXzEgKCZhcmcxLCAw LCAwLCAwLCAwLCAwKTsKIAkgIGVsc2UKLQkgICAgc2Fsc19lbmQgPSBkZWNv ZGVfbGluZV8xICgmYXJnMSwgMCwgc2FsLnN5bXRhYiwgc2FsLmxpbmUsIDAp OworCSAgICBzYWxzX2VuZCA9IGRlY29kZV9saW5lXzEgKCZhcmcxLCAwLCBz YWwuc3ltdGFiLCBzYWwubGluZSwgMCwgMCk7CiAJICBpZiAoc2Fsc19lbmQu bmVsdHMgPT0gMCkKIAkgICAgcmV0dXJuOwogCSAgaWYgKHNhbHNfZW5kLm5l bHRzID4gMSkKZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5jIGIvZ2RiL2xp bmVzcGVjLmMKaW5kZXggOTRiYjg2Zi4uNGJkNDU5YyAxMDA2NDQKLS0tIGEv Z2RiL2xpbmVzcGVjLmMKKysrIGIvZ2RiL2xpbmVzcGVjLmMKQEAgLTE0Niw2 ICsxNDYsOCBAQCBzdGF0aWMgc3RydWN0CiBzeW10YWJzX2FuZF9saW5lcyBt aW5zeW1fZm91bmQgKGludCBmdW5maXJzdGxpbmUsCiAJCQkJc3RydWN0IG1p bmltYWxfc3ltYm9sICptc3ltYm9sKTsKIAorc3RydWN0IGxpbmVzcGVjX2Jy ZWFrcG9pbnRfaW5mbyAqbWFrZV9kZWNvZGVyX2luZm8oZW51bSBsaW5lc3Bl Y19kZWNvZGVyX2Z1bmNfaWQpOworCiAvKiBIZWxwZXIgZnVuY3Rpb25zLiAg Ki8KIAogLyogSXNzdWUgYSBoZWxwZnVsIGhpbnQgb24gdXNpbmcgdGhlIGNv bW1hbmQgY29tcGxldGlvbiBmZWF0dXJlIG9uCkBAIC03ODgsNyArNzkwLDgg QEAga2VlcF9uYW1lX2luZm8gKGNoYXIgKnB0cikKIAogc3RydWN0IHN5bXRh YnNfYW5kX2xpbmVzCiBkZWNvZGVfbGluZV8xIChjaGFyICoqYXJncHRyLCBp bnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRh YiwKLQkgICAgICAgaW50IGRlZmF1bHRfbGluZSwgc3RydWN0IGxpbmVzcGVj X3Jlc3VsdCAqY2Fub25pY2FsKQorCSAgICAgICBpbnQgZGVmYXVsdF9saW5l LCBzdHJ1Y3QgbGluZXNwZWNfcmVzdWx0ICpjYW5vbmljYWwsCisJICAgICAg IHN0cnVjdCBsaW5lc3BlY19icmVha3BvaW50X2luZm8gKmRlY29kZXJfaW5m bykKIHsKICAgY2hhciAqcDsKICAgY2hhciAqcTsKQEAgLTgyMiw3ICs4MjUs MTcgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZp cnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCiAgIC8q IFNlZSBpZiBhcmcgaXMgKlBDLiAgKi8KIAogICBpZiAoKiphcmdwdHIgPT0g JyonKQotICAgIHJldHVybiBkZWNvZGVfaW5kaXJlY3QgKGFyZ3B0cik7Cisg ICAgeworICAgICAgaWYgKGNhbm9uaWNhbCkKKyAgICAgICAgeworCSAgc3Ry dWN0IGxpbmVzcGVjX2JyZWFrcG9pbnRfaW5mbyAqKmRlY29kZXJfaW5mbzsK KworCSAgZGVjb2Rlcl9pbmZvID0geG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3Qg bGluZXNwZWMgKiopICogMSk7CisJICBkZWNvZGVyX2luZm9bMF0gPSBtYWtl X2RlY29kZXJfaW5mbyAoZGVjb2Rlcl9pbmRpcmVjdCk7CisJICBjYW5vbmlj YWwtPmRlY29kZXJfaW5mbyA9IGRlY29kZXJfaW5mbzsKKyAgICAgICAgfQor ICAgICAgcmV0dXJuIGRlY29kZV9pbmRpcmVjdCAoYXJncHRyKTsKKyAgICB9 CiAKICAgaXNfcXVvdGVkID0gKHN0cmNociAoZ2V0X2dkYl9jb21wbGV0ZXJf cXVvdGVfY2hhcmFjdGVycyAoKSwKIAkJICAgICAgICoqYXJncHRyKSAhPSBO VUxMKTsKQEAgLTg1Myw2ICs4NjYsMjEgQEAgZGVjb2RlX2xpbmVfMSAoY2hh ciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAq ZGVmYXVsdF9zeW10YWIsCiAKICAgICB2YWx1ZXMgPSBkZWNvZGVfb2JqYyAo YXJncHRyLCBmdW5maXJzdGxpbmUsIE5VTEwsCiAJCQkgIGNhbm9uaWNhbCwg c2F2ZWRfYXJnKTsKKyAgICBpZiAoY2Fub25pY2FsICYmIHZhbHVlcy5zYWxz KQorICAgICAgeworCXN0cnVjdCBsaW5lc3BlY19icmVha3BvaW50X2luZm8g KipkZWNvZGVyX2luZm87CisJaW50IGk7CisKKwlkZWNvZGVyX2luZm8gPSB4 bWFsbG9jIChzaXplb2YgKHN0cnVjdCBsaW5lc3BlYyAqKikgKiB2YWx1ZXMu bmVsdHMpOworCisJZm9yIChpID0gMDsgaSA8IHZhbHVlcy5uZWx0czsgaSsr KQorICAgICAgICAgIHsKKwkgICAgZGVjb2Rlcl9pbmZvW2ldID0gbWFrZV9k ZWNvZGVyX2luZm8gKGRlY29kZXJfb2JqYyk7CisJICB9CisKKwljYW5vbmlj YWwtPmRlY29kZXJfaW5mbyA9IGRlY29kZXJfaW5mbzsKKyAgICAgIH0KKwog ICAgIGlmICh2YWx1ZXMuc2FscyAhPSBOVUxMKQogICAgICAgcmV0dXJuIHZh bHVlczsKICAgfQpAQCAtODc4LDYgKzkwNiwyMiBAQCBkZWNvZGVfbGluZV8x IChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3lt dGFiICpkZWZhdWx0X3N5bXRhYiwKIAkJCQkgICAgc2F2ZWRfYXJnLCBwKTsK IAkgIGlmIChpc19xdW90ZWQgJiYgKiphcmdwdHIgPT0gJ1wnJykKIAkgICAg KmFyZ3B0ciA9ICphcmdwdHIgKyAxOworCisJICBpZiAoY2Fub25pY2FsKQor ICAgICAgICAgICAgeworCSAgICAgIHN0cnVjdCBsaW5lc3BlY19icmVha3Bv aW50X2luZm8gKipkZWNvZGVyX2luZm87CisJICAgICAgaW50IGk7CisKKwkg ICAgICBkZWNvZGVyX2luZm8gPSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBs aW5lc3BlYyAqKikKKwkJCQkgICAgICAqIHZhbHVlcy5uZWx0cyk7CisKKwkg ICAgICBmb3IgKGkgPSAwOyBpIDwgdmFsdWVzLm5lbHRzOyBpKyspCisJCXsK KwkJICBkZWNvZGVyX2luZm9baV0gPSBtYWtlX2RlY29kZXJfaW5mbyAoZGVj b2Rlcl9jb21wb3VuZCk7CisJCX0KKworCSAgICAgIGNhbm9uaWNhbC0+ZGVj b2Rlcl9pbmZvID0gZGVjb2Rlcl9pbmZvOworICAgICAgICAgICAgfQogCSAg cmV0dXJuIHZhbHVlczsKIAl9CiAKQEAgLTE5NDEsNiArMTk4NSwxNiBAQCBk ZWNvZGVfYWxsX2RpZ2l0cyAoY2hhciAqKmFyZ3B0ciwgc3RydWN0IHN5bXRh YiAqZGVmYXVsdF9zeW10YWIsCiAgIGlmIChuZWVkX2Nhbm9uaWNhbCkKICAg ICBidWlsZF9jYW5vbmljYWxfbGluZV9zcGVjICh2YWx1ZXMuc2FscywgTlVM TCwgY2Fub25pY2FsKTsKICAgdmFsdWVzLnNhbHNbMF0uZXhwbGljaXRfbGlu ZSA9IDE7CisKKyAgaWYgKGNhbm9uaWNhbCkKKyAgICB7CisgICAgICBzdHJ1 Y3QgbGluZXNwZWNfYnJlYWtwb2ludF9pbmZvICoqZGVjb2Rlcl9pbmZvOwor CisgICAgICBkZWNvZGVyX2luZm8gPSB4bWFsbG9jIChzaXplb2YgKHN0cnVj dCBsaW5lc3BlYyAqKikgKiAxKTsKKyAgICAgIGRlY29kZXJfaW5mb1swXSA9 IG1ha2VfZGVjb2Rlcl9pbmZvIChkZWNvZGVyX2FsbF9kaWdpdHMpOworICAg ICAgY2Fub25pY2FsLT5kZWNvZGVyX2luZm8gPSBkZWNvZGVyX2luZm87Cisg ICAgfQorCiAgIHJldHVybiB2YWx1ZXM7CiB9CiAKQEAgLTE5NjEsNiArMjAx NSwxNSBAQCBkZWNvZGVfZG9sbGFyIChjaGFyICpjb3B5LCBpbnQgZnVuZmly c3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwKICAgc3Ry dWN0IHN5bWJvbCAqc3ltOwogICBzdHJ1Y3QgbWluaW1hbF9zeW1ib2wgKm1z eW1ib2w7CiAKKyAgaWYgKGNhbm9uaWNhbCkKKyAgICB7CisgICAgICBzdHJ1 Y3QgbGluZXNwZWNfYnJlYWtwb2ludF9pbmZvICoqZGVjb2Rlcl9pbmZvOwor CisgICAgICBkZWNvZGVyX2luZm8gPSB4bWFsbG9jIChzaXplb2YgKHN0cnVj dCBsaW5lc3BlYyAqKikgKiAxKTsKKyAgICAgIGRlY29kZXJfaW5mb1swXSA9 IG1ha2VfZGVjb2Rlcl9pbmZvIChkZWNvZGVyX2RvbGxhcik7CisgICAgICBj YW5vbmljYWwtPmRlY29kZXJfaW5mbyA9IGRlY29kZXJfaW5mbzsKKyAgICB9 CisKICAgcCA9IChjb3B5WzFdID09ICckJykgPyBjb3B5ICsgMiA6IGNvcHkg KyAxOwogICB3aGlsZSAoKnAgPj0gJzAnICYmICpwIDw9ICc5JykKICAgICBw Kys7CkBAIC0yMDM5LDYgKzIxMDIsMTUgQEAgZGVjb2RlX2xhYmVsIChzdHJ1 Y3Qgc3ltYm9sICpmdW5jdGlvbl9zeW1ib2wsIGNoYXIgKmNvcHksCiAgIHN0 cnVjdCBzeW1ib2wgKnN5bTsKICAgc3RydWN0IGJsb2NrICpibG9jazsKIAor ICBpZiAoY2Fub25pY2FsKQorICAgIHsKKyAgICAgIHN0cnVjdCBsaW5lc3Bl Y19icmVha3BvaW50X2luZm8gKipkZWNvZGVyX2luZm87CisKKyAgICAgIGRl Y29kZXJfaW5mbyA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IGxpbmVzcGVj ICoqKSAqIDEpOworICAgICAgZGVjb2Rlcl9pbmZvWzBdID0gbWFrZV9kZWNv ZGVyX2luZm8gKGRlY29kZXJfbGFiZWwpOworICAgICAgY2Fub25pY2FsLT5k ZWNvZGVyX2luZm8gPSBkZWNvZGVyX2luZm87CisgICAgfQorCiAgIGlmIChm dW5jdGlvbl9zeW1ib2wpCiAgICAgYmxvY2sgPSBTWU1CT0xfQkxPQ0tfVkFM VUUgKGZ1bmN0aW9uX3N5bWJvbCk7CiAgIGVsc2UKQEAgLTIwNzIsNiArMjE0 NCwxNSBAQCBkZWNvZGVfdmFyaWFibGUgKGNoYXIgKmNvcHksIGludCBmdW5m aXJzdGxpbmUsCiAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKICAgc3RydWN0IG1p bmltYWxfc3ltYm9sICptc3ltYm9sOwogCisgIGlmIChjYW5vbmljYWwpCisg ICAgeworICAgICAgc3RydWN0IGxpbmVzcGVjX2JyZWFrcG9pbnRfaW5mbyAq KmRlY29kZXJfaW5mbzsKKworICAgICAgZGVjb2Rlcl9pbmZvID0geG1hbGxv YyAoc2l6ZW9mIChzdHJ1Y3QgbGluZXNwZWMgKiopICogMSk7CisgICAgICBk ZWNvZGVyX2luZm9bMF0gPSBtYWtlX2RlY29kZXJfaW5mbyAoZGVjb2Rlcl92 YXJpYWJsZSk7CisgICAgICBjYW5vbmljYWwtPmRlY29kZXJfaW5mbyA9IGRl Y29kZXJfaW5mbzsKKyAgICB9CisKICAgc3ltID0gbG9va3VwX3N5bWJvbCAo Y29weSwKIAkJICAgICAgIChmaWxlX3N5bXRhYgogCQkJPyBCTE9DS1ZFQ1RP Ul9CTE9DSyAoQkxPQ0tWRUNUT1IgKGZpbGVfc3ltdGFiKSwKQEAgLTIyMjMs MyArMjMwNCwxMyBAQCBpbml0X2xpbmVzcGVjX3Jlc3VsdCAoc3RydWN0IGxp bmVzcGVjX3Jlc3VsdCAqbHIpCiB7CiAgIG1lbXNldCAobHIsIDAsIHNpemVv ZiAoKmxyKSk7CiB9CisKK3N0cnVjdCBsaW5lc3BlY19icmVha3BvaW50X2lu Zm8gKgorbWFrZV9kZWNvZGVyX2luZm8oZW51bSBsaW5lc3BlY19kZWNvZGVy X2Z1bmNfaWQgZGVjb2RlcikKK3sKKyAgc3RydWN0IGxpbmVzcGVjX2JyZWFr cG9pbnRfaW5mbyAqZGVjb2Rlcl9pbmZvID0geG1hbGxvYyhzaXplb2Yoc3Ry dWN0IGxpbmVzcGVjX2JyZWFrcG9pbnRfaW5mbykpOworCisgIGRlY29kZXJf aW5mby0+ZGVjb2RlciA9IGRlY29kZXI7CisKKyAgcmV0dXJuIGRlY29kZXJf aW5mbzsKK30KZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5oIGIvZ2RiL2xp bmVzcGVjLmgKaW5kZXggM2M4NmFmMy4uOTMyNGY4NSAxMDA2NDQKLS0tIGEv Z2RiL2xpbmVzcGVjLmgKKysrIGIvZ2RiL2xpbmVzcGVjLmgKQEAgLTIwLDYg KzIwLDI0IEBACiAKIHN0cnVjdCBzeW10YWI7CiAKK2VudW0gbGluZXNwZWNf ZGVjb2Rlcl9mdW5jX2lkIHsKKyAgZGVjb2Rlcl91bmtub3duID0gMCwKKyAg ZGVjb2Rlcl9jb21wb3VuZCwKKyAgZGVjb2Rlcl9vYmpjLAorICBkZWNvZGVy X2xhYmVsLAorICBkZWNvZGVyX2luZGlyZWN0LAorICBkZWNvZGVyX2FsbF9k aWdpdHMsCisgIGRlY29kZXJfZG9sbGFyLAorICBkZWNvZGVyX3ZhcmlhYmxl Cit9OworCisvKiBJZiBsaW5lc3BlYyByZXR1cm5zIG9uZSBvZiB0aGVzZSBp biBsaW5lc3BlY19yZXN1bHQgaXQgd2FudHMgeW91CisgICB0byBwYXNzIGl0 IGJhY2sgdG8gaXQgc2hvdWxkIHlvdSBjYWxsIGRlY29kZV9saW5lXzEgYWdh aW4uICAqLworc3RydWN0IGxpbmVzcGVjX2JyZWFrcG9pbnRfaW5mbworewor ICBlbnVtIGxpbmVzcGVjX2RlY29kZXJfZnVuY19pZCBkZWNvZGVyOworfTsK KwogLyogQW4gaW5zdGFuY2Ugb2YgdGhpcyBtYXkgYmUgZmlsbGVkIGluIGJ5 IGRlY29kZV9saW5lXzEuICBUaGUgY2FsbGVyCiAgICBtdXN0IGNhbGwgaW5p dF9saW5lc3BlY19yZXN1bHQgdG8gaW5pdGlhbGl6ZSBpdC4gICovCiAKQEAg LTM3LDYgKzU1LDEwIEBAIHN0cnVjdCBsaW5lc3BlY19yZXN1bHQKICAgICAg ZWxlbWVudCBpbiBpdCBhcmUgYWxsb2NhdGVkIHdpdGggeG1hbGxvYyBhbmQg bXVzdCBiZSBmcmVlZCBieSB0aGUKICAgICAgY2FsbGVyLiAgKi8KICAgY2hh ciAqKmNhbm9uaWNhbDsKKworICAvKiBTdHVmZiBsaW5lc3BlYyB3YW50cyBi cmVha3BvaW50IHRvIGhvbGQgb250byBhbmQgcGFzcyBiYWNrIG9uCisgICAg IGJyZWFrcG9pbnQgcmUgc2V0dGluZy4gU2FtZSBydWxlcyBhcyBjYW5vbmlj YWwuICAqLworICBzdHJ1Y3QgbGluZXNwZWNfYnJlYWtwb2ludF9pbmZvICoq ZGVjb2Rlcl9pbmZvOwogfTsKIAogLyogSW5pdGlhbGl6ZSBhIGxpbmVzcGVj X3Jlc3VsdC4gICovCkBAIC00Niw2ICs2OCw3IEBAIGV4dGVybiB2b2lkIGlu aXRfbGluZXNwZWNfcmVzdWx0IChzdHJ1Y3QgbGluZXNwZWNfcmVzdWx0ICop OwogZXh0ZXJuIHN0cnVjdCBzeW10YWJzX2FuZF9saW5lcwogCWRlY29kZV9s aW5lXzEgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsCiAJCSAg ICAgICBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwgaW50IGRlZmF1 bHRfbGluZSwKLQkJICAgICAgIHN0cnVjdCBsaW5lc3BlY19yZXN1bHQgKmNh bm9uaWNhbCk7CisJCSAgICAgICBzdHJ1Y3QgbGluZXNwZWNfcmVzdWx0ICpj YW5vbmljYWwsCisJCSAgICAgICBzdHJ1Y3QgbGluZXNwZWNfYnJlYWtwb2lu dF9pbmZvICpkZWNvZGVyX2luZm8pOwogCiAjZW5kaWYgLyogZGVmaW5lZCAo TElORVNQRUNfSCkgKi8KZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9u LmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCmluZGV4IDhhN2JjNjYuLjkwZDVk YzggMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMKKysrIGIvZ2Ri L3B5dGhvbi9weXRob24uYwpAQCAtNDU0LDcgKzQ1NCw3IEBAIGdkYnB5X2Rl Y29kZV9saW5lIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiAJ ICBhcmcgPSB4c3RyZHVwIChhcmcpOwogCSAgbWFrZV9jbGVhbnVwICh4ZnJl ZSwgYXJnKTsKIAkgIGNvcHkgPSBhcmc7Ci0JICBzYWxzID0gZGVjb2RlX2xp bmVfMSAoJmNvcHksIDAsIDAsIDAsIDApOworCSAgc2FscyA9IGRlY29kZV9s aW5lXzEgKCZjb3B5LCAwLCAwLCAwLCAwLCAwKTsKIAkgIG1ha2VfY2xlYW51 cCAoeGZyZWUsIHNhbHMuc2Fscyk7CiAJfQogICAgICAgZWxzZQpkaWZmIC0t Z2l0IGEvZ2RiL3N5bXRhYi5jIGIvZ2RiL3N5bXRhYi5jCmluZGV4IGQ5OGFj NTcuLjM2NDUwOTMgMTAwNjQ0Ci0tLSBhL2dkYi9zeW10YWIuYworKysgYi9n ZGIvc3ltdGFiLmMKQEAgLTQzOTUsNyArNDM5NSw3IEBAIGRlY29kZV9saW5l X3NwZWMgKGNoYXIgKnN0cmluZywgaW50IGZ1bmZpcnN0bGluZSkKIAogICBz YWxzID0gZGVjb2RlX2xpbmVfMSAoJnN0cmluZywgZnVuZmlyc3RsaW5lLAog CQkJY3Vyc2FsLnN5bXRhYiwgY3Vyc2FsLmxpbmUsCi0JCQlOVUxMKTsKKwkJ CU5VTEwsIE5VTEwpOwogCiAgIGlmICgqc3RyaW5nKQogICAgIGVycm9yIChf KCJKdW5rIGF0IGVuZCBvZiBsaW5lIHNwZWNpZmljYXRpb246ICVzIiksIHN0 cmluZyk7CmRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3Ry YWNlcG9pbnQuYwppbmRleCAxMTlhYjIyLi4wMjI2NjEzIDEwMDY0NAotLS0g YS9nZGIvdHJhY2Vwb2ludC5jCisrKyBiL2dkYi90cmFjZXBvaW50LmMKQEAg LTIzMzMsNyArMjMzMyw3IEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGlu dCBmcm9tX3R0eSkKICAgICBlcnJvciAoXygicmVxdWlyZXMgYW4gYXJndW1l bnQgKGZ1bmN0aW9uLCAiCiAJICAgICAibGluZSBvciAqYWRkcikgdG8gZGVm aW5lIGEgc2NvcGUiKSk7CiAKLSAgc2FscyA9IGRlY29kZV9saW5lXzEgKCZh cmdzLCAxLCBOVUxMLCAwLCBOVUxMKTsKKyAgc2FscyA9IGRlY29kZV9saW5l XzEgKCZhcmdzLCAxLCBOVUxMLCAwLCBOVUxMLCBOVUxMKTsKICAgaWYgKHNh bHMubmVsdHMgPT0gMCkKICAgICByZXR1cm47CQkvKiBQcmVzdW1hYmx5IGRl Y29kZV9saW5lXzEgaGFzIGFscmVhZHkgd2FybmVkLiAgKi8KIAo= --20cf300fb0c13546fb04a29f5fc2--