From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 11:02:56 2014 Received: (at submit) by debbugs.gnu.org; 30 Apr 2014 15:02:56 +0000 Received: from localhost ([127.0.0.1]:46643 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfW2A-0005Ka-NW for submit@debbugs.gnu.org; Wed, 30 Apr 2014 11:02:55 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55165) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfW28-0005KJ-1V for submit@debbugs.gnu.org; Wed, 30 Apr 2014 11:02:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WfW1v-0006UE-GT for submit@debbugs.gnu.org; Wed, 30 Apr 2014 11:02:46 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:54873) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WfW1v-0006UA-ED for submit@debbugs.gnu.org; Wed, 30 Apr 2014 11:02:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56802) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WfW1o-00068s-7m for bug-grep@gnu.org; Wed, 30 Apr 2014 11:02:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WfW1h-0006Q5-2D for bug-grep@gnu.org; Wed, 30 Apr 2014 11:02:32 -0400 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:36004) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WfW1g-0006Pi-EM for bug-grep@gnu.org; Wed, 30 Apr 2014 11:02:25 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id 6BDDF80279 for ; Thu, 1 May 2014 00:02:20 +0900 (JST) Received: from mail08.kcn.ne.jp ([61.86.6.187]) by imp03 with bizsmtp id wF2L1n00H426eXR01F2LJK; Thu, 01 May 2014 00:02:20 +0900 X-OrgRCPT: bug-grep@gnu.org Received: from [10.120.1.66] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail08.kcn.ne.jp (Postfix) with ESMTPA id E710712B802E for ; Thu, 1 May 2014 00:02:19 +0900 (JST) Date: Thu, 01 May 2014 00:02:19 +0900 From: Norihiro Tanaka To: bug-grep@gnu.org Subject: [PATCH] grep: fix the different behaviour for a invalid sequence between KWset and DFA Message-Id: <20140501000218.8198.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5361104C00000000819C_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --------_5361104C00000000819C_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Thare is different behaviour for a invalid sequence between KWset and DFA. encode() { echo "$1" | tr ABC '\357\274\241'; } encode ABC | env LC_ALL=en_US.utf8 src/grep "$(encode A)\|q" encode ABC | env LC_ALL=en_US.utf8 src/grep -F "$(encode A)" encode sABC | env LC_ALL=en_US.utf8 src/grep "a$(encode A)\|q" encode sABC | env LC_ALL=en_US.utf8 src/grep -F "a$(encode A)" We expect that all of them are same results, but only 4th returns 1 row. This patch fixes it, changes all into 1 row returned. Norihiro --------_5361104C00000000819C_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSAwYjUwODQyODZjMjNlNzUxMzljYzA5ZTAyYzFhZDg0OTUwNTllYjM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBXZWQsIDMwIEFwciAyMDE0IDExOjIyOjI3ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogZml4IHRoZSBkaWZmZXJlbnQgYmVoYXZpb3VyIGZvciBhIGludmFsaWQgc2VxdWVuY2UKIGJl dHdlZW4gS1dzZXQgYW5kIERGQQoKKiBzcmMvZGZhLmMgKGN0b2spOiBEZWZpbmUgbmV3IGdsb2Jh bCB2YXJpYWJsZS4KKGRmYW1iY2FjaGUpOiBEb24ndCBjYWNoZSBpbnZhbGlkIHNlcXVlbmNlcywg YmVjYXVzZSBpdCBjYW4ndCBiZQpleHByZXNzZWQgd2l0aCBhbnkgd2lkZSBjaGFyYWN0ZXIuCiht YnNfdG9fd2NoYXIpOiBSZXR1cm4gV0VPRiBmb3IgaW52YWxpZCBzZXF1ZW5jZXMuCihwYXJzZV9i cmFja2V0X2V4cCk6IEZpeCBpdC4KKGxleCk6IFNldCBgY3RvaycuCihhdG9tLCBtYXRjaF9hbnlj aGFyLCBtYXRjaF9tYl9jaGFyc2V0KTogRml4IGl0LgoqIHNyYy9zZWFyY2h1dGlscy5jIChpc19t Yl9taWRkbGUpOiBGaXggaXQuCiogdGVzdHMvcHJlZml4LW9mLW11bHRpYnl0ZTogRml4IGl0Lgot LS0KIHNyYy9kZmEuYyAgICAgICAgICAgICAgICAgfCAxMDEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2t3c2VhcmNoLmMgICAgICAgICAgICB8ICAg NyArLS0tCiBzcmMvc2VhcmNodXRpbHMuYyAgICAgICAgIHwgICAyICstCiB0ZXN0cy9wcmVmaXgt b2YtbXVsdGlieXRlIHwgIDEyICsrKystLQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25z KCspLCA1MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMK aW5kZXggMzYyZGUyYy4uYzgzYTk0MCAxMDA2NDQKLS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9k ZmEuYwpAQCAtNDU2LDkgKzQ1NiwxMyBAQCBkZmFtYmNhY2hlIChzdHJ1Y3QgZGZhICpkKQogICAg ICAgd2ludF90IHdpOwogICAgICAgc3dpdGNoIChtYnJ0b3djICgmd2MsICZjLCAxLCAmcykpCiAg ICAgICAgIHsKLSAgICAgICAgZGVmYXVsdDogd2kgPSB3YzsgYnJlYWs7Ci0gICAgICAgIGNhc2Ug KHNpemVfdCkgLTI6IHdpID0gV0VPRjsgYnJlYWs7Ci0gICAgICAgIGNhc2UgKHNpemVfdCkgLTE6 IHdpID0gdWM7IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIHdpID0gd2M7Cisg ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgKHNpemVfdCkgLTE6CisgICAgICAgIGNhc2Ug KHNpemVfdCkgLTI6CisgICAgICAgICAgd2kgPSBXRU9GOworICAgICAgICAgIGJyZWFrOwogICAg ICAgICB9CiAgICAgICBkLT5tYnJ0b3djX2NhY2hlW3VjXSA9IHdpOwogICAgIH0KQEAgLTQ5Miw3 ICs0OTYsNiBAQCBtYnNfdG9fd2NoYXIgKHdjaGFyX3QgKnB3YywgY2hhciBjb25zdCAqcywgc2l6 ZV90IG4sIHN0cnVjdCBkZmEgKmQpCiAgICAgICBpZiAoMCA8IG5ieXRlcyAmJiBuYnl0ZXMgPCAo c2l6ZV90KSAtMikKICAgICAgICAgcmV0dXJuIG5ieXRlczsKICAgICAgIG1lbXNldCAoJmQtPm1i cywgMCwgc2l6ZW9mIGQtPm1icyk7Ci0gICAgICB3YyA9IHVjOwogICAgIH0KIAogICAqcHdjID0g d2M7CkBAIC04NDcsNiArODUwLDggQEAgc3RhdGljIGludCBjdXJfbWJfbGVuID0gMTsgICAgICAv KiBMZW5ndGggb2YgdGhlIG11bHRpYnl0ZSByZXByZXNlbnRhdGlvbiBvZgogLyogVGhlc2UgdmFy aWFibGVzIGFyZSB1c2VkIG9ubHkgaWYgKE1CX0NVUl9NQVggPiAxKS4gICovCiBzdGF0aWMgd2No YXJfdCB3Y3RvazsgICAgICAgICAgIC8qIFdpZGUgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9uIG9m IHRoZSBjdXJyZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpYnl0 ZSBjaGFyYWN0ZXIuICAqLworc3RhdGljIHVuc2lnbmVkIGludCBjdG9rOyAgICAgICAvKiBTaW5n bGUgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjdXJyZW50CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG11bHRpYnl0ZSBjaGFyYWN0ZXIuICAqLwogCiAKIC8qIE5v dGUgdGhhdCBjaGFyYWN0ZXJzIGJlY29tZSB1bnNpZ25lZCBoZXJlLiAgKi8KQEAgLTExMjgsMTkg KzExMzMsMjIgQEAgcGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiAgICAgICAgICAgICAgICAgICAg ICB0byB0aGUgcGFpciBvZiByYW5nZXMsIFttLXpdIFtNLVpdLiAgQWx0aG91Z2ggdGhpcyBjb2Rl CiAgICAgICAgICAgICAgICAgICAgICBpcyB3cm9uZyBpbiBtdWx0aXBsZSB3YXlzLCBpdCdzIG5l dmVyIHVzZWQgaW4gcHJhY3RpY2UuCiAgICAgICAgICAgICAgICAgICAgICBGSVhNRTogUmVtb3Zl IHRoaXMgKGFuZCByZWxhdGVkKSB1bnVzZWQgY29kZS4gICovCi0gICAgICAgICAgICAgICAgICB3 b3JrX21iYy0+cmFuZ2VzCi0gICAgICAgICAgICAgICAgICAgID0gbWF5YmVfcmVhbGxvYyAod29y a19tYmMtPnJhbmdlcywgd29ya19tYmMtPm5yYW5nZXMgKyAyLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZyYW5nZXNfYWwsIHNpemVvZiAqd29ya19tYmMtPnJhbmdlcyk7 Ci0gICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2VzW3dvcmtfbWJjLT5ucmFuZ2VzXS5i ZWcKLSAgICAgICAgICAgICAgICAgICAgPSBjYXNlX2ZvbGQgPyB0b3dsb3dlciAod2MpIDogd2M7 Ci0gICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2VzW3dvcmtfbWJjLT5ucmFuZ2VzKytd LmVuZAotICAgICAgICAgICAgICAgICAgICA9IGNhc2VfZm9sZCA/IHRvd2xvd2VyICh3YzIpIDog d2MyOwotCi0gICAgICAgICAgICAgICAgICBpZiAoY2FzZV9mb2xkICYmIChpc3dhbHBoYSAod2Mp IHx8IGlzd2FscGhhICh3YzIpKSkKKyAgICAgICAgICAgICAgICAgIGlmICh3YyAhPSBXRU9GICYm IHdjMiAhPSBXRU9GKQogICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg ICAgd29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uYmVnID0gdG93dXBwZXIgKHdj KTsKKyAgICAgICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2VzCisgICAgICAgICAgICAg ICAgICAgICAgICA9IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5yYW5nZXMsIHdvcmtfbWJjLT5u cmFuZ2VzICsgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJh bmdlc19hbCwgc2l6ZW9mICp3b3JrX21iYy0+cmFuZ2VzKTsKKyAgICAgICAgICAgICAgICAgICAg ICB3b3JrX21iYy0+cmFuZ2VzW3dvcmtfbWJjLT5ucmFuZ2VzXS5iZWcKKyAgICAgICAgICAgICAg ICAgICAgICAgID0gY2FzZV9mb2xkID8gdG93bG93ZXIgKHdjKSA6IHdjOwogICAgICAgICAgICAg ICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZXNbd29ya19tYmMtPm5yYW5nZXMrK10uZW5kCi0gICAg ICAgICAgICAgICAgICAgICAgICA9IHRvd3VwcGVyICh3YzIpOworICAgICAgICAgICAgICAgICAg ICAgICAgPSBjYXNlX2ZvbGQgPyB0b3dsb3dlciAod2MyKSA6IHdjMjsKKworICAgICAgICAgICAg ICAgICAgICAgIGlmIChjYXNlX2ZvbGQgJiYgKGlzd2FscGhhICh3YykgfHwgaXN3YWxwaGEgKHdj MikpKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg ICB3b3JrX21iYy0+cmFuZ2VzW3dvcmtfbWJjLT5ucmFuZ2VzXS5iZWcgPSB0b3d1cHBlciAod2Mp OworICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2VzW3dvcmtfbWJjLT5u cmFuZ2VzKytdLmVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gdG93dXBwZXIgKHdj Mik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UgaWYgKHVzaW5nX3NpbXBsZV9sb2Nh bGUgKCkpCkBAIC0xMTg0LDIzICsxMTkyLDI4IEBAIHBhcnNlX2JyYWNrZXRfZXhwICh2b2lkKQog ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgIGlmIChjYXNlX2ZvbGQpCi0g ICAgICAgIHsKLSAgICAgICAgICB3Y2hhcl90IGZvbGRlZFtDQVNFX0ZPTERFRF9CVUZTSVpFXTsK LSAgICAgICAgICBpbnQgaSwgbiA9IGNhc2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyAod2MsIGZvbGRl ZCk7Ci0gICAgICAgICAgd29ya19tYmMtPmNoYXJzID0gbWF5YmVfcmVhbGxvYyAod29ya19tYmMt PmNoYXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtf bWJjLT5uY2hhcnMgKyBuLCAmY2hhcnNfYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mICp3b3JrX21iYy0+Y2hhcnMpOwotICAgICAgICAgIGZvciAo aSA9IDA7IGkgPCBuOyBpKyspCi0gICAgICAgICAgICBpZiAoIXNldGJpdF93YyAoZm9sZGVkW2ld LCBjY2wpKQotICAgICAgICAgICAgICB3b3JrX21iYy0+Y2hhcnNbd29ya19tYmMtPm5jaGFycysr XSA9IGZvbGRlZFtpXTsKLSAgICAgICAgfQotICAgICAgaWYgKCFzZXRiaXRfd2MgKHdjLCBjY2wp KQorICAgICAgaWYgKHdjICE9IFdFT0YpCiAgICAgICAgIHsKLSAgICAgICAgICB3b3JrX21iYy0+ Y2hhcnMgPSBtYXliZV9yZWFsbG9jICh3b3JrX21iYy0+Y2hhcnMsIHdvcmtfbWJjLT5uY2hhcnMs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNoYXJzX2FsLCBz aXplb2YgKndvcmtfbWJjLT5jaGFycyk7Ci0gICAgICAgICAgd29ya19tYmMtPmNoYXJzW3dvcmtf bWJjLT5uY2hhcnMrK10gPSB3YzsKKyAgICAgICAgICBpZiAoY2FzZV9mb2xkKQorICAgICAgICAg ICAgeworICAgICAgICAgICAgICB3Y2hhcl90IGZvbGRlZFtDQVNFX0ZPTERFRF9CVUZTSVpFXTsK KyAgICAgICAgICAgICAgaW50IGksIG4gPSBjYXNlX2ZvbGRlZF9jb3VudGVycGFydHMgKHdjLCBm b2xkZWQpOworICAgICAgICAgICAgICB3b3JrX21iYy0+Y2hhcnMgPSBtYXliZV9yZWFsbG9jICh3 b3JrX21iYy0+Y2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdvcmtfbWJjLT5uY2hhcnMgKyBuLCAmY2hhcnNfYWwsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAqd29ya19tYmMtPmNoYXJzKTsK KyAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKKyAgICAgICAgICAgICAgICBp ZiAoIXNldGJpdF93YyAoZm9sZGVkW2ldLCBjY2wpKQorICAgICAgICAgICAgICAgICAgd29ya19t YmMtPmNoYXJzW3dvcmtfbWJjLT5uY2hhcnMrK10gPSBmb2xkZWRbaV07CisgICAgICAgICAgICB9 CisgICAgICAgICAgZWxzZSBpZiAoIXNldGJpdF93YyAod2MsIGNjbCkpCisgICAgICAgICAgICB7 CisgICAgICAgICAgICAgIHdvcmtfbWJjLT5jaGFycyA9IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJj LT5jaGFycywgd29ya19tYmMtPm5jaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmNoYXJzX2FsLCBzaXplb2YgKndvcmtfbWJjLT5jaGFycyk7Cisg ICAgICAgICAgICAgIHdvcmtfbWJjLT5jaGFyc1t3b3JrX21iYy0+bmNoYXJzKytdID0gd2M7Cisg ICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgc2V0Yml0IChjLCBj Y2wpOwogICAgIH0KICAgd2hpbGUgKCh3YyA9IHdjMSwgKGMgPSBjMSkgIT0gJ10nKSk7CiAKQEAg LTEyNDUsNyArMTI1OCw4IEBAIGxleCAodm9pZCkKICAgICAgImlmIChiYWNrc2xhc2gpIC4uLiIu ICAqLwogICBmb3IgKGkgPSAwOyBpIDwgMjsgKytpKQogICAgIHsKLSAgICAgIEZFVENIX1dDIChj LCB3Y3RvaywgTlVMTCk7CisgICAgICBGRVRDSF9XQyAoY3Rvaywgd2N0b2ssIE5VTEwpOworICAg ICAgYyA9IGN0b2s7CiAgICAgICBpZiAoYyA9PSAodW5zaWduZWQgaW50KSBFT0YpCiAgICAgICAg IGdvdG8gbm9ybWFsX2NoYXI7CiAKQEAgLTE3NzYsMTggKzE3OTAsMjMgQEAgYXRvbSAodm9pZCkK IHsKICAgaWYgKHRvayA9PSBXQ0hBUikKICAgICB7Ci0gICAgICBhZGR0b2tfd2MgKHdjdG9rKTsK LQotICAgICAgaWYgKGNhc2VfZm9sZCkKKyAgICAgIGlmICh3Y3RvayAhPSBXRU9GKQogICAgICAg ICB7Ci0gICAgICAgICAgd2NoYXJfdCBmb2xkZWRbQ0FTRV9GT0xERURfQlVGU0laRV07Ci0gICAg ICAgICAgaW50IGksIG4gPSBjYXNlX2ZvbGRlZF9jb3VudGVycGFydHMgKHdjdG9rLCBmb2xkZWQp OwotICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisgICAgICAgICAgYWRkdG9rX3dj ICh3Y3Rvayk7CisKKyAgICAgICAgICBpZiAoY2FzZV9mb2xkKQogICAgICAgICAgICAgewotICAg ICAgICAgICAgICBhZGR0b2tfd2MgKGZvbGRlZFtpXSk7Ci0gICAgICAgICAgICAgIGFkZHRvayAo T1IpOworICAgICAgICAgICAgICB3Y2hhcl90IGZvbGRlZFtDQVNFX0ZPTERFRF9CVUZTSVpFXTsK KyAgICAgICAgICAgICAgaW50IGksIG4gPSBjYXNlX2ZvbGRlZF9jb3VudGVycGFydHMgKHdjdG9r LCBmb2xkZWQpOworICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFkZHRva193YyAoZm9sZGVkW2ldKTsKKyAg ICAgICAgICAgICAgICAgIGFkZHRvayAoT1IpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgIH0KICAgICAgICAgfQorICAgICAgZWxzZQorICAgICAgICBhZGR0b2tfbWIgKGN0b2ssIDMp OwogCiAgICAgICB0b2sgPSBsZXggKCk7CiAgICAgfQpAQCAtMjk0OSw2ICsyOTY4LDggQEAgbWF0 Y2hfYW55Y2hhciAoc3RydWN0IGRmYSAqZCwgc3RhdGVfbnVtIHMsIHBvc2l0aW9uIHBvcywKICAg ICAgIGlmIChzeW50YXhfYml0cyAmIFJFX0RPVF9OT1RfTlVMTCkKICAgICAgICAgcmV0dXJuIDA7 CiAgICAgfQorICBlbHNlIGlmICh3YyA9PSBXRU9GKQorICAgIHJldHVybiAwOwogCiAgIGNvbnRl eHQgPSB3Y2hhcl9jb250ZXh0ICh3Yyk7CiAgIGlmICghU1VDQ0VFRFNfSU5fQ09OVEVYVCAocG9z LmNvbnN0cmFpbnQsIGQtPnN0YXRlc1tzXS5jb250ZXh0LCBjb250ZXh0KSkKQEAgLTI5ODUsNiAr MzAwNiw4IEBAIG1hdGNoX21iX2NoYXJzZXQgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBzLCBw b3NpdGlvbiBwb3MsCiAgICAgICBpZiAoc3ludGF4X2JpdHMgJiBSRV9ET1RfTk9UX05VTEwpCiAg ICAgICAgIHJldHVybiAwOwogICAgIH0KKyAgZWxzZSBpZiAod2MgPT0gV0VPRikKKyAgICByZXR1 cm4gMDsKIAogICBjb250ZXh0ID0gd2NoYXJfY29udGV4dCAod2MpOwogICBpZiAoIVNVQ0NFRURT X0lOX0NPTlRFWFQgKHBvcy5jb25zdHJhaW50LCBkLT5zdGF0ZXNbc10uY29udGV4dCwgY29udGV4 dCkpCmRpZmYgLS1naXQgYS9zcmMva3dzZWFyY2guYyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IDdj NjRjODYuLjQ2NTY5ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3Nl YXJjaC5jCkBAIC0xMzEsMTIgKzEzMSw3IEBAIEZleGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNp emVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgIHsKICAgICAgICAgICAvKiBU aGUgbWF0Y2ggd2FzIGEgcGFydCBvZiBtdWx0aWJ5dGUgY2hhcmFjdGVyLCBhZHZhbmNlIGF0IGxl YXN0CiAgICAgICAgICAgICAgb25lIGJ5dGUgdG8gZW5zdXJlIG5vIGluZmluaXRlIGxvb3AgaGFw cGVucy4gICovCi0gICAgICAgICAgbWJzdGF0ZV90IHM7Ci0gICAgICAgICAgbWVtc2V0ICgmcywg MCwgc2l6ZW9mIHMpOwotICAgICAgICAgIHNpemVfdCBtYl9sZW4gPSBtYnJsZW4gKG1iX3N0YXJ0 LCAoYnVmICsgc2l6ZSkgLSAoYmVnICsgb2Zmc2V0KSwgJnMpOwotICAgICAgICAgIGlmIChtYl9s ZW4gPT0gKHNpemVfdCkgLTIgfHwgbWJfbGVuID09IChzaXplX3QpIC0xKQotICAgICAgICAgICAg Z290byBmYWlsdXJlOwotICAgICAgICAgIGJlZyA9IG1iX3N0YXJ0ICsgbWJfbGVuIC0gMTsKKyAg ICAgICAgICBiZWcgPSBtYl9zdGFydDsKICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog ICAgICAgYmVnICs9IG9mZnNldDsKZGlmZiAtLWdpdCBhL3NyYy9zZWFyY2h1dGlscy5jIGIvc3Jj L3NlYXJjaHV0aWxzLmMKaW5kZXggNjQ0MGYwNy4uZWEyNmE3MCAxMDA2NDQKLS0tIGEvc3JjL3Nl YXJjaHV0aWxzLmMKKysrIGIvc3JjL3NlYXJjaHV0aWxzLmMKQEAgLTI3MCw1ICsyNzAsNSBAQCBp c19tYl9taWRkbGUgKGNvbnN0IGNoYXIgKipnb29kLCBjb25zdCBjaGFyICpidWYsIGNvbnN0IGNo YXIgKmVuZCwKICAgICByZXR1cm4gdHJ1ZTsKIAogICAvKiBQID09IEJVRiBoZXJlLiAgKi8KLSAg cmV0dXJuIDAgPCBtYXRjaF9sZW4gJiYgbWF0Y2hfbGVuIDwgbWJybGVuIChwLCBlbmQgLSBwLCAm Y3VyX3N0YXRlKTsKKyAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcHJlZml4 LW9mLW11bHRpYnl0ZSBiL3Rlc3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGUKaW5kZXggYjE1ZmE5Yi4u NzBhOTI0ZSAxMDA3NTUKLS0tIGEvdGVzdHMvcHJlZml4LW9mLW11bHRpYnl0ZQorKysgYi90ZXN0 cy9wcmVmaXgtb2YtbXVsdGlieXRlCkBAIC0xLDUgKzEsNSBAQAogIyEvYmluL3NoCi0jIFRoaXMg d291bGQgbWlzdGFrZW5seSBwcmludCBhIGxpbmUgcHJpb3IgdG8gZ3JlcC0yLjYuMi4KKyMgVGhp cyB3b3VsZCBtaXN0YWtlbmx5IHByaW50IGEgbGluZSBwcmlvciB0byBncmVwLTIuMTguCiAuICIk e3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuLi9zcmMKIAogcmVxdWlyZV9lbl91 dGY4X2xvY2FsZV8KQEAgLTcsMTQgKzcsMTggQEAgcmVxdWlyZV9jb21waWxlZF9pbl9NQl9zdXBw b3J0CiAKIGVuY29kZSgpIHsgZWNobyAiJDEiIHwgdHIgQUJDICdcMzU3XDI3NFwyNDEnOyB9CiAK K2VuY29kZSBBQkMgPmV4cDEKK2VuY29kZSBhQUJDID5leHAyCisKIGZhaWw9MAogCiBmb3IgTE9D IGluIGVuX1VTLlVURi04ICRMT0NBTEVfRlJfVVRGODsgZG8KICAgZm9yIG9wdCBpbiAnJyAnLUYn OyBkbwogICAgIG91dD1vdXQtJG9wdC0kTE9DCi0gICAgZW5jb2RlIEFCQyB8IExDX0FMTD0kTE9D IGdyZXAgJG9wdCAiJChlbmNvZGUgQSkiID4gJG91dCAyPiYxCi0gICAgdGVzdCAkPyA9IDEgfHwg ZmFpbD0xCi0gICAgY29tcGFyZSAvZGV2L251bGwgJG91dCB8fCBmYWlsPTEKKyAgICBMQ19BTEw9 JExPQyBncmVwICRvcHQgIiQoZW5jb2RlIEEpIiBleHAxID4kb3V0IHx8IGZhaWw9MQorICAgIGNv bXBhcmUgZXhwMSAkb3V0IHx8IGZhaWw9MQorICAgIExDX0FMTD0kTE9DIGdyZXAgJG9wdCAiJChl bmNvZGUgYUEpIiBleHAyID4kb3V0IHx8IGZhaWw9MQorICAgIGNvbXBhcmUgZXhwMiAkb3V0IHx8 IGZhaWw9MQogICBkb25lCiBkb25lCiAKLS0gCjEuOS4yCgo= --------_5361104C00000000819C_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 15:05:00 2014 Received: (at 17376) by debbugs.gnu.org; 30 Apr 2014 19:05:00 +0000 Received: from localhost ([127.0.0.1]:46775 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfZoR-0004cV-TU for submit@debbugs.gnu.org; Wed, 30 Apr 2014 15:05:00 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:40639) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfZoP-0004cF-Nb for 17376@debbugs.gnu.org; Wed, 30 Apr 2014 15:04:58 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id C837CA60007; Wed, 30 Apr 2014 12:04:51 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vq5BpOJLuxDZ; Wed, 30 Apr 2014 12:04:50 -0700 (PDT) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id DDDF5A60003; Wed, 30 Apr 2014 12:04:50 -0700 (PDT) Message-ID: <53614952.4010200@cs.ucla.edu> Date: Wed, 30 Apr 2014 12:04:50 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka , 17376@debbugs.gnu.org Subject: Re: bug#17376: [PATCH] grep: fix the different behaviour for a invalid sequence between KWset and DFA References: <20140501000218.8198.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140501000218.8198.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17376 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) On 04/30/2014 08:02 AM, Norihiro Tanaka wrote: > Thare is different behaviour for a invalid sequence between KWset and DFA. > > encode() { echo "$1" | tr ABC '\357\274\241'; } > encode ABC | env LC_ALL=en_US.utf8 src/grep "$(encode A)\|q" > encode ABC | env LC_ALL=en_US.utf8 src/grep -F "$(encode A)" > encode sABC | env LC_ALL=en_US.utf8 src/grep "a$(encode A)\|q" > encode sABC | env LC_ALL=en_US.utf8 src/grep -F "a$(encode A)" > > We expect that all of them are same results, but only 4th returns 1 row. Sorry, but I am not observing this behavior. With grep 2.18, none of the commands output anything. The same is true for the git master. If the pattern or data have encoding errors, POSIX says grep can do whatever it likes. As I understand it, in grep 2.18 and the git master, an encoding-error byte in a pattern matches only the same encoding-error byte in the data. Does this bug report's patch change behavior, so that an encoding-error byte in a pattern can match part of a valid multibyte-character in the data? If so, it's not clear to me why the proposed behavior change is helpful -- as a user, I'm not sure I'd want such a match to work. If not, then could you please explain a bit more what's going on? More generally, I don't think users care about encoding-error bytes in patterns. If it helps simplify the code and/or improves performance, I'd favor changing 'grep' so that it simply rejects patterns containing encoding errors, and exits with status 2. We should probably wait until after the next release before doing anything that drastic, though. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 18:16:39 2014 Received: (at 17376) by debbugs.gnu.org; 30 Apr 2014 22:16:39 +0000 Received: from localhost ([127.0.0.1]:46879 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wfcnu-0001UF-NW for submit@debbugs.gnu.org; Wed, 30 Apr 2014 18:16:39 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:44970) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wfcnr-0001U0-It for 17376@debbugs.gnu.org; Wed, 30 Apr 2014 18:16:36 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 530BE8B8001 for <17376@debbugs.gnu.org>; Thu, 1 May 2014 07:16:32 +0900 (JST) Received: from mail05.kcn.ne.jp ([61.86.6.184]) by imp03 with bizsmtp id wNGY1n0043yDdWd01NGYlp; Thu, 01 May 2014 07:16:32 +0900 X-OrgRCPT: 17376@debbugs.gnu.org Received: from [10.120.1.58] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail05.kcn.ne.jp (Postfix) with ESMTPA id 223467D0099; Thu, 1 May 2014 07:16:32 +0900 (JST) Date: Thu, 01 May 2014 07:16:31 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17376: [PATCH] grep: fix the different behaviour for a invalid sequence between KWset and DFA In-Reply-To: <53614952.4010200@cs.ucla.edu> References: <20140501000218.8198.27F6AC2D@kcn.ne.jp> <53614952.4010200@cs.ucla.edu> Message-Id: <20140501071631.5CF7.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17376 Cc: 17376@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Sorry, tow test cases are wrong. It's as follows surely. encode() { echo "$1" | tr ABC '\357\274\241'; } encode ABC | env LC_ALL=en_US.utf8 src/grep "$(encode A)\|q" encode ABC | env LC_ALL=en_US.utf8 src/grep -F "$(encode A)" encode aABC | env LC_ALL=en_US.utf8 src/grep "a$(encode A)\|q" ^ encode aABC | env LC_ALL=en_US.utf8 src/grep -F "a$(encode A)" ^ We will expect none of the commands output anything, but we get 1 row in 4th. We need to fix last line in searchutils.c (is_mb_middle) to make it correctly. return 0 < match_len && match_len < mbrlen (p, end - p, &cur_state); We must check whether it's valid at not the top but a part of last of matched pattern. Now, although checked here: `a$(encode A)', correctly should be checked here: `a$(encode A)'. ^ ^^^^^^^^^^^ However, it may cause slowdown in some typical cases which doesn't include any invalid sequences, and many users won't hope it. Further more, I seem that DFA doesn't treat invalid sequence correctly. I checked it with debugging on. No longer tokens are broken in 1st case. encode ABC | env LC_ALL=en_US.utf8 src/grep "$(encode A)\|q" dfaanalyze: 0:c3 1:af 2:CAT 3:71 4:OR 5:END 6:CAT I expect below, becuase `encode ABC' is `ef bc a1'. dfaanalyze: 0:ef 1:71 2:OR 3:END 4:CAT However, It will be also difficult to fix it correctly. Therefore, I propose the simple fix in the patch. Thanks, Norihiro From debbugs-submit-bounces@debbugs.gnu.org Thu May 01 00:11:42 2014 Received: (at 17376) by debbugs.gnu.org; 1 May 2014 04:11:42 +0000 Received: from localhost ([127.0.0.1]:46961 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfiLV-0004Xh-FA for submit@debbugs.gnu.org; Thu, 01 May 2014 00:11:41 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:37537) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfiLT-0004XR-2f for 17376@debbugs.gnu.org; Thu, 01 May 2014 00:11:40 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 3353039E80BC; Wed, 30 Apr 2014 21:11:33 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26OF8+lwtVpU; Wed, 30 Apr 2014 21:11:28 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 611A439E801A; Wed, 30 Apr 2014 21:11:28 -0700 (PDT) Message-ID: <5361C96F.2020301@cs.ucla.edu> Date: Wed, 30 Apr 2014 21:11:27 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17376: [PATCH] grep: fix the different behaviour for a invalid sequence between KWset and DFA References: <20140501000218.8198.27F6AC2D@kcn.ne.jp> <53614952.4010200@cs.ucla.edu> <20140501071631.5CF7.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140501071631.5CF7.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17376 Cc: 17376@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) Thanks, I'm starting to see now. Unfortunately when I apply the proposed patch in http://bugs.gnu.org/17376#5 to the current grep master 10ce910928c757d1adb790a9c9e5bad7de289bd4, 'make check' fails for the tests invalid-multibyte-infloop and fgrep-infloop. Do you observe these two test failures on your platform? If not, I can try to look into the problem some more here. From debbugs-submit-bounces@debbugs.gnu.org Thu May 01 07:49:16 2014 Received: (at 17376) by debbugs.gnu.org; 1 May 2014 11:49:16 +0000 Received: from localhost ([127.0.0.1]:47056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfpUI-0002Jx-RT for submit@debbugs.gnu.org; Thu, 01 May 2014 07:49:15 -0400 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:56184) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfpUE-0002Jd-Io for 17376@debbugs.gnu.org; Thu, 01 May 2014 07:49:13 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id EF1B1690F6 for <17376@debbugs.gnu.org>; Thu, 1 May 2014 20:49:05 +0900 (JST) Received: from mail04.kcn.ne.jp ([61.86.6.183]) by imp03 with bizsmtp id wbp51n00W3wvxAM01bp5Wc; Thu, 01 May 2014 20:49:05 +0900 X-OrgRCPT: 17376@debbugs.gnu.org Received: from [10.120.1.61] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail04.kcn.ne.jp (Postfix) with ESMTPA id 6D25B12900C1; Thu, 1 May 2014 20:49:05 +0900 (JST) Date: Thu, 01 May 2014 20:49:05 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17376: [PATCH] grep: fix the different behaviour for a invalid sequence between KWset and DFA In-Reply-To: <5361C96F.2020301@cs.ucla.edu> References: <20140501071631.5CF7.27F6AC2D@kcn.ne.jp> <5361C96F.2020301@cs.ucla.edu> Message-Id: <20140501204902.B0E3.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5362340200000000B0D7_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17376 Cc: 17376@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --------_5362340200000000B0D7_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Paul Eggert wrote: > Unfortunately when I apply the proposed patch in http://bugs.gnu.org/17376#5 > to the current grep master 10ce910928c757d1adb790a9c9e5bad7de289bd4, > 'make check' fails for the tests invalid-multibyte-infloop and fgrep-infloop. Sorry, They're skipped because my platform is too old and timeout program doesn't exist. I fixed them. --------_5362340200000000B0D7_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA4NTRiY2Q0MzA3NjQzMGU1ZTJhNGZjYjUxNGYwYzQyYjYxNWZmZWRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBXZWQsIDMwIEFwciAyMDE0IDExOjIyOjI3ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogZml4IHRoZSBkaWZmZXJlbnQgYmVoYXZpb3VyIGZvciBhIGludmFsaWQgc2VxdWVuY2UKIGJl dHdlZW4gS1dzZXQgYW5kIERGQQoKKiBzcmMvZGZhLmMgKGN0b2spOiBEZWZpbmUgbmV3IGdsb2Jh bCB2YXJpYWJsZS4KKGRmYW1iY2FjaGUpOiBEb24ndCBjYWNoZSBpbnZhbGlkIHNlcXVlbmNlcywg YmVjYXVzZSBpdCBjYW4ndCBiZQpleHByZXNzZWQgd2l0aCBhbnkgd2lkZSBjaGFyYWN0ZXIuCiht YnNfdG9fd2NoYXIpOiBSZXR1cm4gV0VPRiBmb3IgaW52YWxpZCBzZXF1ZW5jZXMuCihwYXJzZV9i cmFja2V0X2V4cCk6IEZpeCBpdC4KKGxleCk6IFNldCBgY3RvaycuCihhdG9tLCBtYXRjaF9hbnlj aGFyLCBtYXRjaF9tYl9jaGFyc2V0KTogRml4IGl0LgoqIHNyYy9rd3NlYXJjaC5jIChGZXhlY3V0 ZSk6IEZpeCBpdC4KKiBzcmMvc2VhcmNodXRpbHMuYyAoaXNfbWJfbWlkZGxlKTogRml4IGl0Lgoq IHRlc3RzL2ludmFsaWQtbXVsdGlieXRlLWluZmxvb3A6IEZpeCBpdC4KKiB0ZXN0cy9wcmVmaXgt b2YtbXVsdGlieXRlOiBGaXggaXQuCi0tLQogc3JjL2RmYS5jICAgICAgICAgICAgICAgICAgICAg ICB8IDEwMSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBzcmMva3dz ZWFyY2guYyAgICAgICAgICAgICAgICAgIHwgICA3ICstLQogc3JjL3NlYXJjaHV0aWxzLmMgICAg ICAgICAgICAgICB8ICAgOSArLS0tCiB0ZXN0cy9pbnZhbGlkLW11bHRpYnl0ZS1pbmZsb29wIHwg IDEwICsrLS0KIHRlc3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGUgICAgICAgfCAgMTIgKysrLS0KIDUg ZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDQ1ZGNjNTIuLjFjMjIwZTIgMTAwNjQ0 Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTQ1Niw5ICs0NTYsMTMgQEAgZGZh bWJjYWNoZSAoc3RydWN0IGRmYSAqZCkKICAgICAgIHdpbnRfdCB3aTsKICAgICAgIHN3aXRjaCAo bWJydG93YyAoJndjLCAmYywgMSwgJnMpKQogICAgICAgICB7Ci0gICAgICAgIGRlZmF1bHQ6IHdp ID0gd2M7IGJyZWFrOwotICAgICAgICBjYXNlIChzaXplX3QpIC0yOiB3aSA9IFdFT0Y7IGJyZWFr OwotICAgICAgICBjYXNlIChzaXplX3QpIC0xOiB3aSA9IHVjOyBicmVhazsKKyAgICAgICAgZGVm YXVsdDoKKyAgICAgICAgICB3aSA9IHdjOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl IChzaXplX3QpIC0xOgorICAgICAgICBjYXNlIChzaXplX3QpIC0yOgorICAgICAgICAgIHdpID0g V0VPRjsKKyAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgZC0+bWJydG93Y19jYWNo ZVt1Y10gPSB3aTsKICAgICB9CkBAIC00OTIsNyArNDk2LDYgQEAgbWJzX3RvX3djaGFyICh3Y2hh cl90ICpwd2MsIGNoYXIgY29uc3QgKnMsIHNpemVfdCBuLCBzdHJ1Y3QgZGZhICpkKQogICAgICAg aWYgKDAgPCBuYnl0ZXMgJiYgbmJ5dGVzIDwgKHNpemVfdCkgLTIpCiAgICAgICAgIHJldHVybiBu Ynl0ZXM7CiAgICAgICBtZW1zZXQgKCZkLT5tYnMsIDAsIHNpemVvZiBkLT5tYnMpOwotICAgICAg d2MgPSB1YzsKICAgICB9CiAKICAgKnB3YyA9IHdjOwpAQCAtODQ3LDYgKzg1MCw4IEBAIHN0YXRp YyBpbnQgY3VyX21iX2xlbiA9IDE7ICAgICAgLyogTGVuZ3RoIG9mIHRoZSBtdWx0aWJ5dGUgcmVw cmVzZW50YXRpb24gb2YKIC8qIFRoZXNlIHZhcmlhYmxlcyBhcmUgdXNlZCBvbmx5IGlmIChNQl9D VVJfTUFYID4gMSkuICAqLwogc3RhdGljIHdjaGFyX3Qgd2N0b2s7ICAgICAgICAgICAvKiBXaWRl IGNoYXJhY3RlciByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtdWx0aWJ5dGUgY2hhcmFjdGVyLiAgKi8KK3N0YXRpYyB1bnNp Z25lZCBpbnQgY3RvazsgICAgICAgLyogU2luZ2xlIGNoYXJhY3RlciByZXByZXNlbnRhdGlvbiBv ZiB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWJ5 dGUgY2hhcmFjdGVyLiAgKi8KIAogCiAvKiBOb3RlIHRoYXQgY2hhcmFjdGVycyBiZWNvbWUgdW5z aWduZWQgaGVyZS4gICovCkBAIC0xMTI4LDE5ICsxMTMzLDIyIEBAIHBhcnNlX2JyYWNrZXRfZXhw ICh2b2lkKQogICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIHBhaXIgb2YgcmFuZ2VzLCBbbS16 XSBbTS1aXS4gIEFsdGhvdWdoIHRoaXMgY29kZQogICAgICAgICAgICAgICAgICAgICAgaXMgd3Jv bmcgaW4gbXVsdGlwbGUgd2F5cywgaXQncyBuZXZlciB1c2VkIGluIHByYWN0aWNlLgogICAgICAg ICAgICAgICAgICAgICAgRklYTUU6IFJlbW92ZSB0aGlzIChhbmQgcmVsYXRlZCkgdW51c2VkIGNv ZGUuICAqLwotICAgICAgICAgICAgICAgICAgd29ya19tYmMtPnJhbmdlcwotICAgICAgICAgICAg ICAgICAgICA9IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5yYW5nZXMsIHdvcmtfbWJjLT5ucmFu Z2VzICsgMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmFuZ2VzX2Fs LCBzaXplb2YgKndvcmtfbWJjLT5yYW5nZXMpOwotICAgICAgICAgICAgICAgICAgd29ya19tYmMt PnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uYmVnCi0gICAgICAgICAgICAgICAgICAgID0gY2Fz ZV9mb2xkID8gdG93bG93ZXIgKHdjKSA6IHdjOwotICAgICAgICAgICAgICAgICAgd29ya19tYmMt PnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlcysrXS5lbmQKLSAgICAgICAgICAgICAgICAgICAgPSBj YXNlX2ZvbGQgPyB0b3dsb3dlciAod2MyKSA6IHdjMjsKLQotICAgICAgICAgICAgICAgICAgaWYg KGNhc2VfZm9sZCAmJiAoaXN3YWxwaGEgKHdjKSB8fCBpc3dhbHBoYSAod2MyKSkpCisgICAgICAg ICAgICAgICAgICBpZiAod2MgIT0gV0VPRiAmJiB3YzIgIT0gV0VPRikKICAgICAgICAgICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZXNbd29ya19tYmMt Pm5yYW5nZXNdLmJlZyA9IHRvd3VwcGVyICh3Yyk7CisgICAgICAgICAgICAgICAgICAgICAgd29y a19tYmMtPnJhbmdlcworICAgICAgICAgICAgICAgICAgICAgICAgPSBtYXliZV9yZWFsbG9jICh3 b3JrX21iYy0+cmFuZ2VzLCB3b3JrX21iYy0+bnJhbmdlcyArIDIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZyYW5nZXNfYWwsIHNpemVvZiAqd29ya19tYmMtPnJh bmdlcyk7CisgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+ bnJhbmdlc10uYmVnCisgICAgICAgICAgICAgICAgICAgICAgICA9IGNhc2VfZm9sZCA/IHRvd2xv d2VyICh3YykgOiB3YzsKICAgICAgICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2VzW3dv cmtfbWJjLT5ucmFuZ2VzKytdLmVuZAotICAgICAgICAgICAgICAgICAgICAgICAgPSB0b3d1cHBl ciAod2MyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgID0gY2FzZV9mb2xkID8gdG93bG93ZXIg KHdjMikgOiB3YzI7CisKKyAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FzZV9mb2xkICYmIChp c3dhbHBoYSAod2MpIHx8IGlzd2FscGhhICh3YzIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+ bnJhbmdlc10uYmVnID0gdG93dXBwZXIgKHdjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg d29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlcysrXS5lbmQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IHRvd3VwcGVyICh3YzIpOworICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICBlbHNlIGlmICh1c2luZ19zaW1wbGVfbG9jYWxlICgpKQpAQCAtMTE4NCwyMyArMTE5MiwyOCBA QCBwYXJzZV9icmFja2V0X2V4cCAodm9pZCkKICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg fQogCi0gICAgICBpZiAoY2FzZV9mb2xkKQotICAgICAgICB7Ci0gICAgICAgICAgd2NoYXJfdCBm b2xkZWRbQ0FTRV9GT0xERURfQlVGU0laRV07Ci0gICAgICAgICAgaW50IGksIG4gPSBjYXNlX2Zv bGRlZF9jb3VudGVycGFydHMgKHdjLCBmb2xkZWQpOwotICAgICAgICAgIHdvcmtfbWJjLT5jaGFy cyA9IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5jaGFycywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3b3JrX21iYy0+bmNoYXJzICsgbiwgJmNoYXJzX2FsLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAqd29ya19t YmMtPmNoYXJzKTsKLSAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQotICAgICAgICAg ICAgaWYgKCFzZXRiaXRfd2MgKGZvbGRlZFtpXSwgY2NsKSkKLSAgICAgICAgICAgICAgd29ya19t YmMtPmNoYXJzW3dvcmtfbWJjLT5uY2hhcnMrK10gPSBmb2xkZWRbaV07Ci0gICAgICAgIH0KLSAg ICAgIGlmICghc2V0Yml0X3djICh3YywgY2NsKSkKKyAgICAgIGlmICh3YyAhPSBXRU9GKQogICAg ICAgICB7Ci0gICAgICAgICAgd29ya19tYmMtPmNoYXJzID0gbWF5YmVfcmVhbGxvYyAod29ya19t YmMtPmNoYXJzLCB3b3JrX21iYy0+bmNoYXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZjaGFyc19hbCwgc2l6ZW9mICp3b3JrX21iYy0+Y2hhcnMpOwotICAg ICAgICAgIHdvcmtfbWJjLT5jaGFyc1t3b3JrX21iYy0+bmNoYXJzKytdID0gd2M7CisgICAgICAg ICAgaWYgKGNhc2VfZm9sZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgd2NoYXJfdCBm b2xkZWRbQ0FTRV9GT0xERURfQlVGU0laRV07CisgICAgICAgICAgICAgIGludCBpLCBuID0gY2Fz ZV9mb2xkZWRfY291bnRlcnBhcnRzICh3YywgZm9sZGVkKTsKKyAgICAgICAgICAgICAgd29ya19t YmMtPmNoYXJzID0gbWF5YmVfcmVhbGxvYyAod29ya19tYmMtPmNoYXJzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrX21iYy0+bmNoYXJzICsgbiwg JmNoYXJzX2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YgKndvcmtfbWJjLT5jaGFycyk7CisgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkg PCBuOyBpKyspCisgICAgICAgICAgICAgICAgaWYgKCFzZXRiaXRfd2MgKGZvbGRlZFtpXSwgY2Ns KSkKKyAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5jaGFyc1t3b3JrX21iYy0+bmNoYXJzKytd ID0gZm9sZGVkW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UgaWYgKCFzZXRiaXRf d2MgKHdjLCBjY2wpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICB3b3JrX21iYy0+Y2hh cnMgPSBtYXliZV9yZWFsbG9jICh3b3JrX21iYy0+Y2hhcnMsIHdvcmtfbWJjLT5uY2hhcnMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaGFyc19hbCwg c2l6ZW9mICp3b3JrX21iYy0+Y2hhcnMpOworICAgICAgICAgICAgICB3b3JrX21iYy0+Y2hhcnNb d29ya19tYmMtPm5jaGFycysrXSA9IHdjOworICAgICAgICAgICAgfQogICAgICAgICB9CisgICAg ICBlbHNlCisgICAgICAgIHNldGJpdCAoYywgY2NsKTsKICAgICB9CiAgIHdoaWxlICgod2MgPSB3 YzEsIChjID0gYzEpICE9ICddJykpOwogCkBAIC0xMjQ1LDcgKzEyNTgsOCBAQCBsZXggKHZvaWQp CiAgICAgICJpZiAoYmFja3NsYXNoKSAuLi4iLiAgKi8KICAgZm9yIChpID0gMDsgaSA8IDI7ICsr aSkKICAgICB7Ci0gICAgICBGRVRDSF9XQyAoYywgd2N0b2ssIE5VTEwpOworICAgICAgRkVUQ0hf V0MgKGN0b2ssIHdjdG9rLCBOVUxMKTsKKyAgICAgIGMgPSBjdG9rOwogICAgICAgaWYgKGMgPT0g KHVuc2lnbmVkIGludCkgRU9GKQogICAgICAgICBnb3RvIG5vcm1hbF9jaGFyOwogCkBAIC0xNzc2 LDE4ICsxNzkwLDIzIEBAIGF0b20gKHZvaWQpCiB7CiAgIGlmICh0b2sgPT0gV0NIQVIpCiAgICAg ewotICAgICAgYWRkdG9rX3djICh3Y3Rvayk7Ci0KLSAgICAgIGlmIChjYXNlX2ZvbGQpCisgICAg ICBpZiAod2N0b2sgIT0gV0VPRikKICAgICAgICAgewotICAgICAgICAgIHdjaGFyX3QgZm9sZGVk W0NBU0VfRk9MREVEX0JVRlNJWkVdOwotICAgICAgICAgIGludCBpLCBuID0gY2FzZV9mb2xkZWRf Y291bnRlcnBhcnRzICh3Y3RvaywgZm9sZGVkKTsKLSAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwg bjsgaSsrKQorICAgICAgICAgIGFkZHRva193YyAod2N0b2spOworCisgICAgICAgICAgaWYgKGNh c2VfZm9sZCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgYWRkdG9rX3djIChmb2xkZWRb aV0pOwotICAgICAgICAgICAgICBhZGR0b2sgKE9SKTsKKyAgICAgICAgICAgICAgd2NoYXJfdCBm b2xkZWRbQ0FTRV9GT0xERURfQlVGU0laRV07CisgICAgICAgICAgICAgIGludCBpLCBuID0gY2Fz ZV9mb2xkZWRfY291bnRlcnBhcnRzICh3Y3RvaywgZm9sZGVkKTsKKyAgICAgICAgICAgICAgZm9y IChpID0gMDsgaSA8IG47IGkrKykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg ICBhZGR0b2tfd2MgKGZvbGRlZFtpXSk7CisgICAgICAgICAgICAgICAgICBhZGR0b2sgKE9SKTsK KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgIGVsc2UK KyAgICAgICAgYWRkdG9rX21iIChjdG9rLCAzKTsKIAogICAgICAgdG9rID0gbGV4ICgpOwogICAg IH0KQEAgLTI5NTMsNiArMjk3Miw4IEBAIG1hdGNoX2FueWNoYXIgKHN0cnVjdCBkZmEgKmQsIHN0 YXRlX251bSBzLCBwb3NpdGlvbiBwb3MsCiAgICAgICBpZiAoc3ludGF4X2JpdHMgJiBSRV9ET1Rf Tk9UX05VTEwpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KKyAgZWxzZSBpZiAod2MgPT0gV0VP RikKKyAgICByZXR1cm4gMDsKIAogICBjb250ZXh0ID0gd2NoYXJfY29udGV4dCAod2MpOwogICBp ZiAoIVNVQ0NFRURTX0lOX0NPTlRFWFQgKHBvcy5jb25zdHJhaW50LCBkLT5zdGF0ZXNbc10uY29u dGV4dCwgY29udGV4dCkpCkBAIC0yOTg5LDYgKzMwMTAsOCBAQCBtYXRjaF9tYl9jaGFyc2V0IChz dHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gcywgcG9zaXRpb24gcG9zLAogICAgICAgaWYgKHN5bnRh eF9iaXRzICYgUkVfRE9UX05PVF9OVUxMKQogICAgICAgICByZXR1cm4gMDsKICAgICB9CisgIGVs c2UgaWYgKHdjID09IFdFT0YpCisgICAgcmV0dXJuIDA7CiAKICAgY29udGV4dCA9IHdjaGFyX2Nv bnRleHQgKHdjKTsKICAgaWYgKCFTVUNDRUVEU19JTl9DT05URVhUIChwb3MuY29uc3RyYWludCwg ZC0+c3RhdGVzW3NdLmNvbnRleHQsIGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvc3JjL2t3c2VhcmNo LmMgYi9zcmMva3dzZWFyY2guYwppbmRleCA3YzY0Yzg2Li40NjU2OWU5IDEwMDY0NAotLS0gYS9z cmMva3dzZWFyY2guYworKysgYi9zcmMva3dzZWFyY2guYwpAQCAtMTMxLDEyICsxMzEsNyBAQCBG ZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXpl LAogICAgICAgICB7CiAgICAgICAgICAgLyogVGhlIG1hdGNoIHdhcyBhIHBhcnQgb2YgbXVsdGli eXRlIGNoYXJhY3RlciwgYWR2YW5jZSBhdCBsZWFzdAogICAgICAgICAgICAgIG9uZSBieXRlIHRv IGVuc3VyZSBubyBpbmZpbml0ZSBsb29wIGhhcHBlbnMuICAqLwotICAgICAgICAgIG1ic3RhdGVf dCBzOwotICAgICAgICAgIG1lbXNldCAoJnMsIDAsIHNpemVvZiBzKTsKLSAgICAgICAgICBzaXpl X3QgbWJfbGVuID0gbWJybGVuIChtYl9zdGFydCwgKGJ1ZiArIHNpemUpIC0gKGJlZyArIG9mZnNl dCksICZzKTsKLSAgICAgICAgICBpZiAobWJfbGVuID09IChzaXplX3QpIC0yIHx8IG1iX2xlbiA9 PSAoc2l6ZV90KSAtMSkKLSAgICAgICAgICAgIGdvdG8gZmFpbHVyZTsKLSAgICAgICAgICBiZWcg PSBtYl9zdGFydCArIG1iX2xlbiAtIDE7CisgICAgICAgICAgYmVnID0gbWJfc3RhcnQ7CiAgICAg ICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgIGJlZyArPSBvZmZzZXQ7CmRpZmYgLS1n aXQgYS9zcmMvc2VhcmNodXRpbHMuYyBiL3NyYy9zZWFyY2h1dGlscy5jCmluZGV4IDY0NDBmMDcu LjNjNzhmMzEgMTAwNjQ0Ci0tLSBhL3NyYy9zZWFyY2h1dGlscy5jCisrKyBiL3NyYy9zZWFyY2h1 dGlscy5jCkBAIC0yMjgsNyArMjI4LDYgQEAgaXNfbWJfbWlkZGxlIChjb25zdCBjaGFyICoqZ29v ZCwgY29uc3QgY2hhciAqYnVmLCBjb25zdCBjaGFyICplbmQsCiAgICAgICAgICAgICAgIHNpemVf dCBtYXRjaF9sZW4pCiB7CiAgIGNvbnN0IGNoYXIgKnAgPSAqZ29vZDsKLSAgY29uc3QgY2hhciAq cHJldiA9IHA7CiAgIG1ic3RhdGVfdCBjdXJfc3RhdGU7CiAKICAgaWYgKHVzaW5nX3V0ZjggKCkg JiYgYnVmIC0gcCA+IE1CX0NVUl9NQVgpCkBAIC0yNTAsMTAgKzI0OSw2IEBAIGlzX21iX21pZGRs ZSAoY29uc3QgY2hhciAqKmdvb2QsIGNvbnN0IGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqZW5kLAog ICAgICAgaWYgKG1iY2xlbiA9PSAoc2l6ZV90KSAtMikKICAgICAgICAgbWJjbGVuID0gbWJybGVu IChwLCBlbmQgLSBwLCAmY3VyX3N0YXRlKTsKIAotICAgICAgLyogU3RvcmUgdGhlIGJlZ2lubmlu ZyBvZiB0aGUgcHJldmlvdXMgY29tcGxldGUgbXVsdGlieXRlIGNoYXJhY3Rlci4gICovCi0gICAg ICBpZiAobWJjbGVuICE9IChzaXplX3QpIC0yKQotICAgICAgICBwcmV2ID0gcDsKLQogICAgICAg aWYgKG1iY2xlbiA9PSAoc2l6ZV90KSAtMSB8fCBtYmNsZW4gPT0gKHNpemVfdCkgLTIgfHwgbWJj bGVuID09IDApCiAgICAgICAgIHsKICAgICAgICAgICAvKiBBbiBpbnZhbGlkIHNlcXVlbmNlLCBv ciBhIHRydW5jYXRlZCBtdWx0aWJ5dGUgY2hhcmFjdGVyLgpAQCAtMjY0LDExICsyNTksMTEgQEAg aXNfbWJfbWlkZGxlIChjb25zdCBjaGFyICoqZ29vZCwgY29uc3QgY2hhciAqYnVmLCBjb25zdCBj aGFyICplbmQsCiAgICAgICBwICs9IG1iY2xlbjsKICAgICB9CiAKLSAgKmdvb2QgPSBwcmV2Owor ICAqZ29vZCA9IHA7CiAKICAgaWYgKHAgPiBidWYpCiAgICAgcmV0dXJuIHRydWU7CiAKICAgLyog UCA9PSBCVUYgaGVyZS4gICovCi0gIHJldHVybiAwIDwgbWF0Y2hfbGVuICYmIG1hdGNoX2xlbiA8 IG1icmxlbiAocCwgZW5kIC0gcCwgJmN1cl9zdGF0ZSk7CisgIHJldHVybiBmYWxzZTsKIH0KZGlm ZiAtLWdpdCBhL3Rlc3RzL2ludmFsaWQtbXVsdGlieXRlLWluZmxvb3AgYi90ZXN0cy9pbnZhbGlk LW11bHRpYnl0ZS1pbmZsb29wCmluZGV4IDQ4N2ZlZjAuLmU5OGMxNzAgMTAwNzU1Ci0tLSBhL3Rl c3RzL2ludmFsaWQtbXVsdGlieXRlLWluZmxvb3AKKysrIGIvdGVzdHMvaW52YWxpZC1tdWx0aWJ5 dGUtaW5mbG9vcApAQCAtNywxNCArNywxNCBAQCByZXF1aXJlX2VuX3V0ZjhfbG9jYWxlXwogcmVx dWlyZV9jb21waWxlZF9pbl9NQl9zdXBwb3J0CiByZXF1aXJlX3RpbWVvdXRfCiAKLXByaW50ZiAn XDIwMicgPiBzZWFyY2gtc3RyIHx8IGZyYW1ld29ya19mYWlsdXJlXwotY2F0IHNlYXJjaC1zdHIg c2VhcmNoLXN0ciA+IGlucHV0IHx8IGZyYW1ld29ya19mYWlsdXJlXworZW5jb2RlKCkgeyBlY2hv ICIkMSIgfCB0ciBBICdcMjAyJzsgfQorCitlbmNvZGUgQUEgPiBpbnB1dAogCiBmYWlsPTAKIAog IyBCZWZvcmUgMi4xNSwgdGhpcyB3b3VsZCBpbmZsb29wLgotTENfQUxMPWVuX1VTLlVURi04IHRp bWVvdXQgMyBncmVwIC1GIC1mIHNlYXJjaC1zdHIgaW5wdXQgPiBvdXQKLXRlc3QgJD8gPSAxIHx8 IGZhaWw9MQotdGVzdCAtcyBvdXQgJiYgZmFpbD0xCitMQ19BTEw9ZW5fVVMuVVRGLTggdGltZW91 dCAzIGdyZXAgLUYgJChlbmNvZGUgQSkgaW5wdXQgPiBvdXQgfHwgZmFpbD0xCitjb21wYXJlIGlu cHV0IG91dCB8fCBmYWlsPTEKIAogRXhpdCAkZmFpbApkaWZmIC0tZ2l0IGEvdGVzdHMvcHJlZml4 LW9mLW11bHRpYnl0ZSBiL3Rlc3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGUKaW5kZXggYjE1ZmE5Yi4u NzBhOTI0ZSAxMDA3NTUKLS0tIGEvdGVzdHMvcHJlZml4LW9mLW11bHRpYnl0ZQorKysgYi90ZXN0 cy9wcmVmaXgtb2YtbXVsdGlieXRlCkBAIC0xLDUgKzEsNSBAQAogIyEvYmluL3NoCi0jIFRoaXMg d291bGQgbWlzdGFrZW5seSBwcmludCBhIGxpbmUgcHJpb3IgdG8gZ3JlcC0yLjYuMi4KKyMgVGhp cyB3b3VsZCBtaXN0YWtlbmx5IHByaW50IGEgbGluZSBwcmlvciB0byBncmVwLTIuMTguCiAuICIk e3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuLi9zcmMKIAogcmVxdWlyZV9lbl91 dGY4X2xvY2FsZV8KQEAgLTcsMTQgKzcsMTggQEAgcmVxdWlyZV9jb21waWxlZF9pbl9NQl9zdXBw b3J0CiAKIGVuY29kZSgpIHsgZWNobyAiJDEiIHwgdHIgQUJDICdcMzU3XDI3NFwyNDEnOyB9CiAK K2VuY29kZSBBQkMgPmV4cDEKK2VuY29kZSBhQUJDID5leHAyCisKIGZhaWw9MAogCiBmb3IgTE9D IGluIGVuX1VTLlVURi04ICRMT0NBTEVfRlJfVVRGODsgZG8KICAgZm9yIG9wdCBpbiAnJyAnLUYn OyBkbwogICAgIG91dD1vdXQtJG9wdC0kTE9DCi0gICAgZW5jb2RlIEFCQyB8IExDX0FMTD0kTE9D IGdyZXAgJG9wdCAiJChlbmNvZGUgQSkiID4gJG91dCAyPiYxCi0gICAgdGVzdCAkPyA9IDEgfHwg ZmFpbD0xCi0gICAgY29tcGFyZSAvZGV2L251bGwgJG91dCB8fCBmYWlsPTEKKyAgICBMQ19BTEw9 JExPQyBncmVwICRvcHQgIiQoZW5jb2RlIEEpIiBleHAxID4kb3V0IHx8IGZhaWw9MQorICAgIGNv bXBhcmUgZXhwMSAkb3V0IHx8IGZhaWw9MQorICAgIExDX0FMTD0kTE9DIGdyZXAgJG9wdCAiJChl bmNvZGUgYUEpIiBleHAyID4kb3V0IHx8IGZhaWw9MQorICAgIGNvbXBhcmUgZXhwMiAkb3V0IHx8 IGZhaWw9MQogICBkb25lCiBkb25lCiAKLS0gCjEuOS4yCgo= --------_5362340200000000B0D7_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sun May 04 22:41:46 2014 Received: (at 17376-done) by debbugs.gnu.org; 5 May 2014 02:41:46 +0000 Received: from localhost ([127.0.0.1]:51133 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wh8qf-0000gW-ES for submit@debbugs.gnu.org; Sun, 04 May 2014 22:41:46 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:34908) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wh8qb-0000gC-0j for 17376-done@debbugs.gnu.org; Sun, 04 May 2014 22:41:43 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id E49CEA6000C; Sun, 4 May 2014 19:41:34 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zYtZmNnHKqoN; Sun, 4 May 2014 19:41:30 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 0BCF5A6000B; Sun, 4 May 2014 19:41:30 -0700 (PDT) Message-ID: <5366FA59.30307@cs.ucla.edu> Date: Sun, 04 May 2014 19:41:29 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17376: [PATCH] grep: fix the different behaviour for a invalid sequence between KWset and DFA References: <20140501071631.5CF7.27F6AC2D@kcn.ne.jp> <5361C96F.2020301@cs.ucla.edu> <20140501204902.B0E3.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140501204902.B0E3.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------000604090707070709030404" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17376-done Cc: 17376-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) This is a multi-part message in MIME format. --------------000604090707070709030404 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks for that fix. I found a few glitches, mostly having to do with storing WEOF in a wchar_t, which is not portable. There were also some opportunities for simplification and clarification. I installed the patch, and followed it up with the attached three patches. The second patch is the only one that fixes any bugs. --------------000604090707070709030404 Content-Type: text/plain; charset=UTF-8; name="0001-tests-improve-coverage-for-prefix-of-multibyte.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-tests-improve-coverage-for-prefix-of-multibyte.patch" RnJvbSA4N2E4NGExMDM2ODViZTU4YjFjYzIxODQxMDE1NmRmN2VmZjE1NjYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDQgTWF5IDIwMTQgMTg6NDY6NDAgLTA3MDAKU3ViamVjdDogW1BBVENI IDEvM10gdGVzdHM6IGltcHJvdmUgY292ZXJhZ2UgZm9yIHByZWZpeC1vZi1tdWx0aWJ5dGUK CiogdGVzdHMvcHJlZml4LW9mLW11bHRpYnl0ZTogQWxzbyB0ZXN0IHRoZSByZWdleCB2ZXJz aW9uLgotLS0KIHRlc3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGUgfCAxMyArKysrKysrKystLS0t CiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rlc3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGUgYi90ZXN0cy9wcmVmaXgtb2Yt bXVsdGlieXRlCmluZGV4IDcwYTkyNGUuLjJhYjlhOTkgMTAwNzU1Ci0tLSBhL3Rlc3RzL3By ZWZpeC1vZi1tdWx0aWJ5dGUKKysrIGIvdGVzdHMvcHJlZml4LW9mLW11bHRpYnl0ZQpAQCAt MTMsMTEgKzEzLDE2IEBAIGVuY29kZSBhQUJDID5leHAyCiBmYWlsPTAKIAogZm9yIExPQyBp biBlbl9VUy5VVEYtOCAkTE9DQUxFX0ZSX1VURjg7IGRvCi0gIGZvciBvcHQgaW4gJycgJy1G JzsgZG8KLSAgICBvdXQ9b3V0LSRvcHQtJExPQwotICAgIExDX0FMTD0kTE9DIGdyZXAgJG9w dCAiJChlbmNvZGUgQSkiIGV4cDEgPiRvdXQgfHwgZmFpbD0xCisgIGZvciB0eXBlIGluIGRm YSBmZ3JlcCByZWdleDsgZG8KKyAgICBjYXNlICR0eXBlIGluCisgICAgICBkZmEpIG9wdD0g cHJlZml4PSA7OworICAgICAgZmdyZXApIG9wdD0tRiBwcmVmaXg9IDs7CisgICAgICByZWdl eCkgb3B0PSBwcmVmaXg9J1woXClcMScgOzsKKyAgICBlc2FjCisgICAgb3V0PW91dC0kdHlw ZS0kTE9DCisgICAgTENfQUxMPSRMT0MgZ3JlcCAkb3B0ICIkcHJlZml4JChlbmNvZGUgQSki IGV4cDEgPiRvdXQgfHwgZmFpbD0xCiAgICAgY29tcGFyZSBleHAxICRvdXQgfHwgZmFpbD0x Ci0gICAgTENfQUxMPSRMT0MgZ3JlcCAkb3B0ICIkKGVuY29kZSBhQSkiIGV4cDIgPiRvdXQg fHwgZmFpbD0xCisgICAgTENfQUxMPSRMT0MgZ3JlcCAkb3B0ICIkcHJlZml4JChlbmNvZGUg YUEpIiBleHAyID4kb3V0IHx8IGZhaWw9MQogICAgIGNvbXBhcmUgZXhwMiAkb3V0IHx8IGZh aWw9MQogICBkb25lCiBkb25lCi0tIAoxLjkuMAoK --------------000604090707070709030404 Content-Type: text/plain; charset=UTF-8; name="0002-grep-simplify-and-fix-problems-with-KWset-DFA-agreem.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-grep-simplify-and-fix-problems-with-KWset-DFA-agreem.pa"; filename*1="tch" RnJvbSAzYmEzMGQzZWNjODA5ZmNhNjE0OGQwOWIzMGVkY2I3ZDU5NjM2ZTlhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDQgTWF5IDIwMTQgMTg6NTk6NTEgLTA3MDAKU3ViamVjdDogW1BBVENI IDIvM10gZ3JlcDogc2ltcGxpZnkgYW5kIGZpeCBwcm9ibGVtcyB3aXRoIEtXc2V0LURGQSBh Z3JlZW1lbnQKIHBhdGNoCgoqIHNyYy9kZmEuYyAoZGZhbWJjYWNoZSwgcGFyc2VfYnJhY2tl dF9leHApOiBTaW1wbGlmeS4KKG1ic190b193Y2hhciwgd2N0b2ssIEZFVENIX1dDLCBtYXRj aF9hbnljaGFyLCBtYXRjaF9tYl9jaGFyc2V0KQooY2hlY2tfbWF0Y2hpbmdfd2l0aF9tdWx0 aWJ5dGVfb3BzLCB0cmFuc2l0X3N0YXRlX2NvbnN1bWVfMWNoYXIpCih0cmFuc2l0X3N0YXRl LCBkZmFleGVjKTogVXNlIHdpbnRfdCwgbm90IHdjaGFyX3QsIHNvIHRoYXQKV0VPRiBpcyB0 cmVhdGVkIGNvcnJlY3RseSBvbiBwbGF0Zm9ybXMgd2hlcmUgV0VPRiBpcyBub3QgYSB2YWxp ZAp3Y2hhcl90IHZhbHVlLgooY3RvaywgbGV4KTogVXNlIGludCwgbm90IHVuc2lnbmVkIGlu dCwgZm9yIGNoYXJhY3RlcnMsCnNvIHRoYXQgRU9GIGlzIHRyZWF0ZWQgbW9yZSBuYXR1cmFs bHkuCihwYXJzZV9icmFja2V0X2V4cCk6IFVzZSBOT1RDSEFSIHRvIG1hcmsgdW5pbml0aWFs aXplZCBjaGFyLCBzaW5jZQpGRVRDSF9XQyBjYW4gbm93IHNldCB0aGUgY2hhciB0byBFT0Yu CihsZXgpOiBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdCBmb3IgRU9GLgoocGFyc2VfYnJhY2tl dF9leHAsIGF0b20pOiBTd2FwIHRoZW4gYW5kIGVsc2UgcGFydHMsIHRvIHB1dAp0aGUgc21h bGwgb25lIGZpcnN0OyB0aGlzIGlzIG1vcmUgcmVhZGFibGUgaGVyZS4KKiBzcmMvc2VhcmNo dXRpbHMuYyAoaXNfbWJfbWlkZGxlKTogU2ltcGxpZnkuCi0tLQogc3JjL2RmYS5jICAgICAg ICAgfCAxMTcgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiBzcmMvc2VhcmNodXRpbHMuYyB8ICAxMiArKy0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDFjMjIwZTIuLjliN2QxMTUgMTAwNjQ0Ci0t LSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTM2Myw5ICszNjMsOCBAQCBzdHJ1 Y3QgZGZhCiAgIGludCAqbXVsdGlieXRlX3Byb3A7CiAKICAgLyogQSB0YWJsZSBpbmRleGVk IGJ5IGJ5dGUgdmFsdWVzIHRoYXQgY29udGFpbnMgdGhlIGNvcnJlc3BvbmRpbmcgd2lkZQot ICAgICBjaGFyYWN0ZXIgKGlmIGFueSkgZm9yIHRoYXQgYnl0ZS4gIFdFT0YgbWVhbnMgdGhl IGJ5dGUgaXMgdGhlCi0gICAgIGxlYWRpbmcgYnl0ZSBvZiBhIG11bHRpYnl0ZSBjaGFyYWN0 ZXIuICBJbnZhbGlkIGFuZCBudWxsIGJ5dGVzIGFyZQotICAgICBtYXBwZWQgdG8gdGhlbXNl bHZlcy4gICovCisgICAgIGNoYXJhY3RlciAoaWYgYW55KSBmb3IgdGhhdCBieXRlLiAgV0VP RiBtZWFucyB0aGUgYnl0ZSBpcyBub3QgYQorICAgICB2YWxpZCBzaW5nbGUtYnl0ZSBjaGFy YWN0ZXIuICAqLwogICB3aW50X3QgbWJydG93Y19jYWNoZVtOT1RDSEFSXTsKIAogICAvKiBB cnJheSBvZiB0aGUgYnJhY2tldCBleHByZXNzaW9uIGluIHRoZSBERkEuICAqLwpAQCAtNDUz LDI5ICs0NTIsMTkgQEAgZGZhbWJjYWNoZSAoc3RydWN0IGRmYSAqZCkKICAgICAgIHVuc2ln bmVkIGNoYXIgdWMgPSBpOwogICAgICAgbWJzdGF0ZV90IHMgPSB7IDAgfTsKICAgICAgIHdj aGFyX3Qgd2M7Ci0gICAgICB3aW50X3Qgd2k7Ci0gICAgICBzd2l0Y2ggKG1icnRvd2MgKCZ3 YywgJmMsIDEsICZzKSkKLSAgICAgICAgewotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg IHdpID0gd2M7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgKHNpemVfdCkgLTE6 Ci0gICAgICAgIGNhc2UgKHNpemVfdCkgLTI6Ci0gICAgICAgICAgd2kgPSBXRU9GOwotICAg ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICBkLT5tYnJ0b3djX2NhY2hlW3VjXSA9 IHdpOworICAgICAgZC0+bWJydG93Y19jYWNoZVt1Y10gPSBtYnJ0b3djICgmd2MsICZjLCAx LCAmcykgPD0gMSA/IHdjIDogV0VPRjsKICAgICB9CiB9CiAKIC8qIFN0b3JlIGludG8gKlBX QyB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdGhlIGxlYWRpbmcgYnl0ZXMgb2YgdGhlCiAg ICBtdWx0aWJ5dGUgYnVmZmVyIFMgb2YgbGVuZ3RoIE4gYnl0ZXMsIHVzaW5nIHRoZSBtYnJ0 b3djX2NhY2hlIGluICpECiAgICBhbmQgdXBkYXRpbmcgdGhlIGNvbnZlcnNpb24gc3RhdGUg aW4gKkQuICBPbiBjb252ZXJzaW9uIGVycm9yLAotICAgY29udmVydCBqdXN0IGEgc2luZ2xl IGJ5dGUgYXMtaXMuICBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcworICAgY29udmVydCBq dXN0IGEgc2luZ2xlIGJ5dGUsIHRvIFdFT0YuICBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRl cwogICAgY29udmVydGVkLgogCiAgICBUaGlzIGRpZmZlcnMgZnJvbSBtYnJ0b3djIChQV0Ms IFMsIE4sICZELT5tYnMpIGFzIGZvbGxvd3M6CiAKKyAgICogUFdDIHBvaW50cyB0byB3aW50 X3QsIG5vdCB0byB3Y2hhcl90LgogICAgKiBUaGUgbGFzdCBhcmcgaXMgYSBkZmEgKkQgaW5z dGVhZCBvZiBtZXJlbHkgYSBtdWx0aWJ5dGUgY29udmVyc2lvbgogICAgICBzdGF0ZSBELT5t YnMuICBEIGFsc28gY29udGFpbnMgYW4gbWJydG93Y19jYWNoZSBmb3Igc3BlZWQuCiAgICAq IE4gbXVzdCBiZSBhdCBsZWFzdCAxLgpAQCAtNDg1LDE2ICs0NzQsMjAgQEAgZGZhbWJjYWNo ZSAoc3RydWN0IGRmYSAqZCkKICAgICogRC0+bWJzIGlzIGFsd2F5cyB2YWxpZCBhZnRlcndh cmRzLgogICAgKiAqUFdDIGlzIGFsd2F5cyBzZXQgdG8gc29tZXRoaW5nLiAgKi8KIHN0YXRp YyBzaXplX3QKLW1ic190b193Y2hhciAod2NoYXJfdCAqcHdjLCBjaGFyIGNvbnN0ICpzLCBz aXplX3Qgbiwgc3RydWN0IGRmYSAqZCkKK21ic190b193Y2hhciAod2ludF90ICpwd2MsIGNo YXIgY29uc3QgKnMsIHNpemVfdCBuLCBzdHJ1Y3QgZGZhICpkKQogewogICB1bnNpZ25lZCBj aGFyIHVjID0gc1swXTsKICAgd2ludF90IHdjID0gZC0+bWJydG93Y19jYWNoZVt1Y107CiAK ICAgaWYgKHdjID09IFdFT0YpCiAgICAgewotICAgICAgc2l6ZV90IG5ieXRlcyA9IG1icnRv d2MgKHB3YywgcywgbiwgJmQtPm1icyk7CisgICAgICB3Y2hhcl90IHdjaDsKKyAgICAgIHNp emVfdCBuYnl0ZXMgPSBtYnJ0b3djICgmd2NoLCBzLCBuLCAmZC0+bWJzKTsKICAgICAgIGlm ICgwIDwgbmJ5dGVzICYmIG5ieXRlcyA8IChzaXplX3QpIC0yKQotICAgICAgICByZXR1cm4g bmJ5dGVzOworICAgICAgICB7CisgICAgICAgICAgKnB3YyA9IHdjaDsKKyAgICAgICAgICBy ZXR1cm4gbmJ5dGVzOworICAgICAgICB9CiAgICAgICBtZW1zZXQgKCZkLT5tYnMsIDAsIHNp emVvZiBkLT5tYnMpOwogICAgIH0KIApAQCAtODQ4LDEzICs4NDEsMjEgQEAgc3RhdGljIGlu dCBtaW5yZXAsIG1heHJlcDsgICAgICAvKiBSZXBlYXQgY291bnRzIGZvciB7bSxufS4gICov CiBzdGF0aWMgaW50IGN1cl9tYl9sZW4gPSAxOyAgICAgIC8qIExlbmd0aCBvZiB0aGUgbXVs dGlieXRlIHJlcHJlc2VudGF0aW9uIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdjdG9rLiAgKi8KIC8qIFRoZXNlIHZhcmlhYmxlcyBhcmUgdXNlZCBvbmx5IGlm IChNQl9DVVJfTUFYID4gMSkuICAqLwotc3RhdGljIHdjaGFyX3Qgd2N0b2s7ICAgICAgICAg ICAvKiBXaWRlIGNoYXJhY3RlciByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWJ5dGUgY2hhcmFjdGVyLiAg Ki8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgY3RvazsgICAgICAgLyogU2luZ2xlIGNoYXJhY3Rl ciByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtdWx0aWJ5dGUgY2hhcmFjdGVyLiAgKi8KLQotCi0vKiBOb3RlIHRo YXQgY2hhcmFjdGVycyBiZWNvbWUgdW5zaWduZWQgaGVyZS4gICovCitzdGF0aWMgd2ludF90 IHdjdG9rOwkJLyogV2lkZSBjaGFyYWN0ZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIGN1cnJl bnQKKwkJCQkgICBtdWx0aWJ5dGUgY2hhcmFjdGVyLCBvciBXRU9GIGlmIHRoZXJlIHdhcwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBlbmNvZGluZyBlcnJvci4g ICovCitzdGF0aWMgaW50IGN0b2s7CQkvKiBDdXJyZW50IGlucHV0IGJ5dGUgaWYgaXQgaXMg YW4gZW50aXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rl ciBvciBpcyBhbiBlbmNvZGluZyBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRU9GIG90aGVyd2lzZS4gICovCisKKworLyogRmV0Y2ggdGhlIG5leHQgbGV4 aWNhbCBpbnB1dCBjaGFyYWN0ZXIuICBTZXQgQyAob2YgdHlwZSBpbnQpIHRvIHRoZQorICAg bmV4dCBpbnB1dCBieXRlLCBleGNlcHQgc2V0IEMgdG8gRU9GIGlmIHRoZSBpbnB1dCBpcyBh IG11bHRpYnl0ZQorICAgY2hhcmFjdGVyIG9mIGxlbmd0aCBncmVhdGVyIHRoYW4gMS4gIFNl dCBXQyAob2YgdHlwZSB3aW50X3QpIHRvIHRoZQorICAgdmFsdWUgb2YgdGhlIGlucHV0IGlm IGl0IGlzIGEgdmFsaWQgbXVsdGlieXRlIGNoYXJhY3RlciAocG9zc2libHkKKyAgIG9mIGxl bmd0aCAxKTsgb3RoZXJ3aXNlIHNldCBXQyB0byBXRU9GLiAgSWYgdGhlcmUgaXMgbm8gbW9y ZSBpbnB1dCwKKyAgIHJlcG9ydCBFT0ZFUlIgaWYgRU9GRVJSIGlzIG5vdCBudWxsLCBhbmQg cmV0dXJuIGxhc3R0b2sgPSBFTkQKKyAgIG90aGVyd2lzZS4gICovCiAjIGRlZmluZSBGRVRD SF9XQyhjLCB3YywgZW9mZXJyKQkJXAogICBkbyB7CQkJCQkJXAogICAgIGlmICghIGxleGxl ZnQpCQkJCVwKQEAgLTg2Niw3ICs4NjcsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGN0b2s7 ICAgICAgIC8qIFNpbmdsZSBjaGFyYWN0ZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIGN1cnJl bgogICAgICAgfQkJCQkJCVwKICAgICBlbHNlCQkJCQlcCiAgICAgICB7CQkJCQkJXAotICAg ICAgICB3Y2hhcl90IF93YzsJCQkJXAorICAgICAgICB3aW50X3QgX3djOwkJCQlcCiAgICAg ICAgIHNpemVfdCBuYnl0ZXMgPSBtYnNfdG9fd2NoYXIgKCZfd2MsIGxleHB0ciwgbGV4bGVm dCwgZGZhKTsgXAogICAgICAgICBjdXJfbWJfbGVuID0gbmJ5dGVzOwkJCVwKICAgICAgICAg KHdjKSA9IF93YzsJCQkJXApAQCAtMTAyNyw3ICsxMDI4LDcgQEAgcGFyc2VfYnJhY2tldF9l eHAgKHZvaWQpCiAgIGNvbG9uX3dhcm5pbmdfc3RhdGUgPSAoYyA9PSAnOicpOwogICBkbwog ICAgIHsKLSAgICAgIGMxID0gRU9GOyAgICAgICAgICAgICAgICAgLyogbWFyayBjMSBpcyBu b3QgaW5pdGlhbGl6ZWQiLiAgKi8KKyAgICAgIGMxID0gTk9UQ0hBUjsJLyogTWFyayBjMSBh cyBub3QgaW5pdGlhbGl6ZWQuICAqLwogICAgICAgY29sb25fd2FybmluZ19zdGF0ZSAmPSB+ MjsKIAogICAgICAgLyogTm90ZSB0aGF0IGlmIHdlJ3JlIGxvb2tpbmcgYXQgc29tZSBvdGhl ciBbOi4uLjpdIGNvbnN0cnVjdCwKQEAgLTExMDUsNyArMTEwNiw3IEBAIHBhcnNlX2JyYWNr ZXRfZXhwICh2b2lkKQogICAgICAgaWYgKGMgPT0gJ1xcJyAmJiAoc3ludGF4X2JpdHMgJiBS RV9CQUNLU0xBU0hfRVNDQVBFX0lOX0xJU1RTKSkKICAgICAgICAgRkVUQ0hfV0MgKGMsIHdj LCBfKCJ1bmJhbGFuY2VkIFsiKSk7CiAKLSAgICAgIGlmIChjMSA9PSBFT0YpCisgICAgICBp ZiAoYzEgPT0gTk9UQ0hBUikKICAgICAgICAgRkVUQ0hfV0MgKGMxLCB3YzEsIF8oInVuYmFs YW5jZWQgWyIpKTsKIAogICAgICAgaWYgKGMxID09ICctJykKQEAgLTExOTIsMjggKzExOTMs MjQgQEAgcGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiAgICAgICAgICAgY29udGludWU7CiAg ICAgICAgIH0KIAotICAgICAgaWYgKHdjICE9IFdFT0YpCisgICAgICBpZiAod2MgPT0gV0VP RikKKyAgICAgICAgc2V0Yml0IChjLCBjY2wpOworICAgICAgZWxzZQogICAgICAgICB7Ci0g ICAgICAgICAgaWYgKGNhc2VfZm9sZCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg d2NoYXJfdCBmb2xkZWRbQ0FTRV9GT0xERURfQlVGU0laRV07Ci0gICAgICAgICAgICAgIGlu dCBpLCBuID0gY2FzZV9mb2xkZWRfY291bnRlcnBhcnRzICh3YywgZm9sZGVkKTsKLSAgICAg ICAgICAgICAgd29ya19tYmMtPmNoYXJzID0gbWF5YmVfcmVhbGxvYyAod29ya19tYmMtPmNo YXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 b3JrX21iYy0+bmNoYXJzICsgbiwgJmNoYXJzX2FsLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5jaGFycyk7Ci0g ICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCi0gICAgICAgICAgICAgICAg aWYgKCFzZXRiaXRfd2MgKGZvbGRlZFtpXSwgY2NsKSkKLSAgICAgICAgICAgICAgICAgIHdv cmtfbWJjLT5jaGFyc1t3b3JrX21iYy0+bmNoYXJzKytdID0gZm9sZGVkW2ldOwotICAgICAg ICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKCFzZXRiaXRfd2MgKHdjLCBjY2wpKQotICAg ICAgICAgICAgewotICAgICAgICAgICAgICB3b3JrX21iYy0+Y2hhcnMgPSBtYXliZV9yZWFs bG9jICh3b3JrX21iYy0+Y2hhcnMsIHdvcmtfbWJjLT5uY2hhcnMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaGFyc19hbCwgc2l6ZW9mICp3 b3JrX21iYy0+Y2hhcnMpOwotICAgICAgICAgICAgICB3b3JrX21iYy0+Y2hhcnNbd29ya19t YmMtPm5jaGFycysrXSA9IHdjOwotICAgICAgICAgICAgfQorICAgICAgICAgIHdjaGFyX3Qg Zm9sZGVkW0NBU0VfRk9MREVEX0JVRlNJWkUgKyAxXTsKKyAgICAgICAgICBpbnQgaTsKKyAg ICAgICAgICBpbnQgbiA9IChjYXNlX2ZvbGQgPyBjYXNlX2ZvbGRlZF9jb3VudGVycGFydHMg KHdjLCBmb2xkZWQgKyAxKSArIDEKKyAgICAgICAgICAgICAgICAgICA6IDEpOworICAgICAg ICAgIGZvbGRlZFswXSA9IHdjOworICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKysp CisgICAgICAgICAgICBpZiAoIXNldGJpdF93YyAoZm9sZGVkW2ldLCBjY2wpKQorICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgd29ya19tYmMtPmNoYXJzCisgICAgICAgICAg ICAgICAgICA9IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5jaGFycywgd29ya19tYmMtPm5j aGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNoYXJzX2FsLCBz aXplb2YgKndvcmtfbWJjLT5jaGFycyk7CisgICAgICAgICAgICAgICAgd29ya19tYmMtPmNo YXJzW3dvcmtfbWJjLT5uY2hhcnMrK10gPSBmb2xkZWRbaV07CisgICAgICAgICAgICAgIH0K ICAgICAgICAgfQotICAgICAgZWxzZQotICAgICAgICBzZXRiaXQgKGMsIGNjbCk7CiAgICAg fQogICB3aGlsZSAoKHdjID0gd2MxLCAoYyA9IGMxKSAhPSAnXScpKTsKIApAQCAtMTI0NSw3 ICsxMjQyLDcgQEAgcGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiBzdGF0aWMgdG9rZW4KIGxl eCAodm9pZCkKIHsKLSAgdW5zaWduZWQgaW50IGMsIGMyOworICBpbnQgYywgYzI7CiAgIGJv b2wgYmFja3NsYXNoID0gZmFsc2U7CiAgIGNoYXJjbGFzcyBjY2w7CiAgIGludCBpOwpAQCAt MTI2MCw4ICsxMjU3LDYgQEAgbGV4ICh2b2lkKQogICAgIHsKICAgICAgIEZFVENIX1dDIChj dG9rLCB3Y3RvaywgTlVMTCk7CiAgICAgICBjID0gY3RvazsKLSAgICAgIGlmIChjID09ICh1 bnNpZ25lZCBpbnQpIEVPRikKLSAgICAgICAgZ290byBub3JtYWxfY2hhcjsKIAogICAgICAg c3dpdGNoIChjKQogICAgICAgICB7CkBAIC0xNzkwLDcgKzE3ODUsOSBAQCBhdG9tICh2b2lk KQogewogICBpZiAodG9rID09IFdDSEFSKQogICAgIHsKLSAgICAgIGlmICh3Y3RvayAhPSBX RU9GKQorICAgICAgaWYgKHdjdG9rID09IFdFT0YpCisgICAgICAgIGFkZHRva19tYiAoY3Rv aywgMyk7CisgICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgICBhZGR0b2tfd2MgKHdj dG9rKTsKIApAQCAtMTgwNSw4ICsxODAyLDYgQEAgYXRvbSAodm9pZCkKICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgICAg YWRkdG9rX21iIChjdG9rLCAzKTsKIAogICAgICAgdG9rID0gbGV4ICgpOwogICAgIH0KQEAg LTI5NTcsNyArMjk1Miw3IEBAIHRyYW5zaXRfc3RhdGVfc2luZ2xlYnl0ZSAoc3RydWN0IGRm YSAqZCwgc3RhdGVfbnVtIHMsIHVuc2lnbmVkIGNoYXIgY29uc3QgKnAsCiAgICBtYXRjaCwg aW4gYnl0ZXMuICBQT1MgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSAiLiIuICAqLwogc3RhdGlj IGludAogbWF0Y2hfYW55Y2hhciAoc3RydWN0IGRmYSAqZCwgc3RhdGVfbnVtIHMsIHBvc2l0 aW9uIHBvcywKLSAgICAgICAgICAgICAgIHdjaGFyX3Qgd2MsIHNpemVfdCBtYmNsZW4pCisg ICAgICAgICAgICAgICB3aW50X3Qgd2MsIHNpemVfdCBtYmNsZW4pCiB7CiAgIGludCBjb250 ZXh0OwogCkBAIC0yOTg3LDcgKzI5ODIsNyBAQCBtYXRjaF9hbnljaGFyIChzdHJ1Y3QgZGZh ICpkLCBzdGF0ZV9udW0gcywgcG9zaXRpb24gcG9zLAogICAgUE9TIGlzIHRoZSBwb3NpdGlv biBvZiB0aGUgYnJhY2tldCBleHByZXNzaW9uLiAgKi8KIHN0YXRpYyBpbnQKIG1hdGNoX21i X2NoYXJzZXQgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBzLCBwb3NpdGlvbiBwb3MsCi0g ICAgICAgICAgICAgICAgICBjaGFyIGNvbnN0ICpwLCB3Y2hhcl90IHdjLCBzaXplX3QgbWF0 Y2hfbGVuKQorICAgICAgICAgICAgICAgICAgY2hhciBjb25zdCAqcCwgd2ludF90IHdjLCBz aXplX3QgbWF0Y2hfbGVuKQogewogICBzaXplX3QgaTsKICAgYm9vbCBtYXRjaDsgICAgICAg ICAgICAgIC8qIE1hdGNoaW5nIHN1Y2NlZWRlZC4gICovCkBAIC0zMDkwLDcgKzMwODUsNyBA QCBjaGFyc2V0X21hdGNoZWQ6CiAgICBUaGUgY2FsbGVyIE1VU1QgZnJlZSB0aGUgYXJyYXkg d2hpY2ggdGhpcyBmdW5jdGlvbiByZXR1cm4uICAqLwogc3RhdGljIGludCAqCiBjaGVja19t YXRjaGluZ193aXRoX211bHRpYnl0ZV9vcHMgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBz LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvbnN0ICpwLCB3 Y2hhcl90IHdjLCBzaXplX3QgbWJjbGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjaGFyIGNvbnN0ICpwLCB3aW50X3Qgd2MsIHNpemVfdCBtYmNsZW4pCiB7CiAg IHNpemVfdCBpOwogICBpbnQgKnJhcnJheTsKQEAgLTMxMjUsNyArMzEyMCw3IEBAIGNoZWNr X21hdGNoaW5nX3dpdGhfbXVsdGlieXRlX29wcyAoc3RydWN0IGRmYSAqZCwgc3RhdGVfbnVt IHMsCiBzdGF0aWMgc3RhdHVzX3RyYW5zaXRfc3RhdGUKIHRyYW5zaXRfc3RhdGVfY29uc3Vt ZV8xY2hhciAoc3RydWN0IGRmYSAqZCwgc3RhdGVfbnVtIHMsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKipwcCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd2NoYXJfdCB3Yywgc2l6ZV90IG1iY2xlbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd2ludF90IHdjLCBzaXplX3QgbWJjbGVuLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgKm1hdGNoX2xlbnMpCiB7CiAgIHNpemVfdCBpLCBq OwpAQCAtMzE3Niw3ICszMTcxLDcgQEAgdHJhbnNpdF9zdGF0ZSAoc3RydWN0IGRmYSAqZCwg c3RhdGVfbnVtIHMsIHVuc2lnbmVkIGNoYXIgY29uc3QgKipwcCwKICAgaW50ICptYXRjaF9s ZW5zID0gTlVMTDsKICAgc2l6ZV90IG5lbGVtID0gZC0+c3RhdGVzW3NdLm1icHMubmVsZW07 ICAgICAgIC8qIEp1c3QgYSBhbGlhcy4gICovCiAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKnAx ID0gKnBwOwotICB3Y2hhcl90IHdjOworICB3aW50X3Qgd2M7CiAKICAgaWYgKG5lbGVtID4g MCkKICAgICAvKiBUaGlzIHN0YXRlIGhhcyAoYSkgbXVsdGlieXRlIG9wZXJhdG9yKHMpLgpA QCAtMzMwNSw3ICszMzAwLDcgQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25z dCAqYmVnaW4sIGNoYXIgKmVuZCwKICAgICAgICAgICAgICAgICAgICAgIHN0YXRlIG11c3Qg c2tpcCB0aGUgYnl0ZXMgdGhhdCBhcmUgbm90IGEgc2luZ2xlCiAgICAgICAgICAgICAgICAg ICAgICBieXRlIGNoYXJhY3RlciBub3IgdGhlIGZpcnN0IGJ5dGUgb2YgYSBtdWx0aWJ5dGUK ICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlci4gICovCi0gICAgICAgICAgICAgICAg ICB3Y2hhcl90IHdjOworICAgICAgICAgICAgICAgICAgd2ludF90IHdjOwogICAgICAgICAg ICAgICAgICAgd2hpbGUgKG1icCA8IHApCiAgICAgICAgICAgICAgICAgICAgIG1icCArPSBt YnNfdG9fd2NoYXIgKCZ3YywgKGNoYXIgY29uc3QgKikgbWJwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgLSAoY2hhciBjb25zdCAqKSBtYnAsIGQp OwpkaWZmIC0tZ2l0IGEvc3JjL3NlYXJjaHV0aWxzLmMgYi9zcmMvc2VhcmNodXRpbHMuYwpp bmRleCAzYzc4ZjMxLi43NjAwNWJmIDEwMDY0NAotLS0gYS9zcmMvc2VhcmNodXRpbHMuYwor KysgYi9zcmMvc2VhcmNodXRpbHMuYwpAQCAtMjQ5LDEwICsyNDksMTAgQEAgaXNfbWJfbWlk ZGxlIChjb25zdCBjaGFyICoqZ29vZCwgY29uc3QgY2hhciAqYnVmLCBjb25zdCBjaGFyICpl bmQsCiAgICAgICBpZiAobWJjbGVuID09IChzaXplX3QpIC0yKQogICAgICAgICBtYmNsZW4g PSBtYnJsZW4gKHAsIGVuZCAtIHAsICZjdXJfc3RhdGUpOwogCi0gICAgICBpZiAobWJjbGVu ID09IChzaXplX3QpIC0xIHx8IG1iY2xlbiA9PSAoc2l6ZV90KSAtMiB8fCBtYmNsZW4gPT0g MCkKKyAgICAgIGlmICghICgwIDwgbWJjbGVuICYmIG1iY2xlbiA8IChzaXplX3QpIC0yKSkK ICAgICAgICAgewotICAgICAgICAgIC8qIEFuIGludmFsaWQgc2VxdWVuY2UsIG9yIGEgdHJ1 bmNhdGVkIG11bHRpYnl0ZSBjaGFyYWN0ZXIuCi0gICAgICAgICAgICAgV2UgdHJlYXQgaXQg YXMgYSBzaW5nbGUgYnl0ZSBjaGFyYWN0ZXIuICAqLworICAgICAgICAgIC8qIEFuIGludmFs aWQgc2VxdWVuY2UsIG9yIGEgdHJ1bmNhdGVkIG11bHRpYnl0ZSBjaGFyYWN0ZXIsIG9yCisg ICAgICAgICAgICAgYSBudWxsIHdpZGUgY2hhcmFjdGVyLiAgVHJlYXQgaXQgYXMgYSBzaW5n bGUgYnl0ZSBjaGFyYWN0ZXIuICAqLwogICAgICAgICAgIG1iY2xlbiA9IDE7CiAgICAgICAg ICAgbWVtc2V0ICgmY3VyX3N0YXRlLCAwLCBzaXplb2YgY3VyX3N0YXRlKTsKICAgICAgICAg fQpAQCAtMjYxLDkgKzI2MSw1IEBAIGlzX21iX21pZGRsZSAoY29uc3QgY2hhciAqKmdvb2Qs IGNvbnN0IGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqZW5kLAogCiAgICpnb29kID0gcDsKIAot ICBpZiAocCA+IGJ1ZikKLSAgICByZXR1cm4gdHJ1ZTsKLQotICAvKiBQID09IEJVRiBoZXJl LiAgKi8KLSAgcmV0dXJuIGZhbHNlOworICByZXR1cm4gYnVmIDwgcDsKIH0KLS0gCjEuOS4w Cgo= --------------000604090707070709030404 Content-Type: text/plain; charset=UTF-8; name="0003-dfa-minor-simplification.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-dfa-minor-simplification.patch" RnJvbSAxNzY4M2RmMTFmYmVhN2FhMDFjOWQ2MGYxYjQ1ODc0YzllYTVlMjZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDQgTWF5IDIwMTQgMTk6MzQ6MzAgLTA3MDAKU3ViamVjdDogW1BBVENI IDMvM10gZGZhOiBtaW5vciBzaW1wbGlmaWNhdGlvbgoKKiBzcmMvZGZhLmMgKHBhcnNlX2Jy YWNrZXRfZXhwKTogVXNlIGVudW0sIG5vdCBtYWNybywgYW5kIG1vdmUgdmFyCnRvIGp1c3Qg dGhlIHNjb3BlIGl0J3MgbmVlZGVkLgotLS0KIHNyYy9kZmEuYyB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggOWI3ZDExNS4uNTIxMTA4NyAxMDA2NDQK LS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMTAzNywxMyArMTAzNywxMyBA QCBwYXJzZV9icmFja2V0X2V4cCAodm9pZCkKICAgICAgICAgIGRmYSBpcyBldmVyIGNhbGxl ZC4gICovCiAgICAgICBpZiAoYyA9PSAnWycpCiAgICAgICAgIHsKLSNkZWZpbmUgTUFYX0JS QUNLRVRfU1RSSU5HX0xFTiAzMgotICAgICAgICAgIGNoYXIgc3RyW01BWF9CUkFDS0VUX1NU UklOR19MRU4gKyAxXTsKICAgICAgICAgICBGRVRDSF9XQyAoYzEsIHdjMSwgXygidW5iYWxh bmNlZCBbIikpOwogCiAgICAgICAgICAgaWYgKChjMSA9PSAnOicgJiYgKHN5bnRheF9iaXRz ICYgUkVfQ0hBUl9DTEFTU0VTKSkKICAgICAgICAgICAgICAgfHwgYzEgPT0gJy4nIHx8IGMx ID09ICc9JykKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgZW51bSB7IE1BWF9CUkFD S0VUX1NUUklOR19MRU4gPSAzMiB9OworICAgICAgICAgICAgICBjaGFyIHN0cltNQVhfQlJB Q0tFVF9TVFJJTkdfTEVOICsgMV07CiAgICAgICAgICAgICAgIHNpemVfdCBsZW4gPSAwOwog ICAgICAgICAgICAgICBmb3IgKDs7KQogICAgICAgICAgICAgICAgIHsKLS0gCjEuOS4wCgo= --------------000604090707070709030404-- From debbugs-submit-bounces@debbugs.gnu.org Mon May 05 23:26:57 2014 Received: (at 17376) by debbugs.gnu.org; 6 May 2014 03:26:57 +0000 Received: from localhost ([127.0.0.1]:52209 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhW1w-0004EV-40 for submit@debbugs.gnu.org; Mon, 05 May 2014 23:26:56 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:39034) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhW1s-0004EA-QJ for 17376@debbugs.gnu.org; Mon, 05 May 2014 23:26:54 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id A9503A60004; Mon, 5 May 2014 20:26:46 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kaABTzYw1J3s; Mon, 5 May 2014 20:26:42 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 44428A60003; Mon, 5 May 2014 20:26:42 -0700 (PDT) Message-ID: <5368566D.2030003@cs.ucla.edu> Date: Mon, 05 May 2014 20:26:37 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17376: [PATCH] grep: fix the different behaviour for a invalid sequence between KWset and DFA References: <20140501071631.5CF7.27F6AC2D@kcn.ne.jp> <5361C96F.2020301@cs.ucla.edu> <20140501204902.B0E3.27F6AC2D@kcn.ne.jp> <5366FA59.30307@cs.ucla.edu> In-Reply-To: <5366FA59.30307@cs.ucla.edu> Content-Type: multipart/mixed; boundary="------------070303060201060000080308" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17376 Cc: 17376@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) This is a multi-part message in MIME format. --------------070303060201060000080308 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit While thinking about Bug#17376 I noticed some related bugs, which appear to have been in 'grep' since at least grep 2.0. For example: $ encode() { echo "$1" | tr ABC '\357\274\241'; } $ encode ABCABC >exp3 $ encode _____________________ABCABC___ >exp4 $ bca=$(encode BCA) $ grep "$bca" exp3 $ grep -F "$bca" exp3 $ grep "\\(\\)\\1$bca" exp3 AA Here the regexp code disagrees with KWset and with the DFA, which is a bug: KWset and DFA should affect only performance, not behavior. $ grep "$bca" exp4 _____________________AA___ $ grep -F "$bca" exp4 _____________________AA___ $ grep "\\(\\)\\1$bca" exp4 _____________________AA___ Here they agree, but only because there's a bug in is_mb_middle! Fixing that will cause them to disagree again. I installed the attached patch to fix the bugs I found, and to adjust the test cases accordingly. --------------070303060201060000080308 Content-Type: text/plain; charset=UTF-8; name="0001-grep-fix-encoding-error-incompatibilities-among-rege.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-grep-fix-encoding-error-incompatibilities-among-rege.pa"; filename*1="tch" RnJvbSBlODYyNGFkYTI1NzFlYTVlYjg5MWI3MWM4ZjJjMGQ1Njg1NWRiZDdhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDUgTWF5IDIwMTQgMjA6MTk6MTkgLTA3MDAKU3ViamVjdDogW1BBVENI XSBncmVwOiBmaXggZW5jb2RpbmctZXJyb3IgaW5jb21wYXRpYmlsaXRpZXMgYW1vbmcgcmVn ZXgsIERGQSwKIEtXc2V0CgpUaGlzIGZvbGxvd3MgdXAgdG8gaHR0cDovL2J1Z3MuZ251Lm9y Zy8xNzM3NiBhbmQgZml4ZXMgYSBkaWZmZXJlbnQKc2V0IG9mIGluY29tcGF0aWJpbGl0aWVz LCBuYW1lbHkgYmV0d2VlbiB0aGUgcmVnZXggbWF0Y2hlciBhbmQgdGhlCm90aGVyIG1hdGNo ZXJzLCB3aGVuIHRoZSBwYXR0ZXJuIGNvbnRhaW5zIGVuY29kaW5nIGVycm9ycy4KVGhlIEdO VSByZWdleCBtYXRjaGVyIGlzIG5vdCBjb25zaXN0ZW50IGluIHRoaXMgYXJlYTogc29tZXRp bWVzCmFuIGVuY29kaW5nIGVycm9yIG1hdGNoZXMgb25seSBpdHNlbGYsIGFuZCBzb21ldGlt ZXMgaXQKbWF0Y2hlcyBwYXJ0IG9mIGEgbXVsdGlieXRlIGNoYXJhY3Rlci4gIFRoZXJlIGlz IG5vIGRvY3VtZW50YXRpb24KZm9yIGdyZXAncyBiZWhhdmlvciBpbiB0aGlzIGFyZWEgYW5k IHVzZXJzIGRvbid0IHNlZW0gdG8gY2FyZSwKYW5kIGl0J3Mgc2ltcGxlciB0byBkZWZlciB0 byB0aGUgcmVnZXggbWF0Y2hlciBmb3IgcHJvYmxlbWF0aWMKY2FzZXMgbGlrZSB0aGVzZS4K KiBORVdTOiBEb2N1bWVudCB0aGlzLgoqIHNyYy9kZmEuYyAoY3Rvayk6IFJlbW92ZS4gIEFs bCB1c2VzIHJlbW92ZWQuCihwYXJzZV9icmFja2V0X2V4cCwgYXRvbSk6IFVzZSBCQUNLUkVG IGlmIGEgcGF0dGVybiBjb250YWlucwphbiBlbmNvZGluZyBlcnJvciwgc28gdGhhdCB0aGUg bWF0Y2hlciB3aWxsIHJldmVydCB0byByZWdleC4KKiBzcmMvZGZhc2VhcmNoLmMsIHNyYy9n cmVwLmMsIHNyYy9wY3Jlc2VhcmNoLmMsIHNyYy9zZWFyY2h1dGlscy5jOgpEb24ndCBpbmNs dWRlIGRmYS5oLCBzaW5jZSBzZWFyY2guaCBub3cgZG9lcyB0aGF0IGZvciB1cy4KKiBzcmMv ZGZhc2VhcmNoLmMgKEVHZXhlY3V0ZSk6Ciogc3JjL2t3c2VhcmNoLmMgKEZleGVjdXRlKTog SW4gYSBVVEYtOCBsb2NhbGUsIHRoZXJlJ3Mgbm8gbmVlZCB0bwp3b3JyeSBhYm91dCBtYXRj aGluZyBwYXJ0IG9mIGEgbXVsdGlieXRlIGNoYXJhY3Rlci4KKiBzcmMvZ3JlcC5jIChjb250 YWluc19lbmNvZGluZ19lcnJvcik6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCihtYWluKTogVXNl IGl0LCBzbyB0aGF0IGdyZXAgLUYgaXMgY29uc2lzdGVudCB3aXRoIHBsYWluIGZncmVwCndo ZW4gdGhlIHBhdHRlcm4gY29udGFpbnMgYW4gZW5jb2RpbmcgZXJyb3IuCiogc3JjL3NlYXJj aC5oOiBJbmNsdWRlIGRmYS5oLCBzbyB0aGF0IGt3c2VhcmNoLmMgY2FuIGNhbGwgdXNpbmdf dXRmOC4KKiBzcmMvc2VhcmNodXRpbHMuYyAoaXNfbWJfbWlkZGxlKTogUmVtb3ZlIFVURi04 LXNwZWNpZmljIGNvZGUuCkNhbGxlcnMgbm93IGVuc3VyZSB0aGF0IHdlIGFyZSBpbiBhIG5v bi1VVEYtOCBsb2NhbGUuClRoZSBjb2RlIHdhcyBjbGVhcmx5IHdyb25nLCBhbnl3YXkuCiog dGVzdHMvZmdyZXAtaW5mbG9vcCwgdGVzdHMvaW52YWxpZC1tdWx0aWJ5dGUtaW5mbG9vcDoK KiB0ZXN0cy9wcmVmaXgtb2YtbXVsdGlieXRlOgpEbyBub3QgcmVxdWlyZSB0aGF0IGdyZXAg aGF2ZSBhIHBhcnRpY3VsYXIgYmVoYXZvciBmb3IgdGhpcyB0ZXN0LgpJdCdzIE9LIHRvIG1h dGNoIChleGl0IHN0YXR1cyAwKSwgbm90IG1hdGNoIChleGl0IHN0YXR1cyAxKSwgb3IKcmVw b3J0IGFuIGVycm9yIChleGl0IHN0YXR1cyAyKSwgc2luY2UgdGhlIHBhdHRlcm4gY29udGFp bnMgYW4KZW5jb2RpbmcgZXJyb3IgYW5kIGdyZXAncyBiZWhhdmlvciBpcyBub3Qgc3BlY2lm aWVkIGZvciBzdWNoCnBhdHRlcm5zLiAgVGVzdCBvbmx5IHRoYXQgS1dzZXQsIERGQSwgYW5k IHJlZ2V4IGFncmVlLgoqIHRlc3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGU6IEFkZCB0ZXN0cyBm b3IgQUJDQUJDIGFuZCBfXy4uLl9BQkNBQkNfX18uCi0tLQogTkVXUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICA1ICsrKysrCiBzcmMvZGZhLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgMTUgKysrKysrLS0tLS0tLS0tCiBzcmMvZGZhc2VhcmNoLmMgICAgICAgICAgICAg ICAgIHwgIDMgKy0tCiBzcmMvZ3JlcC5jICAgICAgICAgICAgICAgICAgICAgIHwgMjUgKysr KysrKysrKysrKysrKysrKysrLS0tLQogc3JjL2t3c2VhcmNoLmMgICAgICAgICAgICAgICAg ICB8ICAyICstCiBzcmMvcGNyZXNlYXJjaC5jICAgICAgICAgICAgICAgIHwgIDEgLQogc3Jj L3NlYXJjaC5oICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9zZWFyY2h1dGlscy5j ICAgICAgICAgICAgICAgfCAxMSAtLS0tLS0tLS0tLQogdGVzdHMvZmdyZXAtaW5mbG9vcCAg ICAgICAgICAgICB8IDE0ICsrKysrKysrKystLS0tCiB0ZXN0cy9pbnZhbGlkLW11bHRpYnl0 ZS1pbmZsb29wIHwgMTEgKysrKysrKysrLS0KIHRlc3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGUg ICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDExIGZp bGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDJkM2UxMmEuLjNiZjdiNjkgMTAwNjQ0Ci0tLSBh L05FV1MKKysrIGIvTkVXUwpAQCAtMTQsNiArMTQsMTEgQEAgR05VIGdyZXAgTkVXUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBvdXRsaW5lIC0qLQogICBncmVw IC1mIG5vIGxvbmdlciBtaXNoYW5kbGVzIHBhdHRlcm5zIGNvbnRhaW5pbmcgTlVMIGJ5dGVz LgogICBbYnVnIGludHJvZHVjZWQgaW4gZ3JlcC0yLjExXQogCisgIFBsYWluIGdyZXAsIGdy ZXAgLUUsIGFuZCBncmVwIC1GIG5vdyB0cmVhdCBlbmNvZGluZyBlcnJvcnMgaW4gcGF0dGVy bnMKKyAgdGhlIHNhbWUgd2F5IHRoZSBHTlUgcmVndWxhciBleHByZXNzaW9uIG1hdGNoZXIg dHJlYXRzIHRoZW0sIHdpdGggcmVzcGVjdAorICB0byB3aGV0aGVyIHRoZSBlcnJvcnMgY2Fu IG1hdGNoIHBhcnRzIG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXJzIGluIGRhdGEuCisgIFtidWcg cHJlc2VudCBzaW5jZSAidGhlIGJlZ2lubmluZyJdCisKICAgZ3JlcCAtUCBub3cgcmVwb3J0 cyBhbiBlcnJvciBhbmQgZXhpdHMgd2hlbiBnaXZlbiBpbnZhbGlkIFVURi04IGRhdGEuCiAg IFByZXZpb3VzbHkgaXQgd2FzIHVucmVsaWFibGUsIGFuZCBzb21ldGltZXMgY3Jhc2hlZCBv ciBsb29wZWQuCiAgIFtidWcgaW50cm9kdWNlZCBpbiBncmVwLTIuMTZdCmRpZmYgLS1naXQg YS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggNTIxMTA4Ny4uMjczZDNkMSAxMDA2NDQK LS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtODQwLDEzICs4NDAsMTEgQEAg c3RhdGljIGludCBtaW5yZXAsIG1heHJlcDsgICAgICAvKiBSZXBlYXQgY291bnRzIGZvciB7 bSxufS4gICovCiAKIHN0YXRpYyBpbnQgY3VyX21iX2xlbiA9IDE7ICAgICAgLyogTGVuZ3Ro IG9mIHRoZSBtdWx0aWJ5dGUgcmVwcmVzZW50YXRpb24gb2YKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd2N0b2suICAqLwotLyogVGhlc2UgdmFyaWFibGVzIGFyZSB1 c2VkIG9ubHkgaWYgKE1CX0NVUl9NQVggPiAxKS4gICovCisKIHN0YXRpYyB3aW50X3Qgd2N0 b2s7CQkvKiBXaWRlIGNoYXJhY3RlciByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudAog CQkJCSAgIG11bHRpYnl0ZSBjaGFyYWN0ZXIsIG9yIFdFT0YgaWYgdGhlcmUgd2FzCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGVuY29kaW5nIGVycm9yLiAgKi8K LXN0YXRpYyBpbnQgY3RvazsJCS8qIEN1cnJlbnQgaW5wdXQgYnl0ZSBpZiBpdCBpcyBhbiBl bnRpcmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyIG9y IGlzIGFuIGVuY29kaW5nIGVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFT0Ygb3RoZXJ3aXNlLiAgKi8KKwkJCQkgICBhbiBlbmNvZGluZyBlcnJvci4gIFVz ZWQgb25seSBpZgorCQkJCSAgIE1CX0NVUl9NQVggPiAxLiAgKi8KIAogCiAvKiBGZXRjaCB0 aGUgbmV4dCBsZXhpY2FsIGlucHV0IGNoYXJhY3Rlci4gIFNldCBDIChvZiB0eXBlIGludCkg dG8gdGhlCkBAIC0xMTk0LDcgKzExOTIsNyBAQCBwYXJzZV9icmFja2V0X2V4cCAodm9pZCkK ICAgICAgICAgfQogCiAgICAgICBpZiAod2MgPT0gV0VPRikKLSAgICAgICAgc2V0Yml0IChj LCBjY2wpOworICAgICAgICBrbm93bl9icmFja2V0X2V4cCA9IGZhbHNlOwogICAgICAgZWxz ZQogICAgICAgICB7CiAgICAgICAgICAgd2NoYXJfdCBmb2xkZWRbQ0FTRV9GT0xERURfQlVG U0laRSArIDFdOwpAQCAtMTI1NSw4ICsxMjUzLDcgQEAgbGV4ICh2b2lkKQogICAgICAiaWYg KGJhY2tzbGFzaCkgLi4uIi4gICovCiAgIGZvciAoaSA9IDA7IGkgPCAyOyArK2kpCiAgICAg ewotICAgICAgRkVUQ0hfV0MgKGN0b2ssIHdjdG9rLCBOVUxMKTsKLSAgICAgIGMgPSBjdG9r OworICAgICAgRkVUQ0hfV0MgKGMsIHdjdG9rLCBOVUxMKTsKIAogICAgICAgc3dpdGNoIChj KQogICAgICAgICB7CkBAIC0xNzg2LDcgKzE3ODMsNyBAQCBhdG9tICh2b2lkKQogICBpZiAo dG9rID09IFdDSEFSKQogICAgIHsKICAgICAgIGlmICh3Y3RvayA9PSBXRU9GKQotICAgICAg ICBhZGR0b2tfbWIgKGN0b2ssIDMpOworICAgICAgICBhZGR0b2sgKEJBQ0tSRUYpOwogICAg ICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgYWRkdG9rX3djICh3Y3Rvayk7CmRpZmYg LS1naXQgYS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2VhcmNoLmMKaW5kZXggNGIzYzc5 YS4uZmFkM2RhMSAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5jCisrKyBiL3NyYy9kZmFz ZWFyY2guYwpAQCAtMjEsNyArMjEsNiBAQAogI2luY2x1ZGUgPGNvbmZpZy5oPgogI2luY2x1 ZGUgImludHByb3BzLmgiCiAjaW5jbHVkZSAic2VhcmNoLmgiCi0jaW5jbHVkZSAiZGZhLmgi CiAKIC8qIEZvciAtdywgd2UgYWxzbyBjb25zaWRlciBfIHRvIGJlIHdvcmQgY29uc3RpdHVl bnQuICAqLwogI2RlZmluZSBXQ0hBUihDKSAoaXNhbG51bSAoQykgfHwgKEMpID09ICdfJykK QEAgLTI2NSw3ICsyNjQsNyBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90 IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKIAogICAgICAgICAgICAgICBpZiAoZXhhY3Rf a3dzZXRfbWF0Y2gpCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgaWYg KE1CX0NVUl9NQVggPT0gMSkKKyAgICAgICAgICAgICAgICAgIGlmIChNQl9DVVJfTUFYID09 IDEgfHwgdXNpbmdfdXRmOCAoKSkKICAgICAgICAgICAgICAgICAgICAgZ290byBzdWNjZXNz OwogICAgICAgICAgICAgICAgICAgaWYgKG1iX3N0YXJ0IDwgYmVnKQogICAgICAgICAgICAg ICAgICAgICBtYl9zdGFydCA9IGJlZzsKZGlmZiAtLWdpdCBhL3NyYy9ncmVwLmMgYi9zcmMv Z3JlcC5jCmluZGV4IGQ1OGVmMDMuLmE2NjFmYzAgMTAwNjQ0Ci0tLSBhL3NyYy9ncmVwLmMK KysrIGIvc3JjL2dyZXAuYwpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgImMtY3R5cGUu aCIKICNpbmNsdWRlICJjbG9zZW91dC5oIgogI2luY2x1ZGUgImNvbG9yaXplLmgiCi0jaW5j bHVkZSAiZGZhLmgiCiAjaW5jbHVkZSAiZXJyb3IuaCIKICNpbmNsdWRlICJleGNsdWRlLmgi CiAjaW5jbHVkZSAiZXhpdGZhaWwuaCIKQEAgLTE4ODgsNiArMTg4NywyMiBAQCBwYXJzZV9n cmVwX2NvbG9ycyAodm9pZCkKICAgICAgIHJldHVybjsKIH0KIAorLyogUmV0dXJuIHRydWUg aWYgUEFUIChvZiBsZW5ndGggUEFUTEVOKSBjb250YWlucyBhbiBlbmNvZGluZyBlcnJvci4g ICovCitzdGF0aWMgYm9vbAorY29udGFpbnNfZW5jb2RpbmdfZXJyb3IgKGNoYXIgY29uc3Qg KnBhdCwgc2l6ZV90IHBhdGxlbikKK3sKKyAgbWJzdGF0ZV90IG1icyA9IHsgMCB9OworICBz aXplX3QgaSwgY2hhcmxlbjsKKworICBmb3IgKGkgPSAwOyBpIDwgcGF0bGVuOyBpICs9IGNo YXJsZW4gKyAoY2hhcmxlbiA9PSAwKSkKKyAgICB7CisgICAgICBjaGFybGVuID0gbWJybGVu IChwYXQgKyBpLCBwYXRsZW4gLSBpLCAmbWJzKTsKKyAgICAgIGlmICgoc2l6ZV90KSAtMiA8 PSBjaGFybGVuKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIHJldHVybiBmYWxz ZTsKK30KKwogLyogQ2hhbmdlIGEgcGF0dGVybiBmb3IgZmdyZXAgaW50byBncmVwLiAgKi8K IHN0YXRpYyB2b2lkCiBmZ3JlcF90b19ncmVwX3BhdHRlcm4gKHNpemVfdCBsZW4sIGNoYXIg Y29uc3QgKmtleXMsCkBAIC0yMzE4LDkgKzIzMzMsMTEgQEAgbWFpbiAoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogICBlbHNlCiAgICAgdXNhZ2UgKEVYSVRfVFJPVUJMRSk7CiAKLSAgLyog SWYgY2FzZS1pbnNlbnNpdGl2ZSBmZ3JlcCBpbiBhIG11bHRpYnl0ZSBsb2NhbGUsIGltcHJv dmUKLSAgICAgcGVyZm9ybWFuY2UgYnkgdXNpbmcgZ3JlcCBpbnN0ZWFkLiAgKi8KLSAgaWYg KG1hdGNoX2ljYXNlICYmIGNvbXBpbGUgPT0gRmNvbXBpbGUgJiYgTUJfQ1VSX01BWCA+IDEp CisgIC8qIElmIGZncmVwIGluIGEgbXVsdGlieXRlIGxvY2FsZSwgdGhlbiB1c2UgZ3JlcCBp ZiBlaXRoZXIKKyAgICAgKDEpIGNhc2UgaXMgaWdub3JlZCAod2hlcmUgZ3JlcCBpcyB0eXBp Y2FsbHkgZmFzdGVyKSwgb3IKKyAgICAgKDIpIHRoZSBwYXR0ZXJuIGhhcyBhbiBlbmNvZGlu ZyBlcnJvciAod2hlcmUgZmdyZXAgbWlnaHQgbm90IHdvcmspLiAgKi8KKyAgaWYgKGNvbXBp bGUgPT0gRmNvbXBpbGUgJiYgTUJfQ1VSX01BWCA+IDEKKyAgICAgICYmIChtYXRjaF9pY2Fz ZSB8fCBjb250YWluc19lbmNvZGluZ19lcnJvciAoa2V5cywga2V5Y2MpKSkKICAgICB7CiAg ICAgICBzaXplX3QgbmV3X2tleWNjOwogICAgICAgY2hhciAqbmV3X2tleXM7CmRpZmYgLS1n aXQgYS9zcmMva3dzZWFyY2guYyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IDQ2NTY5ZTkuLjVj YmU1YzAgMTAwNjQ0Ci0tLSBhL3NyYy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3NlYXJjaC5j CkBAIC0xMjYsNyArMTI2LDcgQEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90 IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgIGlmIChvZmZzZXQgPT0gKHNpemVf dCkgLTEpCiAgICAgICAgIGdvdG8gZmFpbHVyZTsKICAgICAgIGxlbiA9IGt3c21hdGNoLnNp emVbMF0gLSBtYXRjaF9saW5lczsKLSAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiAhbWF0 Y2hfbGluZXMKKyAgICAgIGlmICghbWF0Y2hfbGluZXMgJiYgTUJfQ1VSX01BWCA+IDEgJiYg IXVzaW5nX3V0ZjggKCkKICAgICAgICAgICAmJiBpc19tYl9taWRkbGUgKCZtYl9zdGFydCwg YmVnICsgb2Zmc2V0LCBidWYgKyBzaXplLCBsZW4pKQogICAgICAgICB7CiAgICAgICAgICAg LyogVGhlIG1hdGNoIHdhcyBhIHBhcnQgb2YgbXVsdGlieXRlIGNoYXJhY3RlciwgYWR2YW5j ZSBhdCBsZWFzdApkaWZmIC0tZ2l0IGEvc3JjL3BjcmVzZWFyY2guYyBiL3NyYy9wY3Jlc2Vh cmNoLmMKaW5kZXggOWY2M2YzNy4uODIwZGQwMCAxMDA2NDQKLS0tIGEvc3JjL3BjcmVzZWFy Y2guYworKysgYi9zcmMvcGNyZXNlYXJjaC5jCkBAIC0yMCw3ICsyMCw2IEBACiAKICNpbmNs dWRlIDxjb25maWcuaD4KICNpbmNsdWRlICJzZWFyY2guaCIKLSNpbmNsdWRlICJkZmEuaCIK ICNpZiBIQVZFX1BDUkVfSAogIyBpbmNsdWRlIDxwY3JlLmg+CiAjZWxpZiBIQVZFX1BDUkVf UENSRV9ICmRpZmYgLS1naXQgYS9zcmMvc2VhcmNoLmggYi9zcmMvc2VhcmNoLmgKaW5kZXgg ODcxYjdkNS4uYmJmMWZjMiAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaC5oCisrKyBiL3NyYy9z ZWFyY2guaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgInN5c3RlbS5oIgogI2luY2x1 ZGUgImVycm9yLmgiCiAjaW5jbHVkZSAiZ3JlcC5oIgorI2luY2x1ZGUgImRmYS5oIgogI2lu Y2x1ZGUgImt3c2V0LmgiCiAjaW5jbHVkZSAieGFsbG9jLmgiCiAKZGlmZiAtLWdpdCBhL3Ny Yy9zZWFyY2h1dGlscy5jIGIvc3JjL3NlYXJjaHV0aWxzLmMKaW5kZXggNzYwMDViZi4uZWYy Y2M1YSAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaHV0aWxzLmMKKysrIGIvc3JjL3NlYXJjaHV0 aWxzLmMKQEAgLTE5LDcgKzE5LDYgQEAKICNpbmNsdWRlIDxjb25maWcuaD4KICNpbmNsdWRl IDxhc3NlcnQuaD4KICNpbmNsdWRlICJzZWFyY2guaCIKLSNpbmNsdWRlICJkZmEuaCIKIAog I2RlZmluZSBOQ0hBUiAoVUNIQVJfTUFYICsgMSkKIApAQCAtMjMwLDE2ICsyMjksNiBAQCBp c19tYl9taWRkbGUgKGNvbnN0IGNoYXIgKipnb29kLCBjb25zdCBjaGFyICpidWYsIGNvbnN0 IGNoYXIgKmVuZCwKICAgY29uc3QgY2hhciAqcCA9ICpnb29kOwogICBtYnN0YXRlX3QgY3Vy X3N0YXRlOwogCi0gIGlmICh1c2luZ191dGY4ICgpICYmIGJ1ZiAtIHAgPiBNQl9DVVJfTUFY KQotICAgIHsKLSAgICAgIGZvciAocCA9IGJ1ZjsgYnVmIC0gcCA+IE1CX0NVUl9NQVg7IHAt LSkKLSAgICAgICAgaWYgKG1iY2xlbl9jYWNoZVt0b191Y2hhciAoKnApXSAhPSAoc2l6ZV90 KSAtMSkKLSAgICAgICAgICBicmVhazsKLQotICAgICAgaWYgKGJ1ZiAtIHAgPT0gTUJfQ1VS X01BWCkKLSAgICAgICAgcCA9IGJ1ZjsKLSAgICB9Ci0KICAgbWVtc2V0ICgmY3VyX3N0YXRl LCAwLCBzaXplb2YgY3VyX3N0YXRlKTsKIAogICB3aGlsZSAocCA8IGJ1ZikKZGlmZiAtLWdp dCBhL3Rlc3RzL2ZncmVwLWluZmxvb3AgYi90ZXN0cy9mZ3JlcC1pbmZsb29wCmluZGV4IDA3 YTBjZTAuLjAxNWVjNzQgMTAwNzU1Ci0tLSBhL3Rlc3RzL2ZncmVwLWluZmxvb3AKKysrIGIv dGVzdHMvZmdyZXAtaW5mbG9vcApAQCAtOCwxNCArOCwyMCBAQCByZXF1aXJlX2NvbXBpbGVk X2luX01CX3N1cHBvcnQKIAogZW5jb2RlKCkgeyBlY2hvICIkMSIgfCB0ciBBQkMgJ1wzNTdc Mjc0XDI0MSc7IH0KIAorZW5jb2RlIEFCQyA+IGluIHx8IGZyYW1ld29ya19mYWlsdXJlXwog ZmFpbD0wCiAKIGZvciBMT0MgaW4gZW5fVVMuVVRGLTggJExPQ0FMRV9GUl9VVEY4OyBkbwog ICBvdXQ9b3V0MS0kTE9DCi0gIGVuY29kZSBBQkMgXAotICAgIHwgTENfQUxMPSRMT0MgdGlt ZW91dCAxMHMgZ3JlcCAtRiAiJChlbmNvZGUgQkMpIiA+ICRvdXQgMj4mMQotICB0ZXN0ICQ/ ID0gMSB8fCBmYWlsPTEKLSAgY29tcGFyZSAvZGV2L251bGwgJG91dCB8fCBmYWlsPTEKKyAg TENfQUxMPSRMT0MgdGltZW91dCAxMHMgZ3JlcCAtRiAiJChlbmNvZGUgQkMpIiBpbiA+ICRv dXQKKyAgc3RhdHVzPSQ/CisgIGlmIHRlc3QgJHN0YXR1cyAtZXEgMDsgdGhlbgorICAgIGNv bXBhcmUgaW4gJG91dAorICBlbGlmIHRlc3QgJHN0YXR1cyAtZXEgMTsgdGhlbgorICAgIGNv bXBhcmVfZGV2X251bGxfIC9kZXYvbnVsbCAkb3V0CisgIGVsc2UKKyAgICB0ZXN0ICRzdGF0 dXMgLWVxIDIKKyAgZmkgfHwgZmFpbD0xCiBkb25lCiAKIEV4aXQgJGZhaWwKZGlmZiAtLWdp dCBhL3Rlc3RzL2ludmFsaWQtbXVsdGlieXRlLWluZmxvb3AgYi90ZXN0cy9pbnZhbGlkLW11 bHRpYnl0ZS1pbmZsb29wCmluZGV4IGU5OGMxNzAuLmIyOGJjNTMgMTAwNzU1Ci0tLSBhL3Rl c3RzL2ludmFsaWQtbXVsdGlieXRlLWluZmxvb3AKKysrIGIvdGVzdHMvaW52YWxpZC1tdWx0 aWJ5dGUtaW5mbG9vcApAQCAtMTQsNyArMTQsMTQgQEAgZW5jb2RlIEFBID4gaW5wdXQKIGZh aWw9MAogCiAjIEJlZm9yZSAyLjE1LCB0aGlzIHdvdWxkIGluZmxvb3AuCi1MQ19BTEw9ZW5f VVMuVVRGLTggdGltZW91dCAzIGdyZXAgLUYgJChlbmNvZGUgQSkgaW5wdXQgPiBvdXQgfHwg ZmFpbD0xCi1jb21wYXJlIGlucHV0IG91dCB8fCBmYWlsPTEKK0xDX0FMTD1lbl9VUy5VVEYt OCB0aW1lb3V0IDMgZ3JlcCAtRiAkKGVuY29kZSBBKSBpbnB1dCA+IG91dAorc3RhdHVzPSQ/ CitpZiB0ZXN0ICRzdGF0dXMgLWVxIDA7IHRoZW4KKyAgY29tcGFyZSBpbnB1dCBvdXQKK2Vs aWYgdGVzdCAkc3RhdHVzIC1lcSAxOyB0aGVuCisgIGNvbXBhcmVfZGV2X251bGxfIC9kZXYv bnVsbCBvdXQKK2Vsc2UKKyAgdGVzdCAkc3RhdHVzIC1lcSAyCitmaSB8fCBmYWlsPTEKIAog RXhpdCAkZmFpbApkaWZmIC0tZ2l0IGEvdGVzdHMvcHJlZml4LW9mLW11bHRpYnl0ZSBiL3Rl c3RzL3ByZWZpeC1vZi1tdWx0aWJ5dGUKaW5kZXggMmFiOWE5OS4uMjIyOGEyMiAxMDA3NTUK LS0tIGEvdGVzdHMvcHJlZml4LW9mLW11bHRpYnl0ZQorKysgYi90ZXN0cy9wcmVmaXgtb2Yt bXVsdGlieXRlCkBAIC05LDIxICs5LDM1IEBAIGVuY29kZSgpIHsgZWNobyAiJDEiIHwgdHIg QUJDICdcMzU3XDI3NFwyNDEnOyB9CiAKIGVuY29kZSBBQkMgPmV4cDEKIGVuY29kZSBhQUJD ID5leHAyCitlbmNvZGUgQUJDQUJDID5leHAzCitlbmNvZGUgX19fX19fX19fX19fX19fX19f X19fQUJDQUJDX19fID5leHA0CiAKIGZhaWw9MAogCiBmb3IgTE9DIGluIGVuX1VTLlVURi04 ICRMT0NBTEVfRlJfVVRGODsgZG8KLSAgZm9yIHR5cGUgaW4gZGZhIGZncmVwIHJlZ2V4OyBk bwotICAgIGNhc2UgJHR5cGUgaW4KLSAgICAgIGRmYSkgb3B0PSBwcmVmaXg9IDs7Ci0gICAg ICBmZ3JlcCkgb3B0PS1GIHByZWZpeD0gOzsKLSAgICAgIHJlZ2V4KSBvcHQ9IHByZWZpeD0n XChcKVwxJyA7OwotICAgIGVzYWMKLSAgICBvdXQ9b3V0LSR0eXBlLSRMT0MKLSAgICBMQ19B TEw9JExPQyBncmVwICRvcHQgIiRwcmVmaXgkKGVuY29kZSBBKSIgZXhwMSA+JG91dCB8fCBm YWlsPTEKLSAgICBjb21wYXJlIGV4cDEgJG91dCB8fCBmYWlsPTEKLSAgICBMQ19BTEw9JExP QyBncmVwICRvcHQgIiRwcmVmaXgkKGVuY29kZSBhQSkiIGV4cDIgPiRvdXQgfHwgZmFpbD0x Ci0gICAgY29tcGFyZSBleHAyICRvdXQgfHwgZmFpbD0xCisgIGZvciBwYXQgaW4gQSBhQSBC Q0E7IGRvCisgICAgZm9yIGZpbGUgaW4gZXhwMSBleHAyIGV4cDMgZXhwNDsgZG8KKyAgICAg IGZvciB0eXBlIGluIHJlZ2V4IGRmYSBmZ3JlcDsgZG8KKyAgICAgICAgY2FzZSAkdHlwZSBp bgorICAgICAgICAgIGRmYSkgb3B0PSBwcmVmaXg9IDs7CisgICAgICAgICAgZmdyZXApIG9w dD0tRiBwcmVmaXg9IDs7CisgICAgICAgICAgcmVnZXgpIG9wdD0gcHJlZml4PSdcKFwpXDEn IDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgcGF0dGVybj0kcHJlZml4JChlbmNvZGUgJHBh dCkKKyAgICAgICAgb3V0PW91dC0kdHlwZS0kTE9DCisgICAgICAgIExDX0FMTD0kTE9DIGdy ZXAgJG9wdCAiJHBhdHRlcm4iICRmaWxlID4kb3V0CisgICAgICAgIHN0YXR1cz0kPworICAg ICAgICBlY2hvICRzdGF0dXMgPiRvdXQuc3RhdHVzCisgICAgICAgIGlmIHRlc3QgJHN0YXR1 cyAtZXEgMDsgdGhlbgorICAgICAgICAgIGNvbXBhcmUgJGZpbGUgJG91dAorICAgICAgICBl bGlmIHRlc3QgJHN0YXR1cyAtZXEgMTsgdGhlbgorICAgICAgICAgIGNvbXBhcmVfZGV2X251 bGxfIC9kZXYvbnVsbCAkb3V0CisgICAgICAgIGVsc2UKKyAgICAgICAgICB0ZXN0ICRzdGF0 dXMgLWVxIDIKKyAgICAgICAgZmkgfHwgZmFpbD0xCisgICAgICAgIGNvbXBhcmUgb3V0LXJl Z2V4LSRMT0Muc3RhdHVzICRvdXQuc3RhdHVzIHx8IGZhaWw9MQorICAgICAgZG9uZQorICAg IGRvbmUKICAgZG9uZQogZG9uZQogCi0tIAoxLjkuMAoK --------------070303060201060000080308-- From unknown Tue Jun 17 01:47:29 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 03 Jun 2014 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator