From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sat, 29 Mar 2014 01:30:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: 17136@debbugs.gnu.org X-Debbugs-Original-To: grep mailing list Received: via spool by submit@debbugs.gnu.org id=B.139605656921990 (code B ref -1); Sat, 29 Mar 2014 01:30:03 +0000 Received: (at submit) by debbugs.gnu.org; 29 Mar 2014 01:29:29 +0000 Received: from localhost ([127.0.0.1]:55250 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WTi5P-0005iY-5u for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:29 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60692) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WTi5J-0005iL-1j for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WTi5B-0007jn-Or for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:20 -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]:52558) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WTi5B-0007jj-L5 for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34173) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WTi55-0006ni-HK for bug-grep@gnu.org; Fri, 28 Mar 2014 21:29:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WTi4z-0007iu-E5 for bug-grep@gnu.org; Fri, 28 Mar 2014 21:29:07 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:43584) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WTi4y-0007io-U8 for bug-grep@gnu.org; Fri, 28 Mar 2014 21:29:01 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id C1F7839E801A for ; Fri, 28 Mar 2014 18:28:59 -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 oTlTvNpgf+ZP for ; Fri, 28 Mar 2014 18:28:58 -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 0E85939E8011 for ; Fri, 28 Mar 2014 18:28:58 -0700 (PDT) Message-ID: <533621D9.2010506@cs.ucla.edu> Date: Fri, 28 Mar 2014 18:28:57 -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 Content-Type: multipart/mixed; boundary="------------010202020402050004060400" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.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-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 (----) This is a multi-part message in MIME format. --------------010202020402050004060400 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Tags: patch I'm not going to install the attached memory-management changes yet, as they're fairly intrusive and I want to give them a chance to cool off. The benefits are minor but are there, e.g., this shrinks the overall grep text size by 1.2% on my platform (Fedora 20 x86-64). Mostly, though, I wanted the memory management to be clearer. --------------010202020402050004060400 Content-Type: text/plain; charset=UTF-8; name="0001-dfa-speed-up-memory-allocation-port-to-IRIX.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-dfa-speed-up-memory-allocation-port-to-IRIX.patch" RnJvbSA1NzM3OTQ2M2JkYTUwZWVkMDI0ZGMyMmZhYjgzMjVhY2YwMjMxNGRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDI4IE1hciAyMDE0IDE4OjEzOjMzIC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gZGZhOiBzcGVlZCB1cCBtZW1vcnkgYWxsb2NhdGlvbiwgcG9ydCB0byBJUklYCgpUaGlz IGNoYW5nZSB3YXMgcHJvbXB0ZWQgYnkgYSBwb3J0aW5nIHByb2JsZW0gb24gSVJJWDogaXQK ZGVmaW5lcyBpdHMgb3duIE1BTExPQyBtYWNybywgd2hpY2ggY2xhc2hlcyB3aXRoIG91cnMu Ck1vcmUgZ2VuZXJhbGx5LCB0aGUgTUFMTE9DIGV0Yy4gbWFjcm9zIGFyZSBjb25mdXNpbmcs IGFzIHRoZXkKbG9vayBsaWtlIGZ1bmN0aW9ucyBidXQgZG8gbm90IGhhdmUgQy1mdW5jdGlv biBzZW1hbnRpY3MuCkEgZnVuY3Rpb25hbCBzdHlsZSBtYWtlcyB0aGUgY29kZSBlYXNpZXIg dG8gcmVhZCwgYW5kIHRob3VnaAppdCBsZW5ndGhlbnMgc29tZSBjYWxscyBpdCBzaG9ydGVu cyB0aGUgY29kZSBvdmVyYWxsLgoqIHNyYy9kZmEuYyAoc3RydWN0IGRmYSk6IENvbWJpbmUg dHdvIHZlY3RvcnMgJ3JhbmdlX3N0cycgYW5kCidyYW5nZV9lbmRzJyBpbnRvIGEgc2luZ2xl IHZlY3RvciAncmFuZ2VzJy4gIFNpbWlsYXJseSwgY29tYmluZQpmb3VyIHZlY3RvcnMgJ3Ry YW5zJywgJ2ZhaWxzJywgJ3N1Y2Nlc3MnLCAnbmV3bGluZXMnIGludG8gYSBzaW5nbGUKdmVj dG9yICd0YWInLiAgVGhpcyBzaW1wbGlmaWVzIG1lbW9yeSBhbGxvY2F0aW9uLiAgUmVtb3Zl IG1lbWJlcgpubXVsdGlieXRlX3Byb3A7IG5vdCBuZWVkZWQsIGFzIGl0J3MgdGhlIHNhbWUg YXMgdGFsbG9jLgpSZW1vdmUgbWVtYmVyIHJlYWx0cmFucywgYXMgaXQncyBkZWR1Y2libGUg ZnJvbSB0cmFucy4KQWxsIHVzZXMgY2hhbmdlZC4KKFhOTUFMTE9DLCBYQ0FMTE9DLCBDQUxM T0MsIE1BTExPQywgUkVBTExPQywgUkVBTExPQ19JRl9ORUNFU1NBUlkpOgpSZW1vdmUuICBB bGwgdXNlcyBjaGFuZ2VkIHRvIHVzZSB4bm1hbGxvYyBldGMuCihjb3B5LCBtZXJnZSk6IERv bid0IHRyeSB0byBwcmVzZXJ2ZSBvbGQgZGF0YSB3aXRoIHJlYWxsb2MsIGFzIHdlJ2xsCmJl IG92ZXJ3cml0aW5nIGl0IGFueXdheS4gIFVzZSBmcmVlK21hbGxvYyBpc250ZWFkLgooZGZh c3RhdGUpOiBBbGxvY2F0ZSBncnBzIGFuZCBsYWJlbHMgb24gdGhlIHN0YWNrLCBhcyB0aGVp cgpzaXplIGlzIGtub3duIGF0IGNvbXBpbGUgdGltZS4KKHJlYWxsb2NfdHJhbnNfaWZfbmVj ZXNzYXJ5KTogTW92ZSBlYXJsaWVyLCB0byBhdm9pZCBmb3J3YXJkIGRlY2wuCihidWlsZF9z dGF0ZSk6IFVzZSBpdCwgdG8gYXZvaWQgZHVwbGljYXRlIGNvZGUuCihkZmFpbml0KTogT21p dCBuby1sb25nZXItbmVlZGVkIGluaXRpYWxpemF0aW9uLgotLS0KIHNyYy9kZmEuYyB8IDM4 NSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3MCBpbnNlcnRpb25zKCspLCAyMTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDRl ZDIxODkuLmU3MDJhYzUgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMK QEAgLTMyNCw4ICszMjQsMTEgQEAgc3RydWN0IG1iX2NoYXJfY2xhc3NlcwogICBzaXplX3Qg bmNoYXJzOwogICB3Y3R5cGVfdCAqY2hfY2xhc3NlczsgICAgICAgICAvKiBDaGFyYWN0ZXIg Y2xhc3Nlcy4gICovCiAgIHNpemVfdCBuY2hfY2xhc3NlczsKLSAgd2NoYXJfdCAqcmFuZ2Vf c3RzOyAgICAgICAgICAgLyogUmFuZ2UgY2hhcmFjdGVycyAoc3RhcnQgb2YgdGhlIHJhbmdl KS4gICovCi0gIHdjaGFyX3QgKnJhbmdlX2VuZHM7ICAgICAgICAgIC8qIFJhbmdlIGNoYXJh Y3RlcnMgKGVuZCBvZiB0aGUgcmFuZ2UpLiAgKi8KKyAgc3RydWN0CQkJLyogUmFuZ2UgY2hh cmFjdGVycy4gICovCisgIHsKKyAgICB3Y2hhcl90IGJlZzsJCS8qIFJhbmdlIHN0YXJ0LiAg Ki8KKyAgICB3Y2hhcl90IGVuZDsJCS8qIFJhbmdlIGVuZC4gICovCisgIH0gKnJhbmdlczsK ICAgc2l6ZV90IG5yYW5nZXM7CiAgIGNoYXIgKiplcXVpdnM7ICAgICAgICAgICAgICAgIC8q IEVxdWl2YWxlbmNlIGNsYXNzZXMuICAqLwogICBzaXplX3QgbmVxdWl2czsKQEAgLTM3Myw3 ICszNzYsNiBAQCBzdHJ1Y3QgZGZhCiAgICAgIG11bHRpYnl0ZV9wcm9wCiAgICAgID0gMyAg ICAgLCAxICAgICAgICAgICAgICAgLCAgMCAgICAgICAgICAgICAgLCAgMiAgICAgICAgICAg ICAgLCAzCiAgICAqLwotICBzaXplX3Qgbm11bHRpYnl0ZV9wcm9wOwogICBpbnQgKm11bHRp Ynl0ZV9wcm9wOwogCiAjaWYgTUJTX1NVUFBPUlQKQEAgLTQxMiwyNyArNDE0LDMwIEBAIHN0 cnVjdCBkZmEKIAogICAvKiBGaWVsZHMgZmlsbGVkIGJ5IGRmYWV4ZWMuICAqLwogICBzdGF0 ZV9udW0gdHJhbGxvYzsgICAgICAgICAgICAvKiBOdW1iZXIgb2YgdHJhbnNpdGlvbiB0YWJs ZXMgdGhhdCBoYXZlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Rz IHNvIGZhci4gICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Rz IHNvIGZhciwgbm90IGNvdW50aW5nIHRhYlstMV0uICAqLwogICBpbnQgdHJjb3VudDsgICAg ICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgdHJhbnNpdGlvbiB0YWJsZXMgdGhhdCBoYXZl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbGx5IGJlZW4gYnVp bHQuICAqLwotICBzdGF0ZV9udW0gKip0cmFuczsgICAgICAgICAgICAvKiBUcmFuc2l0aW9u IHRhYmxlcyBmb3Igc3RhdGVzIHRoYXQgY2FuCisgIC8qIFRhYmxlcyBpbmRleGVkIGJ5IHN0 YXRlLiAgKi8KKyAgc3RydWN0IGRmYXRhYgorICB7CisgICAgc3RhdGVfbnVtICp0cmFuczsg ICAgICAgICAgIC8qIFRyYW5zaXRpb24gdGFibGUgZm9yIHN0YXRlcyB0aGF0IGNhbgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXZlciBhY2NlcHQuICBJZiB0aGUg dHJhbnNpdGlvbnMgZm9yIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RhdGUgaGF2ZSBub3QgeWV0IGJlZW4gY29tcHV0ZWQsIG9yIHRoZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSBjb3VsZCBwb3NzaWJseSBhY2NlcHQsIGl0 cyBlbnRyeSBpbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHRh YmxlIGlzIE5VTEwuICAqLwotICBzdGF0ZV9udW0gKipyZWFsdHJhbnM7ICAgICAgICAvKiBU cmFucyBhbHdheXMgcG9pbnRzIHRvIHJlYWx0cmFucyArIDE7IHRoaXMKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaXMgc28gdHJhbnNbLTFdIGNhbiBjb250YWluIE5V TEwuICAqLwotICBzdGF0ZV9udW0gKipmYWlsczsgICAgICAgICAgICAvKiBUcmFuc2l0aW9u IHRhYmxlcyBhZnRlciBmYWlsaW5nIHRvIGFjY2VwdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGlzIHRhYmxlIGlzIE5VTEwuICB0YWJbLTFdLnRyYW5zIGlzIGFs d2F5cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLiAgKi8KKyAg ICBzdGF0ZV9udW0gKmZhaWxzOyAgICAgICAgICAgLyogVHJhbnNpdGlvbiB0YWJsZSBhZnRl ciBmYWlsaW5nIHRvIGFjY2VwdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbiBhIHN0YXRlIHRoYXQgcG90ZW50aWFsbHkgY291bGQgZG8gc28uICAqLwotICBpbnQg KnN1Y2Nlc3M7ICAgICAgICAgICAgICAgICAvKiBUYWJsZSBvZiBhY2NlcHRhbmNlIGNvbmRp dGlvbnMgdXNlZCBpbgorICAgIGludCBzdWNjZXNzOyAgICAgICAgICAgICAgICAvKiBBY2Nl cHRhbmNlIGNvbmRpdGlvbnMgdXNlZCBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZmFleGVjIGFuZCBjb21wdXRlZCBpbiBidWlsZF9zdGF0ZS4gICovCi0gIHN0 YXRlX251bSAqbmV3bGluZXM7ICAgICAgICAgIC8qIFRyYW5zaXRpb25zIG9uIG5ld2xpbmVz LiAgVGhlIGVudHJ5IGZvciBhCisgICAgc3RhdGVfbnVtIG5ld2xpbmVzOyAgICAgICAgIC8q IFRyYW5zaXRpb24gb24gbmV3bGluZXMuICBUaGUgZW50cnkgZm9yIGEKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmV3bGluZSBpbiBhbnkgdHJhbnNpdGlvbiB0YWJs ZSBpcyBhbHdheXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEgc28g d2UgY2FuIGNvdW50IGxpbmVzIHdpdGhvdXQgd2FzdGluZwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0b28gbWFueSBjeWNsZXMuICBUaGUgdHJhbnNpdGlvbiBmb3Ig YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdsaW5lIGlzIHN0b3Jl ZCBzZXBhcmF0ZWx5IGFuZCBoYW5kbGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzIGEgc3BlY2lhbCBjYXNlLiAgTmV3bGluZSBpcyBhbHNvIHVzZWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgYSBzZW50aW5lbCBhdCB0aGUgZW5k IG9mIHRoZSBidWZmZXIuICAqLworICB9ICp0YWI7CiAgIHN0cnVjdCBkZmFtdXN0ICptdXN0 czsgICAgICAgIC8qIExpc3Qgb2Ygc3RyaW5ncywgYXQgbGVhc3Qgb25lIG9mIHdoaWNoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGtub3duIHRvIGFwcGVhciBp biBhbnkgci5lLiBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGUgZGZhLiAgKi8KQEAgLTQ1MSw0MCArNDU2LDYgQEAgc3RydWN0IGRmYQogc3RhdGlj IHZvaWQgZGZhbXVzdCAoc3RydWN0IGRmYSAqZGZhKTsKIHN0YXRpYyB2b2lkIHJlZ2V4cCAo dm9pZCk7CiAKLS8qIFRoZXNlIHR3byBtYWNyb3MgYXJlIGlkZW50aWNhbCB0byB0aGUgb25l cyBpbiBnbnVsaWIncyB4YWxsb2MuaCwKLSAgIGV4Y2VwdCB0aGF0IHRoZXkgZG8gbm90IGNh c3QgdGhlIHJlc3VsdCB0byAiKHQgKikiLCBhbmQgdGh1cyBtYXkKLSAgIGJlIHVzZWQgdmlh IHR5cGUtZnJlZSBDQUxMT0MgYW5kIE1BTExPQyBtYWNyb3MuICAqLwotI3VuZGVmIFhOTUFM TE9DCi0jdW5kZWYgWENBTExPQwotCi0vKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIE4gZWxlbWVu dHMgb2YgdHlwZSBULCB3aXRoIGVycm9yIGNoZWNraW5nLiAgKi8KLS8qIGV4dGVybiB0ICpY Tk1BTExPQyAoc2l6ZV90IG4sIHR5cGVuYW1lIHQpOyAqLwotIyBkZWZpbmUgWE5NQUxMT0Mo biwgdCkgXAotICAgIChzaXplb2YgKHQpID09IDEgPyB4bWFsbG9jIChuKSA6IHhubWFsbG9j IChuLCBzaXplb2YgKHQpKSkKLQotLyogQWxsb2NhdGUgbWVtb3J5IGZvciBOIGVsZW1lbnRz IG9mIHR5cGUgVCwgd2l0aCBlcnJvciBjaGVja2luZywKLSAgIGFuZCB6ZXJvIGl0LiAgKi8K LS8qIGV4dGVybiB0ICpYQ0FMTE9DIChzaXplX3QgbiwgdHlwZW5hbWUgdCk7ICovCi0jIGRl ZmluZSBYQ0FMTE9DKG4sIHQpIFwKLSAgICAoc2l6ZW9mICh0KSA9PSAxID8geHphbGxvYyAo bikgOiB4Y2FsbG9jIChuLCBzaXplb2YgKHQpKSkKLQotI2RlZmluZSBDQUxMT0MocCwgbikg ZG8geyAocCkgPSBYQ0FMTE9DIChuLCAqKHApKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgTUFM TE9DKHAsIG4pIGRvIHsgKHApID0gWE5NQUxMT0MgKG4sICoocCkpOyB9IHdoaWxlICgwKQot I2RlZmluZSBSRUFMTE9DKHAsIG4pIGRvIHsocCkgPSB4bnJlYWxsb2MgKHAsIG4sIHNpemVv ZiAoKihwKSkpOyB9IHdoaWxlICgwKQotCi0vKiBSZWFsbG9jYXRlIGFuIGFycmF5IG9mIHR5 cGUgKlAgaWYgTl9BTExPQyBpcyA8PSBOX1JFUVVJUkVELiAgKi8KLSNkZWZpbmUgUkVBTExP Q19JRl9ORUNFU1NBUlkocCwgbl9hbGxvYywgbl9yZXF1aXJlZCkJCVwKLSAgZG8JCQkJCQkJ CVwKLSAgICB7CQkJCQkJCQlcCi0gICAgICBpZiAoKG5fYWxsb2MpIDw9IChuX3JlcXVpcmVk KSkJCQkJXAotICAgICAgICB7CQkJCQkJCVwKLSAgICAgICAgICBzaXplX3QgbmV3X25fYWxs b2MgPSAobl9yZXF1aXJlZCkgKyAhKHApOwkJXAotICAgICAgICAgIChwKSA9IHgybnJlYWxs b2MgKHAsICZuZXdfbl9hbGxvYywgc2l6ZW9mICgqKHApKSk7CVwKLSAgICAgICAgICAobl9h bGxvYykgPSBuZXdfbl9hbGxvYzsJCQkJXAotICAgICAgICB9CQkJCQkJCVwKLSAgICB9CQkJ CQkJCQlcCi0gIHdoaWxlIChmYWxzZSkKLQogc3RhdGljIHZvaWQKIGRmYW1iY2FjaGUgKHN0 cnVjdCBkZmEgKmQpCiB7CkBAIC02ODIsNyArNjUzLDkgQEAgY2hhcmNsYXNzX2luZGV4IChj aGFyY2xhc3MgY29uc3QgcykKICAgZm9yIChpID0gMDsgaSA8IGRmYS0+Y2luZGV4OyArK2kp CiAgICAgaWYgKGVxdWFsIChzLCBkZmEtPmNoYXJjbGFzc2VzW2ldKSkKICAgICAgIHJldHVy biBpOwotICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAoZGZhLT5jaGFyY2xhc3NlcywgZGZhLT5j YWxsb2MsIGRmYS0+Y2luZGV4ICsgMSk7CisgIGlmIChkZmEtPmNpbmRleCA9PSBkZmEtPmNh bGxvYykKKyAgICBkZmEtPmNoYXJjbGFzc2VzID0geDJucmVhbGxvYyAoZGZhLT5jaGFyY2xh c3NlcywgJmRmYS0+Y2FsbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YgKmRmYS0+Y2hhcmNsYXNzZXMpOwogICArK2RmYS0+Y2luZGV4OwogICBjb3B5 c2V0IChzLCBkZmEtPmNoYXJjbGFzc2VzW2ldKTsKICAgcmV0dXJuIGk7CkBAIC0xMDUwLDE2 ICsxMDIzLDE2IEBAIHBhcnNlX2JyYWNrZXRfZXhwICh2b2lkKQogCiAgIC8qIFdvcmsgYXJl YSB0byBidWlsZCBhIG1iX2NoYXJfY2xhc3Nlcy4gICovCiAgIHN0cnVjdCBtYl9jaGFyX2Ns YXNzZXMgKndvcmtfbWJjOwotICBzaXplX3QgY2hhcnNfYWwsIHJhbmdlX3N0c19hbCwgcmFu Z2VfZW5kc19hbCwgY2hfY2xhc3Nlc19hbCwKLSAgICBlcXVpdnNfYWwsIGNvbGxfZWxlbXNf YWw7CisgIHNpemVfdCBjaGFyc19hbCwgcmFuZ2VzX2FsLCBjaF9jbGFzc2VzX2FsLCBlcXVp dnNfYWwsIGNvbGxfZWxlbXNfYWw7CiAKICAgY2hhcnNfYWwgPSAwOwotICByYW5nZV9zdHNf YWwgPSByYW5nZV9lbmRzX2FsID0gMDsKKyAgcmFuZ2VzX2FsID0gMDsKICAgY2hfY2xhc3Nl c19hbCA9IGVxdWl2c19hbCA9IGNvbGxfZWxlbXNfYWwgPSAwOwogICBpZiAoTUJfQ1VSX01B WCA+IDEpCiAgICAgewotICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKGRmYS0+bWJjc2V0 cywgZGZhLT5tYmNzZXRzX2FsbG9jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRm YS0+bm1iY3NldHMgKyAxKTsKKyAgICAgIGlmIChkZmEtPm5tYmNzZXRzID09IGRmYS0+bWJj c2V0c19hbGxvYykKKyAgICAgICAgZGZhLT5tYmNzZXRzID0geDJucmVhbGxvYyAoZGZhLT5t YmNzZXRzLCAmZGZhLT5tYmNzZXRzX2FsbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKmRmYS0+bWJjc2V0cyk7CiAKICAgICAgIC8qIGRmYS0+bXVs dGlieXRlX3Byb3BbXSBob2xkIHRoZSBpbmRleCBvZiBkZmEtPm1iY3NldHMuCiAgICAgICAg ICBXZSB3aWxsIHVwZGF0ZSBkZmEtPm11bHRpYnl0ZV9wcm9wW10gaW4gYWRkdG9rLCBiZWNh dXNlIHdlIGNhbid0CkBAIC0xMTM2LDkgKzExMDksMTEgQEAgcGFyc2VfYnJhY2tldF9leHAg KHZvaWQpCiAgICAgICAgICAgICAgICAgICAgICAgLyogU3RvcmUgdGhlIGNoYXJhY3RlciBj bGFzcyBhcyB3Y3R5cGVfdC4gICovCiAgICAgICAgICAgICAgICAgICAgICAgd2N0eXBlX3Qg d3QgPSB3Y3R5cGUgKGNsYXNzKTsKIAotICAgICAgICAgICAgICAgICAgICAgIFJFQUxMT0Nf SUZfTkVDRVNTQVJZICh3b3JrX21iYy0+Y2hfY2xhc3NlcywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hfY2xhc3Nlc19hbCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPm5jaF9jbGFzc2Vz ICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtfbWJjLT5uY2hfY2xhc3Nl cyA9PSBjaF9jbGFzc2VzX2FsKQorICAgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMt PmNoX2NsYXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPSB4Mm5yZWFsbG9jICh3 b3JrX21iYy0+Y2hfY2xhc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmY2hfY2xhc3Nlc19hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5jaF9jbGFzc2VzKTsKICAgICAgICAgICAg ICAgICAgICAgICB3b3JrX21iYy0+Y2hfY2xhc3Nlc1t3b3JrX21iYy0+bmNoX2NsYXNzZXMr K10gPSB3dDsKICAgICAgICAgICAgICAgICAgICAgfQogCkBAIC0xMTkxLDIzICsxMTY2LDI0 IEBAIHBhcnNlX2JyYWNrZXRfZXhwICh2b2lkKQogICAgICAgICAgICAgICAgICAgICAgdG8g dGhlIHBhaXIgb2YgcmFuZ2VzLCBbbS16XSBbTS1aXS4gIEFsdGhvdWdoIHRoaXMgY29kZQog ICAgICAgICAgICAgICAgICAgICAgaXMgd3JvbmcgaW4gbXVsdGlwbGUgd2F5cywgaXQncyBu ZXZlciB1c2VkIGluIHByYWN0aWNlLgogICAgICAgICAgICAgICAgICAgICAgRklYTUU6IFJl bW92ZSB0aGlzIChhbmQgcmVsYXRlZCkgdW51c2VkIGNvZGUuICAqLwotICAgICAgICAgICAg ICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5yYW5nZV9zdHMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2Vfc3RzX2FsLCB3b3Jr X21iYy0+bnJhbmdlcyArIDEpOwotICAgICAgICAgICAgICAgICAgUkVBTExPQ19JRl9ORUNF U1NBUlkgKHdvcmtfbWJjLT5yYW5nZV9lbmRzLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJhbmdlX2VuZHNfYWwsIHdvcmtfbWJjLT5ucmFuZ2VzICsgMSk7 Ci0gICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2Vfc3RzW3dvcmtfbWJjLT5ucmFu Z2VzXSA9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2VfZm9sZCA/IHRvd2xvd2VyICh3Yykg OiAod2NoYXJfdCkgd2M7Ci0gICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2VfZW5k c1t3b3JrX21iYy0+bnJhbmdlcysrXSA9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2VfZm9s ZCA/IHRvd2xvd2VyICh3YzIpIDogKHdjaGFyX3QpIHdjMjsKKyAgICAgICAgICAgICAgICAg IGlmIChyYW5nZXNfYWwgLSB3b3JrX21iYy0+bnJhbmdlcyA8PSAxKQorICAgICAgICAgICAg ICAgICAgICB3b3JrX21iYy0+cmFuZ2VzID0geDJucmVhbGxvYyAod29ya19tYmMtPnJhbmdl cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZyYW5nZXNfYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5yYW5nZXMpOworICAgICAgICAgICAgICAg ICAgd29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uYmVnCisgICAgICAgICAg ICAgICAgICAgID0gY2FzZV9mb2xkID8gdG93bG93ZXIgKHdjKSA6IHdjOworICAgICAgICAg ICAgICAgICAgd29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uZW5kCisgICAg ICAgICAgICAgICAgICAgID0gY2FzZV9mb2xkID8gdG93bG93ZXIgKHdjMikgOiB3YzI7Cisg ICAgICAgICAgICAgICAgICB3b3JrX21iYy0+bnJhbmdlcysrOwogCiAgICAgICAgICAgICAg ICAgICBpZiAoY2FzZV9mb2xkICYmIChpc3dhbHBoYSAod2MpIHx8IGlzd2FscGhhICh3YzIp KSkKICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIFJFQUxM T0NfSUZfTkVDRVNTQVJZICh3b3JrX21iYy0+cmFuZ2Vfc3RzLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9zdHNfYWwsIHdvcmtfbWJjLT5u cmFuZ2VzICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPnJhbmdlX3N0 c1t3b3JrX21iYy0+bnJhbmdlc10gPSB0b3d1cHBlciAod2MpOwotICAgICAgICAgICAgICAg ICAgICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZICh3b3JrX21iYy0+cmFuZ2VfZW5kcywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfZW5kc19h bCwgd29ya19tYmMtPm5yYW5nZXMgKyAxKTsKLSAgICAgICAgICAgICAgICAgICAgICB3b3Jr X21iYy0+cmFuZ2VfZW5kc1t3b3JrX21iYy0+bnJhbmdlcysrXSA9IHRvd3VwcGVyICh3YzIp OworICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZXMgPSB4Mm5yZWFsbG9j ICh3b3JrX21iYy0+cmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcmFuZ2VzX2FsLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5yYW5n ZXMpOworICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZXNbd29ya19tYmMt Pm5yYW5nZXNdLmJlZyA9IHRvd3VwcGVyICh3Yyk7CisgICAgICAgICAgICAgICAgICAgICAg d29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uZW5kID0gdG93dXBwZXIgKHdj Mik7CisgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPm5yYW5nZXMrKzsKICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxz ZSBpZiAodXNpbmdfc2ltcGxlX2xvY2FsZSAoKSkKQEAgLTEyNTUsMTYgKzEyMzEsMjAgQEAg cGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiAgICAgICAgIHsKICAgICAgICAgICB3Y2hhcl90 IGZvbGRlZFtDQVNFX0ZPTERFRF9CVUZTSVpFXTsKICAgICAgICAgICBpbnQgaSwgbiA9IGNh c2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyAod2MsIGZvbGRlZCk7Ci0gICAgICAgICAgUkVBTExP Q19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5jaGFycywgY2hhcnNfYWwsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5uY2hhcnMgKyBuKTsKICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgICAgICAgaWYgKCFzZXRiaXRfd2Mg KGZvbGRlZFtpXSwgY2NsKSkKLSAgICAgICAgICAgICAgd29ya19tYmMtPmNoYXJzW3dvcmtf bWJjLT5uY2hhcnMrK10gPSBmb2xkZWRbaV07CisgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICBpZiAod29ya19tYmMtPm5jaGFycyA9PSBjaGFyc19hbCkKKyAgICAgICAgICAg ICAgICAgIHdvcmtfbWJjLT5jaGFycyA9IHgybnJlYWxsb2MgKHdvcmtfbWJjLT5jaGFycywg JmNoYXJzX2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mICp3b3JrX21iYy0+Y2hhcnMpOworICAgICAgICAgICAgICAgIHdvcmtf bWJjLT5jaGFyc1t3b3JrX21iYy0+bmNoYXJzKytdID0gZm9sZGVkW2ldOworICAgICAgICAg ICAgICB9CiAgICAgICAgIH0KICAgICAgIGlmICghc2V0Yml0X3djICh3YywgY2NsKSkKICAg ICAgICAgewotICAgICAgICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZICh3b3JrX21iYy0+Y2hh cnMsIGNoYXJzX2FsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrX21i Yy0+bmNoYXJzICsgMSk7CisgICAgICAgICAgaWYgKHdvcmtfbWJjLT5uY2hhcnMgPT0gY2hh cnNfYWwpCisgICAgICAgICAgICB3b3JrX21iYy0+Y2hhcnMgPSB4Mm5yZWFsbG9jICh3b3Jr X21iYy0+Y2hhcnMsICZjaGFyc19hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZiAqd29ya19tYmMtPmNoYXJzKTsKICAgICAgICAgICB3b3Jr X21iYy0+Y2hhcnNbd29ya19tYmMtPm5jaGFycysrXSA9IHdjOwogICAgICAgICB9CiAgICAg fQpAQCAtMTYyOSwxNSArMTYwOSwxNyBAQCBzdGF0aWMgc2l6ZV90IGRlcHRoOyAgICAgICAg ICAgIC8qIEN1cnJlbnQgZGVwdGggb2YgYSBoeXBvdGhldGljYWwgc3RhY2sKIHN0YXRpYyB2 b2lkCiBhZGR0b2tfbWIgKHRva2VuIHQsIGludCBtYnByb3ApCiB7Ci0gIGlmIChNQl9DVVJf TUFYID4gMSkKKyAgaWYgKGRmYS0+dGluZGV4ID09IGRmYS0+dGFsbG9jKQogICAgIHsKLSAg ICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZIChkZmEtPm11bHRpYnl0ZV9wcm9wLCBkZmEtPm5t dWx0aWJ5dGVfcHJvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZmEtPnRpbmRl eCArIDEpOwotICAgICAgZGZhLT5tdWx0aWJ5dGVfcHJvcFtkZmEtPnRpbmRleF0gPSBtYnBy b3A7CisgICAgICBkZmEtPnRva2VucyA9IHgybnJlYWxsb2MgKGRmYS0+dG9rZW5zLCAmZGZh LT50YWxsb2MsIHNpemVvZiAqZGZhLT50b2tlbnMpOworICAgICAgaWYgKE1CX0NVUl9NQVgg PiAxKQorICAgICAgICBkZmEtPm11bHRpYnl0ZV9wcm9wID0geG5yZWFsbG9jIChkZmEtPm11 bHRpYnl0ZV9wcm9wLCBkZmEtPnRhbGxvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mICpkZmEtPm11bHRpYnl0ZV9wcm9wKTsKICAgICB9Ci0K LSAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKGRmYS0+dG9rZW5zLCBkZmEtPnRhbGxvYywgZGZh LT50aW5kZXggKyAxKTsKLSAgZGZhLT50b2tlbnNbZGZhLT50aW5kZXgrK10gPSB0OworICBk ZmEtPnRva2Vuc1tkZmEtPnRpbmRleF0gPSB0OworICBpZiAoTUJfQ1VSX01BWCA+IDEpCisg ICAgZGZhLT5tdWx0aWJ5dGVfcHJvcFtkZmEtPnRpbmRleF0gPSBtYnByb3A7CisgIGRmYS0+ dGluZGV4Kys7CiAKICAgc3dpdGNoICh0KQogICAgIHsKQEAgLTIwMzgsMTkgKzIwMjAsMjQg QEAgZGZhcGFyc2UgKGNoYXIgY29uc3QgKnMsIHNpemVfdCBsZW4sIHN0cnVjdCBkZmEgKmQp CiAKIC8qIFNvbWUgcHJpbWl0aXZlcyBmb3Igb3BlcmF0aW5nIG9uIHNldHMgb2YgcG9zaXRp b25zLiAgKi8KIAotLyogQ29weSBvbmUgc2V0IHRvIGFub3RoZXI7IHRoZSBkZXN0aW5hdGlv biBtdXN0IGJlIGxhcmdlIGVub3VnaC4gICovCisvKiBDb3B5IG9uZSBzZXQgdG8gYW5vdGhl ci4gICovCiBzdGF0aWMgdm9pZAogY29weSAocG9zaXRpb25fc2V0IGNvbnN0ICpzcmMsIHBv c2l0aW9uX3NldCAqIGRzdCkKIHsKLSAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKGRzdC0+ZWxl bXMsIGRzdC0+YWxsb2MsIHNyYy0+bmVsZW0pOwotICBtZW1jcHkgKGRzdC0+ZWxlbXMsIHNy Yy0+ZWxlbXMsIHNpemVvZiAoZHN0LT5lbGVtc1swXSkgKiBzcmMtPm5lbGVtKTsKKyAgaWYg KGRzdC0+YWxsb2MgPCBzcmMtPm5lbGVtKQorICAgIHsKKyAgICAgIGZyZWUgKGRzdC0+ZWxl bXMpOworICAgICAgZHN0LT5hbGxvYyA9IHNyYy0+YWxsb2M7CisgICAgICBkc3QtPmVsZW1z ID0geG5tYWxsb2MgKGRzdC0+YWxsb2MsIHNpemVvZiAqZHN0LT5lbGVtcyk7CisgICAgfQor ICBtZW1jcHkgKGRzdC0+ZWxlbXMsIHNyYy0+ZWxlbXMsIHNyYy0+bmVsZW0gKiBzaXplb2Yg KmRzdC0+ZWxlbXMpOwogICBkc3QtPm5lbGVtID0gc3JjLT5uZWxlbTsKIH0KIAogc3RhdGlj IHZvaWQKIGFsbG9jX3Bvc2l0aW9uX3NldCAocG9zaXRpb25fc2V0ICogcywgc2l6ZV90IHNp emUpCiB7Ci0gIE1BTExPQyAocy0+ZWxlbXMsIHNpemUpOworICBzLT5lbGVtcyA9IHhubWFs bG9jIChzaXplLCBzaXplb2YgKnMtPmVsZW1zKTsKICAgcy0+YWxsb2MgPSBzaXplOwogICBz LT5uZWxlbSA9IDA7CiB9CkBAIC0yMDgwLDcgKzIwNjcsOCBAQCBpbnNlcnQgKHBvc2l0aW9u IHAsIHBvc2l0aW9uX3NldCAqIHMpCiAgICAgICByZXR1cm47CiAgICAgfQogCi0gIFJFQUxM T0NfSUZfTkVDRVNTQVJZIChzLT5lbGVtcywgcy0+YWxsb2MsIGNvdW50ICsgMSk7CisgIGlm IChjb3VudCA9PSBzLT5hbGxvYykKKyAgICBzLT5lbGVtcyA9IHgybnJlYWxsb2MgKHMtPmVs ZW1zLCAmcy0+YWxsb2MsIHNpemVvZiAqcy0+ZWxlbXMpOwogICBmb3IgKGkgPSBjb3VudDsg aSA+IGxvOyBpLS0pCiAgICAgcy0+ZWxlbXNbaV0gPSBzLT5lbGVtc1tpIC0gMV07CiAgIHMt PmVsZW1zW2xvXSA9IHA7CkBAIC0yMDk0LDcgKzIwODIsMTIgQEAgbWVyZ2UgKHBvc2l0aW9u X3NldCBjb25zdCAqczEsIHBvc2l0aW9uX3NldCBjb25zdCAqczIsIHBvc2l0aW9uX3NldCAq IG0pCiB7CiAgIHNpemVfdCBpID0gMCwgaiA9IDA7CiAKLSAgUkVBTExPQ19JRl9ORUNFU1NB UlkgKG0tPmVsZW1zLCBtLT5hbGxvYywgczEtPm5lbGVtICsgczItPm5lbGVtKTsKKyAgaWYg KG0tPmFsbG9jIDwgczEtPm5lbGVtICsgczItPm5lbGVtKQorICAgIHsKKyAgICAgIGZyZWUg KG0tPmVsZW1zKTsKKyAgICAgIG0tPmFsbG9jID0gczEtPmFsbG9jICsgczItPmFsbG9jOwor ICAgICAgbS0+ZWxlbXMgPSB4bm1hbGxvYyAobS0+YWxsb2MsIHNpemVvZiAqbS0+ZWxlbXMp OworICAgIH0KICAgbS0+bmVsZW0gPSAwOwogICB3aGlsZSAoaSA8IHMxLT5uZWxlbSAmJiBq IDwgczItPm5lbGVtKQogICAgIGlmIChzMS0+ZWxlbXNbaV0uaW5kZXggPiBzMi0+ZWxlbXNb al0uaW5kZXgpCkBAIC0yMTU1LDcgKzIxNDgsOCBAQCBzdGF0ZV9pbmRleCAoc3RydWN0IGRm YSAqZCwgcG9zaXRpb25fc2V0IGNvbnN0ICpzLCBpbnQgY29udGV4dCkKICAgICB9CiAKICAg LyogV2UnbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc3RhdGUuICAqLwotICBSRUFMTE9DX0lG X05FQ0VTU0FSWSAoZC0+c3RhdGVzLCBkLT5zYWxsb2MsIGQtPnNpbmRleCArIDEpOworICBp ZiAoZC0+c2luZGV4ID09IGQtPnNhbGxvYykKKyAgICBkLT5zdGF0ZXMgPSB4Mm5yZWFsbG9j IChkLT5zdGF0ZXMsICZkLT5zYWxsb2MsIHNpemVvZiAqZC0+c3RhdGVzKTsKICAgZC0+c3Rh dGVzW2ldLmhhc2ggPSBoYXNoOwogICBhbGxvY19wb3NpdGlvbl9zZXQgKCZkLT5zdGF0ZXNb aV0uZWxlbXMsIHMtPm5lbGVtKTsKICAgY29weSAocywgJmQtPnN0YXRlc1tpXS5lbGVtcyk7 CkBAIC0yMTk3LDEwICsyMTkxLDEwIEBAIHN0YXRpYyB2b2lkCiBlcHNjbG9zdXJlIChwb3Np dGlvbl9zZXQgKiBzLCBzdHJ1Y3QgZGZhIGNvbnN0ICpkKQogewogICBzaXplX3QgaSwgajsK LSAgY2hhciAqdmlzaXRlZDsgIC8qIEFycmF5IG9mIGJvb2xlYW5zLCBlbm91Z2ggdG8gdXNl IGNoYXIsIG5vdCBpbnQuICAqLwogICBwb3NpdGlvbiBwLCBvbGQ7CiAKLSAgQ0FMTE9DICh2 aXNpdGVkLCBkLT50aW5kZXgpOworICAvKiBBcnJheSBvZiBib29sZWFucywgbGFyZ2UgZW5v dWdoIHRvIHVzZSBjaGFyLCBub3QgaW50LiAgKi8KKyAgY2hhciAqdmlzaXRlZCA9IHh6YWxs b2MgKGQtPnRpbmRleCk7CiAKICAgZm9yIChpID0gMDsgaSA8IHMtPm5lbGVtOyArK2kpCiAg ICAgaWYgKGQtPnRva2Vuc1tzLT5lbGVtc1tpXS5pbmRleF0gPj0gTk9UQ0hBUgpAQCAtMjM4 MywxOSArMjM3NywxOSBAQCBkZmFhbmFseXplIChzdHJ1Y3QgZGZhICpkLCBpbnQgc2VhcmNo ZmxhZykKIAogICBkLT5zZWFyY2hmbGFnID0gc2VhcmNoZmxhZzsKIAotICBNQUxMT0MgKG51 bGxhYmxlLCBkLT5kZXB0aCk7CisgIG51bGxhYmxlID0geG5tYWxsb2MgKGQtPmRlcHRoLCBz aXplb2YgKm51bGxhYmxlKTsKICAgb19udWxsYWJsZSA9IG51bGxhYmxlOwotICBNQUxMT0Mg KG5maXJzdHBvcywgZC0+ZGVwdGgpOworICBuZmlyc3Rwb3MgPSB4bm1hbGxvYyAoZC0+ZGVw dGgsIHNpemVvZiAqbmZpcnN0cG9zKTsKICAgb19uZmlyc3QgPSBuZmlyc3Rwb3M7Ci0gIE1B TExPQyAoZmlyc3Rwb3MsIGQtPm5sZWF2ZXMpOworICBmaXJzdHBvcyA9IHhubWFsbG9jIChk LT5ubGVhdmVzLCBzaXplb2YgKmZpcnN0cG9zKTsKICAgb19maXJzdHBvcyA9IGZpcnN0cG9z LCBmaXJzdHBvcyArPSBkLT5ubGVhdmVzOwotICBNQUxMT0MgKG5sYXN0cG9zLCBkLT5kZXB0 aCk7CisgIG5sYXN0cG9zID0geG5tYWxsb2MgKGQtPmRlcHRoLCBzaXplb2YgKm5sYXN0cG9z KTsKICAgb19ubGFzdCA9IG5sYXN0cG9zOwotICBNQUxMT0MgKGxhc3Rwb3MsIGQtPm5sZWF2 ZXMpOworICBsYXN0cG9zID0geG5tYWxsb2MgKGQtPm5sZWF2ZXMsIHNpemVvZiAqbGFzdHBv cyk7CiAgIG9fbGFzdHBvcyA9IGxhc3Rwb3MsIGxhc3Rwb3MgKz0gZC0+bmxlYXZlczsKICAg YWxsb2NfcG9zaXRpb25fc2V0ICgmbWVyZ2VkLCBkLT5ubGVhdmVzKTsKIAotICBDQUxMT0Mg KGQtPmZvbGxvd3MsIGQtPnRpbmRleCk7CisgIGQtPmZvbGxvd3MgPSB4Y2FsbG9jIChkLT50 aW5kZXgsIHNpemVvZiAqZC0+Zm9sbG93cyk7CiAKICAgZm9yIChpID0gMDsgaSA8IGQtPnRp bmRleDsgKytpKQogICAgIHsKQEAgLTI1NTYsNyArMjU1MCw3IEBAIGRmYWFuYWx5emUgKHN0 cnVjdCBkZmEgKmQsIGludCBzZWFyY2hmbGFnKQogICAvKiBCdWlsZCB0aGUgaW5pdGlhbCBz dGF0ZS4gICovCiAgIGQtPnNhbGxvYyA9IDE7CiAgIGQtPnNpbmRleCA9IDA7Ci0gIE1BTExP QyAoZC0+c3RhdGVzLCBkLT5zYWxsb2MpOworICBkLT5zdGF0ZXMgPSB4bm1hbGxvYyAoZC0+ c2FsbG9jLCBzaXplb2YgKmQtPnN0YXRlcyk7CiAKICAgc2VwYXJhdGVfY29udGV4dHMgPSBz dGF0ZV9zZXBhcmF0ZV9jb250ZXh0cyAoJm1lcmdlZCk7CiAgIHN0YXRlX2luZGV4IChkLCAm bWVyZ2VkLApAQCAtMjYwNSw4ICsyNTk5LDggQEAgZGZhYW5hbHl6ZSAoc3RydWN0IGRmYSAq ZCwgaW50IHNlYXJjaGZsYWcpCiB2b2lkCiBkZmFzdGF0ZSAoc3RhdGVfbnVtIHMsIHN0cnVj dCBkZmEgKmQsIHN0YXRlX251bSB0cmFuc1tdKQogewotICBsZWFmX3NldCAqZ3JwczsgICAg ICAgICAgICAgICAvKiBBcyBtYW55IGFzIHdpbGwgZXZlciBiZSBuZWVkZWQuICAqLwotICBj aGFyY2xhc3MgKmxhYmVsczsgICAgICAgICAgICAvKiBMYWJlbHMgY29ycmVzcG9uZGluZyB0 byB0aGUgZ3JvdXBzLiAgKi8KKyAgbGVhZl9zZXQgZ3Jwc1tOT1RDSEFSXTsgICAgICAgLyog QXMgbWFueSBhcyB3aWxsIGV2ZXIgYmUgbmVlZGVkLiAgKi8KKyAgY2hhcmNsYXNzIGxhYmVs c1tOT1RDSEFSXTsgICAgLyogTGFiZWxzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdyb3Vwcy4g ICovCiAgIHNpemVfdCBuZ3JwcyA9IDA7ICAgICAgICAgICAgIC8qIE51bWJlciBvZiBncm91 cHMgYWN0dWFsbHkgdXNlZC4gICovCiAgIHBvc2l0aW9uIHBvczsgICAgICAgICAgICAgICAg IC8qIEN1cnJlbnQgcG9zaXRpb24gYmVpbmcgY29uc2lkZXJlZC4gICovCiAgIGNoYXJjbGFz cyBtYXRjaGVzOyAgICAgICAgICAgIC8qIFNldCBvZiBtYXRjaGluZyBjaGFyYWN0ZXJzLiAg Ki8KQEAgLTI2MjUsOSArMjYxOSw2IEBAIGRmYXN0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0 IGRmYSAqZCwgc3RhdGVfbnVtIHRyYW5zW10pCiAgIGludCBuZXh0X2lzbnRfMXN0X2J5dGUg PSAwOyAgIC8qIEZsYWcgaWYgd2UgY2FuJ3QgYWRkIHN0YXRlMC4gICovCiAgIHNpemVfdCBp LCBqLCBrOwogCi0gIE1BTExPQyAoZ3JwcywgTk9UQ0hBUik7Ci0gIE1BTExPQyAobGFiZWxz LCBOT1RDSEFSKTsKLQogICB6ZXJvc2V0IChtYXRjaGVzKTsKIAogICBmb3IgKGkgPSAwOyBp IDwgZC0+c3RhdGVzW3NdLmVsZW1zLm5lbGVtOyArK2kpCkBAIC0yNzEwLDcgKzI3MDEsOCBA QCBkZmFzdGF0ZSAoc3RhdGVfbnVtIHMsIHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSB0cmFu c1tdKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBjb3B5c2V0IChsZWZ0b3ZlcnMs IGxhYmVsc1tuZ3Jwc10pOwogICAgICAgICAgICAgICBjb3B5c2V0IChpbnRlcnNlY3QsIGxh YmVsc1tqXSk7Ci0gICAgICAgICAgICAgIE1BTExPQyAoZ3Jwc1tuZ3Jwc10uZWxlbXMsIGQt Pm5sZWF2ZXMpOworICAgICAgICAgICAgICBncnBzW25ncnBzXS5lbGVtcyA9IHhubWFsbG9j IChkLT5ubGVhdmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YgKmdycHNbbmdycHNdLmVsZW1zKTsKICAgICAgICAgICAgICAgbWVtY3B5 IChncnBzW25ncnBzXS5lbGVtcywgZ3Jwc1tqXS5lbGVtcywKICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YgKGdycHNbal0uZWxlbXNbMF0pICogZ3Jwc1tqXS5uZWxlbSk7CiAgICAg ICAgICAgICAgIGdycHNbbmdycHNdLm5lbGVtID0gZ3Jwc1tqXS5uZWxlbTsKQEAgLTI3MzMs NyArMjcyNSw3IEBAIGRmYXN0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAqZCwgc3Rh dGVfbnVtIHRyYW5zW10pCiAgICAgICAgIHsKICAgICAgICAgICBjb3B5c2V0IChtYXRjaGVz LCBsYWJlbHNbbmdycHNdKTsKICAgICAgICAgICB6ZXJvc2V0IChtYXRjaGVzKTsKLSAgICAg ICAgICBNQUxMT0MgKGdycHNbbmdycHNdLmVsZW1zLCBkLT5ubGVhdmVzKTsKKyAgICAgICAg ICBncnBzW25ncnBzXS5lbGVtcyA9IHhubWFsbG9jIChkLT5ubGVhdmVzLCBzaXplb2YgKmdy cHNbbmdycHNdLmVsZW1zKTsKICAgICAgICAgICBncnBzW25ncnBzXS5uZWxlbSA9IDE7CiAg ICAgICAgICAgZ3Jwc1tuZ3Jwc10uZWxlbXNbMF0gPSBwb3MuaW5kZXg7CiAgICAgICAgICAg KytuZ3JwczsKQEAgLTI4NTUsMjIgKzI4NDcsNDAgQEAgZGZhc3RhdGUgKHN0YXRlX251bSBz LCBzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gdHJhbnNbXSkKICAgICBmcmVlIChncnBzW2ld LmVsZW1zKTsKICAgZnJlZSAoZm9sbG93cy5lbGVtcyk7CiAgIGZyZWUgKHRtcC5lbGVtcyk7 Ci0gIGZyZWUgKGdycHMpOwotICBmcmVlIChsYWJlbHMpOworfQorCitzdGF0aWMgdm9pZAor cmVhbGxvY190cmFuc19pZl9uZWNlc3NhcnkgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBu ZXdfc3RhdGUpCit7CisgIC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSB0cmFucyBhbmQgZmFpbCBh cnJheXMgYXJlIGFsbG9jYXRlZCBsYXJnZSBlbm91Z2gKKyAgICAgdG8gaG9sZCBhIHBvaW50 ZXIgZm9yIHRoZSBuZXcgc3RhdGUuICAqLworICBpZiAoZC0+dHJhbGxvYyA8PSBuZXdfc3Rh dGUpCisgICAgeworICAgICAgc3RydWN0IGRmYXRhYiAqdGFiXzEgPSBkLT50YWIgLSAxOwor ICAgICAgc3RhdGVfbnVtIG9sZGFsbG9jID0gZC0+dHJhbGxvYyArIDE7CisgICAgICBzdGF0 ZV9udW0gbmV3YWxsb2M7CisKKyAgICAgIGQtPnRyYWxsb2MgPSBuZXdfc3RhdGUgKyAxOwor ICAgICAgdGFiXzEgPSB4Mm5yZWFsbG9jICh0YWJfMSwgJmQtPnRyYWxsb2MsIHNpemVvZiAq dGFiXzEpOworICAgICAgbmV3YWxsb2MgPSBkLT50cmFsbG9jLS07CisgICAgICBkLT50YWIg PSB0YWJfMSArIDE7CisgICAgICBmb3IgKDsgb2xkYWxsb2MgPCBuZXdhbGxvYzsgb2xkYWxs b2MrKykKKyAgICAgICAgdGFiXzFbb2xkYWxsb2NdLnRyYW5zID0gdGFiXzFbb2xkYWxsb2Nd LmZhaWxzID0gTlVMTDsKKyAgICB9CiB9CiAKIC8qIFNvbWUgcm91dGluZXMgZm9yIG1hbmlw dWxhdGluZyBhIGNvbXBpbGVkIGRmYSdzIHRyYW5zaXRpb24gdGFibGVzLgogICAgRWFjaCBz dGF0ZSBtYXkgb3IgbWF5IG5vdCBoYXZlIGEgdHJhbnNpdGlvbiB0YWJsZTsgaWYgaXQgZG9l cywgYW5kIGl0Ci0gICBpcyBhIG5vbi1hY2NlcHRpbmcgc3RhdGUsIHRoZW4gZC0+dHJhbnNb c3RhdGVdIHBvaW50cyB0byBpdHMgdGFibGUuCi0gICBJZiBpdCBpcyBhbiBhY2NlcHRpbmcg c3RhdGUgdGhlbiBkLT5mYWlsc1tzdGF0ZV0gcG9pbnRzIHRvIGl0cyB0YWJsZS4KLSAgIElm IGl0IGhhcyBubyB0YWJsZSBhdCBhbGwsIHRoZW4gZC0+dHJhbnNbc3RhdGVdIGlzIE5VTEwu CisgICBpcyBhIG5vbi1hY2NlcHRpbmcgc3RhdGUsIHRoZW4gZC0+dGFiW3N0YXRlXS50cmFu cyBwb2ludHMgdG8gaXRzIHRhYmxlLgorICAgSWYgaXQgaXMgYW4gYWNjZXB0aW5nIHN0YXRl IHRoZW4gZC0+dGFiW3N0YXRlXS5mYWlscyBwb2ludHMgdG8gaXRzIHRhYmxlLgorICAgSWYg aXQgaGFzIG5vIHRhYmxlIGF0IGFsbCwgdGhlbiBkLT50YWJbc3RhdGVdLnRyYW5zIGlzIE5V TEwuCiAgICBUT0RPOiBJbXByb3ZlIHRoaXMgY29tbWVudCwgZ2V0IHJpZCBvZiB0aGUgdW5u ZWNlc3NhcnkgcmVkdW5kYW5jeS4gICovCiAKIHN0YXRpYyB2b2lkCiBidWlsZF9zdGF0ZSAo c3RhdGVfbnVtIHMsIHN0cnVjdCBkZmEgKmQpCiB7CiAgIHN0YXRlX251bSAqdHJhbnM7ICAg ICAgICAgICAgIC8qIFRoZSBuZXcgdHJhbnNpdGlvbiB0YWJsZS4gICovCi0gIHN0YXRlX251 bSBpOworICBzdGF0ZV9udW0gaSwgbWF4c3RhdGU7CiAKICAgLyogU2V0IGFuIHVwcGVyIGxp bWl0IG9uIHRoZSBudW1iZXIgb2YgdHJhbnNpdGlvbiB0YWJsZXMgdGhhdCB3aWxsIGV2ZXIK ICAgICAgZXhpc3QgYXQgb25jZS4gIDEwMjQgaXMgYXJiaXRyYXJ5LiAgVGhlIGlkZWEgaXMg dGhhdCB0aGUgZnJlcXVlbnRseQpAQCAtMjg4MCw5ICsyODkwLDkgQEAgYnVpbGRfc3RhdGUg KHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkKQogICAgIHsKICAgICAgIGZvciAoaSA9IDA7 IGkgPCBkLT50cmFsbG9jOyArK2kpCiAgICAgICAgIHsKLSAgICAgICAgICBmcmVlIChkLT50 cmFuc1tpXSk7Ci0gICAgICAgICAgZnJlZSAoZC0+ZmFpbHNbaV0pOwotICAgICAgICAgIGQt PnRyYW5zW2ldID0gZC0+ZmFpbHNbaV0gPSBOVUxMOworICAgICAgICAgIGZyZWUgKGQtPnRh YltpXS50cmFucyk7CisgICAgICAgICAgZnJlZSAoZC0+dGFiW2ldLmZhaWxzKTsKKyAgICAg ICAgICBkLT50YWJbaV0udHJhbnMgPSBkLT50YWJbaV0uZmFpbHMgPSBOVUxMOwogICAgICAg ICB9CiAgICAgICBkLT50cmNvdW50ID0gMDsKICAgICB9CkBAIC0yODkwLDYwICsyOTAwLDQ5 IEBAIGJ1aWxkX3N0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAqZCkKICAgKytkLT50 cmNvdW50OwogCiAgIC8qIFNldCB1cCB0aGUgc3VjY2VzcyBiaXRzIGZvciB0aGlzIHN0YXRl LiAgKi8KLSAgZC0+c3VjY2Vzc1tzXSA9IDA7CisgIGQtPnRhYltzXS5zdWNjZXNzID0gMDsK ICAgaWYgKEFDQ0VQVFNfSU5fQ09OVEVYVCAoZC0+c3RhdGVzW3NdLmNvbnRleHQsIENUWF9O RVdMSU5FLCBzLCAqZCkpCi0gICAgZC0+c3VjY2Vzc1tzXSB8PSBDVFhfTkVXTElORTsKKyAg ICBkLT50YWJbc10uc3VjY2VzcyB8PSBDVFhfTkVXTElORTsKICAgaWYgKEFDQ0VQVFNfSU5f Q09OVEVYVCAoZC0+c3RhdGVzW3NdLmNvbnRleHQsIENUWF9MRVRURVIsIHMsICpkKSkKLSAg ICBkLT5zdWNjZXNzW3NdIHw9IENUWF9MRVRURVI7CisgICAgZC0+dGFiW3NdLnN1Y2Nlc3Mg fD0gQ1RYX0xFVFRFUjsKICAgaWYgKEFDQ0VQVFNfSU5fQ09OVEVYVCAoZC0+c3RhdGVzW3Nd LmNvbnRleHQsIENUWF9OT05FLCBzLCAqZCkpCi0gICAgZC0+c3VjY2Vzc1tzXSB8PSBDVFhf Tk9ORTsKKyAgICBkLT50YWJbc10uc3VjY2VzcyB8PSBDVFhfTk9ORTsKIAotICBNQUxMT0Mg KHRyYW5zLCBOT1RDSEFSKTsKKyAgdHJhbnMgPSB4bWFsbG9jIChOT1RDSEFSICogc2l6ZW9m ICp0cmFucyk7CiAgIGRmYXN0YXRlIChzLCBkLCB0cmFucyk7CiAKICAgLyogTm93IGdvIHRo cm91Z2ggdGhlIG5ldyB0cmFuc2l0aW9uIHRhYmxlLCBhbmQgbWFrZSBzdXJlIHRoYXQgdGhl IHRyYW5zCiAgICAgIGFuZCBmYWlsIGFycmF5cyBhcmUgYWxsb2NhdGVkIGxhcmdlIGVub3Vn aCB0byBob2xkIGEgcG9pbnRlciBmb3IgdGhlCiAgICAgIGxhcmdlc3Qgc3RhdGUgbWVudGlv bmVkIGluIHRoZSB0YWJsZS4gICovCisgIG1heHN0YXRlID0gLTE7CiAgIGZvciAoaSA9IDA7 IGkgPCBOT1RDSEFSOyArK2kpCi0gICAgaWYgKHRyYW5zW2ldID49IGQtPnRyYWxsb2MpCi0g ICAgICB7Ci0gICAgICAgIHN0YXRlX251bSBvbGRhbGxvYyA9IGQtPnRyYWxsb2M7Ci0KLSAg ICAgICAgd2hpbGUgKHRyYW5zW2ldID49IGQtPnRyYWxsb2MpCi0gICAgICAgICAgZC0+dHJh bGxvYyAqPSAyOwotICAgICAgICBSRUFMTE9DIChkLT5yZWFsdHJhbnMsIGQtPnRyYWxsb2Mg KyAxKTsKLSAgICAgICAgZC0+dHJhbnMgPSBkLT5yZWFsdHJhbnMgKyAxOwotICAgICAgICBS RUFMTE9DIChkLT5mYWlscywgZC0+dHJhbGxvYyk7Ci0gICAgICAgIFJFQUxMT0MgKGQtPnN1 Y2Nlc3MsIGQtPnRyYWxsb2MpOwotICAgICAgICBSRUFMTE9DIChkLT5uZXdsaW5lcywgZC0+ dHJhbGxvYyk7Ci0gICAgICAgIHdoaWxlIChvbGRhbGxvYyA8IGQtPnRyYWxsb2MpCi0gICAg ICAgICAgewotICAgICAgICAgICAgZC0+dHJhbnNbb2xkYWxsb2NdID0gTlVMTDsKLSAgICAg ICAgICAgIGQtPmZhaWxzW29sZGFsbG9jKytdID0gTlVMTDsKLSAgICAgICAgICB9Ci0gICAg ICB9CisgICAgaWYgKG1heHN0YXRlIDwgdHJhbnNbaV0pCisgICAgICBtYXhzdGF0ZSA9IHRy YW5zW2ldOworICByZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSAoZCwgbWF4c3RhdGUpOwog CiAgIC8qIEtlZXAgdGhlIG5ld2xpbmUgdHJhbnNpdGlvbiBpbiBhIHNwZWNpYWwgcGxhY2Ug c28gd2UgY2FuIHVzZSBpdCBhcwogICAgICBhIHNlbnRpbmVsLiAgKi8KLSAgZC0+bmV3bGlu ZXNbc10gPSB0cmFuc1tlb2xieXRlXTsKKyAgZC0+dGFiW3NdLm5ld2xpbmVzID0gdHJhbnNb ZW9sYnl0ZV07CiAgIHRyYW5zW2VvbGJ5dGVdID0gLTE7CiAKICAgaWYgKEFDQ0VQVElORyAo cywgKmQpKQotICAgIGQtPmZhaWxzW3NdID0gdHJhbnM7CisgICAgZC0+dGFiW3NdLmZhaWxz ID0gdHJhbnM7CiAgIGVsc2UKLSAgICBkLT50cmFuc1tzXSA9IHRyYW5zOworICAgIGQtPnRh YltzXS50cmFucyA9IHRyYW5zOwogfQogCiBzdGF0aWMgdm9pZAogYnVpbGRfc3RhdGVfemVy byAoc3RydWN0IGRmYSAqZCkKIHsKLSAgZC0+dHJhbGxvYyA9IDE7CisgIHN0cnVjdCBkZmF0 YWIgKnRhYl8xOworICBzaXplX3QgaSwgbmV3YWxsb2M7CiAgIGQtPnRyY291bnQgPSAwOwot ICBDQUxMT0MgKGQtPnJlYWx0cmFucywgZC0+dHJhbGxvYyArIDEpOwotICBkLT50cmFucyA9 IGQtPnJlYWx0cmFucyArIDE7Ci0gIENBTExPQyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2MpOwot ICBNQUxMT0MgKGQtPnN1Y2Nlc3MsIGQtPnRyYWxsb2MpOwotICBNQUxMT0MgKGQtPm5ld2xp bmVzLCBkLT50cmFsbG9jKTsKKyAgZC0+dHJhbGxvYyA9IDA7CisgIHRhYl8xID0geDJucmVh bGxvYyAoTlVMTCwgJmQtPnRyYWxsb2MsIHNpemVvZiAqdGFiXzEpOworICBuZXdhbGxvYyA9 IGQtPnRyYWxsb2MtLTsKKyAgZC0+dGFiID0gdGFiXzEgKyAxOworICBmb3IgKGkgPSAwOyBp IDwgbmV3YWxsb2M7IGkrKykKKyAgICB0YWJfMVtpXS50cmFucyA9IHRhYl8xW2ldLmZhaWxz ID0gTlVMTDsKICAgYnVpbGRfc3RhdGUgKDAsIGQpOwogfQogCkBAIC0yOTcyLDMwICsyOTcx LDYgQEAgYnVpbGRfc3RhdGVfemVybyAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgfQkJCQkJ CVwKICAgICB9CiAKLXN0YXRpYyB2b2lkCi1yZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSAo c3RydWN0IGRmYSAqZCwgc3RhdGVfbnVtIG5ld19zdGF0ZSkKLXsKLSAgLyogTWFrZSBzdXJl IHRoYXQgdGhlIHRyYW5zIGFuZCBmYWlsIGFycmF5cyBhcmUgYWxsb2NhdGVkIGxhcmdlIGVu b3VnaAotICAgICB0byBob2xkIGEgcG9pbnRlciBmb3IgdGhlIG5ldyBzdGF0ZS4gICovCi0g IGlmIChuZXdfc3RhdGUgPj0gZC0+dHJhbGxvYykKLSAgICB7Ci0gICAgICBzdGF0ZV9udW0g b2xkYWxsb2MgPSBkLT50cmFsbG9jOwotCi0gICAgICB3aGlsZSAobmV3X3N0YXRlID49IGQt PnRyYWxsb2MpCi0gICAgICAgIGQtPnRyYWxsb2MgKj0gMjsKLSAgICAgIFJFQUxMT0MgKGQt PnJlYWx0cmFucywgZC0+dHJhbGxvYyArIDEpOwotICAgICAgZC0+dHJhbnMgPSBkLT5yZWFs dHJhbnMgKyAxOwotICAgICAgUkVBTExPQyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2MpOwotICAg ICAgUkVBTExPQyAoZC0+c3VjY2VzcywgZC0+dHJhbGxvYyk7Ci0gICAgICBSRUFMTE9DIChk LT5uZXdsaW5lcywgZC0+dHJhbGxvYyk7Ci0gICAgICB3aGlsZSAob2xkYWxsb2MgPCBkLT50 cmFsbG9jKQotICAgICAgICB7Ci0gICAgICAgICAgZC0+dHJhbnNbb2xkYWxsb2NdID0gTlVM TDsKLSAgICAgICAgICBkLT5mYWlsc1tvbGRhbGxvYysrXSA9IE5VTEw7Ci0gICAgICAgIH0K LSAgICB9Ci19Ci0KIC8qIFJldHVybiB2YWx1ZXMgb2YgdHJhbnNpdF9zdGF0ZV9zaW5nbGVi eXRlLCBhbmQKICAgIHRyYW5zaXRfc3RhdGVfY29uc3VtZV8xY2hhci4gICovCiB0eXBlZGVm IGVudW0KQEAgLTMwMTMsMTQgKzI5ODgsMTQgQEAgc3RhdGljIHN0YXR1c190cmFuc2l0X3N0 YXRlCiB0cmFuc2l0X3N0YXRlX3NpbmdsZWJ5dGUgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251 bSBzLCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0ZV9udW0gKiBuZXh0X3N0YXRlKQogewotICBzdGF0ZV9udW0gKnQ7CiAgIHN0YXRl X251bSB3b3JrcyA9IHM7CiAKICAgc3RhdHVzX3RyYW5zaXRfc3RhdGUgcnZhbCA9IFRSQU5T SVRfU1RBVEVfSU5fUFJPR1JFU1M7CiAKICAgd2hpbGUgKHJ2YWwgPT0gVFJBTlNJVF9TVEFU RV9JTl9QUk9HUkVTUykKICAgICB7Ci0gICAgICBpZiAoKHQgPSBkLT50cmFuc1t3b3Jrc10p ICE9IE5VTEwpCisgICAgICBzdGF0ZV9udW0gKnQgPSBkLT50YWJbd29ya3NdLnRyYW5zOwor ICAgICAgaWYgKHQpCiAgICAgICAgIHsKICAgICAgICAgICB3b3JrcyA9IHRbKnBdOwogICAg ICAgICAgIHJ2YWwgPSBUUkFOU0lUX1NUQVRFX0RPTkU7CkBAIC0zMDM2LDkgKzMwMTEsOSBA QCB0cmFuc2l0X3N0YXRlX3NpbmdsZWJ5dGUgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBz LCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLAogICAgICAgICAgICAgfQogICAgICAgICAgIHdv cmtzID0gMDsKICAgICAgICAgfQotICAgICAgZWxzZSBpZiAoZC0+ZmFpbHNbd29ya3NdKQor ICAgICAgZWxzZSBpZiAoZC0+dGFiW3dvcmtzXS5mYWlscykKICAgICAgICAgewotICAgICAg ICAgIHdvcmtzID0gZC0+ZmFpbHNbd29ya3NdWypwXTsKKyAgICAgICAgICB3b3JrcyA9IGQt PnRhYlt3b3Jrc10uZmFpbHNbKnBdOwogICAgICAgICAgIHJ2YWwgPSBUUkFOU0lUX1NUQVRF X0RPTkU7CiAgICAgICAgIH0KICAgICAgIGVsc2UKQEAgLTMxNzAsNyArMzE0NSw3IEBAIG1h dGNoX21iX2NoYXJzZXQgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBzLCBwb3NpdGlvbiBw b3MsIHNpemVfdCBpZHgpCiAgIC8qIG1hdGNoIHdpdGggYSByYW5nZT8gICovCiAgIGZvciAo aSA9IDA7IGkgPCB3b3JrX21iYy0+bnJhbmdlczsgaSsrKQogICAgIHsKLSAgICAgIGlmICh3 b3JrX21iYy0+cmFuZ2Vfc3RzW2ldIDw9IHdjICYmIHdjIDw9IHdvcmtfbWJjLT5yYW5nZV9l bmRzW2ldKQorICAgICAgaWYgKHdvcmtfbWJjLT5yYW5nZXNbaV0uYmVnIDw9IHdjICYmIHdj IDw9IHdvcmtfbWJjLT5yYW5nZXNbaV0uZW5kKQogICAgICAgICBnb3RvIGNoYXJzZXRfbWF0 Y2hlZDsKICAgICB9CiAKQEAgLTMxOTksOSArMzE3NCw4IEBAIHN0YXRpYyBpbnQgKgogY2hl Y2tfbWF0Y2hpbmdfd2l0aF9tdWx0aWJ5dGVfb3BzIChzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9u dW0gcywgc2l6ZV90IGlkeCkKIHsKICAgc2l6ZV90IGk7Ci0gIGludCAqcmFycmF5OworICBp bnQgKnJhcnJheSA9IHhubWFsbG9jIChkLT5zdGF0ZXNbc10ubWJwcy5uZWxlbSwgc2l6ZW9m ICpyYXJyYXkpOwogCi0gIE1BTExPQyAocmFycmF5LCBkLT5zdGF0ZXNbc10ubWJwcy5uZWxl bSk7CiAgIGZvciAoaSA9IDA7IGkgPCBkLT5zdGF0ZXNbc10ubWJwcy5uZWxlbTsgKytpKQog ICAgIHsKICAgICAgIHBvc2l0aW9uIHBvcyA9IGQtPnN0YXRlc1tzXS5tYnBzLmVsZW1zW2ld OwpAQCAtMzQxMCw4ICszMzg0LDggQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBj b25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKIHsKICAgc3RhdGVfbnVtIHMsIHMxOyAgICAgICAg ICAgICAgLyogQ3VycmVudCBzdGF0ZS4gICovCiAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKnA7 ICAgICAgIC8qIEN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyLiAgKi8KLSAgc3RhdGVfbnVtICoq dHJhbnMsICp0OyAgICAgICAgLyogQ29weSBvZiBkLT50cmFucyBzbyBpdCBjYW4gYmUgb3B0 aW1pemVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludG8gYSByZWdp c3Rlci4gICovCisgIHN0cnVjdCBkZmF0YWIgKnRhYjsJCS8qIEhlbHAgdGhlIGNvbXBpbGVy LiAgKi8KKyAgc3RhdGVfbnVtICp0OwogICB1bnNpZ25lZCBjaGFyIGVvbCA9IGVvbGJ5dGU7 ICAvKiBMaWtld2lzZSBmb3IgZW9sYnl0ZS4gICovCiAgIHVuc2lnbmVkIGNoYXIgc2F2ZWRf ZW5kOwogCkBAIC0zNDIwLDE0ICszMzk0LDE0IEBAIGRmYWV4ZWMgKHN0cnVjdCBkZmEgKmQs IGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAKICAgcyA9IHMxID0gMDsKICAgcCA9 ICh1bnNpZ25lZCBjaGFyIGNvbnN0ICopIGJlZ2luOwotICB0cmFucyA9IGQtPnRyYW5zOwor ICB0YWIgPSBkLT50YWI7CiAgIHNhdmVkX2VuZCA9ICoodW5zaWduZWQgY2hhciAqKSBlbmQ7 CiAgICplbmQgPSBlb2w7CiAKICAgaWYgKGQtPm1iX2N1cl9tYXggPiAxKQogICAgIHsKLSAg ICAgIE1BTExPQyAobWJsZW5fYnVmLCBlbmQgLSBiZWdpbiArIDIpOwotICAgICAgTUFMTE9D IChpbnB1dHdjcywgZW5kIC0gYmVnaW4gKyAyKTsKKyAgICAgIG1ibGVuX2J1ZiA9IHhubWFs bG9jIChlbmQgLSBiZWdpbiArIDIsIHNpemVvZiAqbWJsZW5fYnVmKTsKKyAgICAgIGlucHV0 d2NzID0geG5tYWxsb2MgKGVuZCAtIGJlZ2luICsgMiwgc2l6ZW9mICppbnB1dHdjcyk7CiAg ICAgICBtZW1zZXQgKCZtYnMsIDAsIHNpemVvZiAobWJzdGF0ZV90KSk7CiAgICAgICBwcmVw YXJlX3djX2J1ZiAoZCwgKGNvbnN0IGNoYXIgKikgcCwgZW5kKTsKICAgICB9CkBAIC0zNDM2 LDcgKzM0MTAsNyBAQCBkZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdp biwgY2hhciAqZW5kLAogICAgIHsKICAgICAgIGlmIChkLT5tYl9jdXJfbWF4ID4gMSkKICAg ICAgICAgewotICAgICAgICAgIHdoaWxlICgodCA9IHRyYW5zW3NdKSAhPSBOVUxMKQorICAg ICAgICAgIHdoaWxlICgodCA9IHRhYltzXS50cmFucykgIT0gTlVMTCkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgaWYgKHAgPiBidWZfZW5kKQogICAgICAgICAgICAgICAgIGJy ZWFrOwpAQCAtMzQ2NSwxNSArMzQzOSwxNSBAQCBkZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBj aGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAogICAgICAgICAgICAgICAvKiBDYW4gbWF0 Y2ggd2l0aCBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgKGFuZCBtdWx0aSBjaGFyYWN0ZXIKICAg ICAgICAgICAgICAgICAgY29sbGF0aW5nIGVsZW1lbnQpLiAgVHJhbnNpdGlvbiB0YWJsZSBt aWdodCBiZSB1cGRhdGVkLiAgKi8KICAgICAgICAgICAgICAgcyA9IHRyYW5zaXRfc3RhdGUg KGQsIHMsICZwKTsKLSAgICAgICAgICAgICAgdHJhbnMgPSBkLT50cmFuczsKKyAgICAgICAg ICAgICAgdGFiID0gZC0+dGFiOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICBl bHNlCiAgICAgICAgIHsKLSAgICAgICAgICB3aGlsZSAoKHQgPSB0cmFuc1tzXSkgIT0gTlVM TCkKKyAgICAgICAgICB3aGlsZSAoKHQgPSB0YWJbc10udHJhbnMpICE9IE5VTEwpCiAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIHMxID0gdFsqcCsrXTsKLSAgICAgICAgICAgICAg aWYgKCh0ID0gdHJhbnNbczFdKSA9PSBOVUxMKQorICAgICAgICAgICAgICBpZiAoKHQgPSB0 YWJbczFdLnRyYW5zKSA9PSBOVUxMKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgIHN0YXRlX251bSB0bXAgPSBzOwogICAgICAgICAgICAgICAgICAgcyA9IHMxOwpA QCAtMzQ4NCw5ICszNDU4LDkgQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25z dCAqYmVnaW4sIGNoYXIgKmVuZCwKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg ICBpZiAocyA+PSAwICYmIChjaGFyICopIHAgPD0gZW5kICYmIGQtPmZhaWxzW3NdKQorICAg ICAgaWYgKHMgPj0gMCAmJiAoY2hhciAqKSBwIDw9IGVuZCAmJiBkLT50YWJbc10uZmFpbHMp CiAgICAgICAgIHsKLSAgICAgICAgICBpZiAoZC0+c3VjY2Vzc1tzXSAmIHNiaXRbKnBdKQor ICAgICAgICAgIGlmIChkLT50YWJbc10uc3VjY2VzcyAmIHNiaXRbKnBdKQogICAgICAgICAg ICAgewogICAgICAgICAgICAgICBpZiAoYmFja3JlZikKICAgICAgICAgICAgICAgICAqYmFj a3JlZiA9IChkLT5zdGF0ZXNbc10uYmFja3JlZiAhPSAwKTsKQEAgLTM1MDUsMTAgKzM0Nzks MTAgQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIg KmVuZCwKICAgICAgICAgICAgICAgLyogQ2FuIG1hdGNoIHdpdGggYSBtdWx0aWJ5dGUgY2hh cmFjdGVyIChhbmQgbXVsdGljaGFyYWN0ZXIKICAgICAgICAgICAgICAgICAgY29sbGF0aW5n IGVsZW1lbnQpLiAgVHJhbnNpdGlvbiB0YWJsZSBtaWdodCBiZSB1cGRhdGVkLiAgKi8KICAg ICAgICAgICAgICAgcyA9IHRyYW5zaXRfc3RhdGUgKGQsIHMsICZwKTsKLSAgICAgICAgICAg ICAgdHJhbnMgPSBkLT50cmFuczsKKyAgICAgICAgICAgICAgdGFiID0gZC0+dGFiOwogICAg ICAgICAgICAgfQogICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHMgPSBkLT5mYWlsc1tz XVsqcCsrXTsKKyAgICAgICAgICAgIHMgPSBkLT50YWJbc10uZmFpbHNbKnArK107CiAgICAg ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMzUzNywxMyArMzUxMSwxMyBAQCBk ZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAog ICAgICAgaWYgKHMgPj0gMCkKICAgICAgICAgewogICAgICAgICAgIGJ1aWxkX3N0YXRlIChz LCBkKTsKLSAgICAgICAgICB0cmFucyA9IGQtPnRyYW5zOworICAgICAgICAgIHRhYiA9IGQt PnRhYjsKICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICBpZiAocFst MV0gPT0gZW9sICYmIGFsbG93X25sKQogICAgICAgICB7Ci0gICAgICAgICAgcyA9IGQtPm5l d2xpbmVzW3MxXTsKKyAgICAgICAgICBzID0gZC0+dGFiW3MxXS5uZXdsaW5lczsKICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC0zNTY1LDggKzM1MzksNyBAQCBmcmVl X21iZGF0YSAoc3RydWN0IGRmYSAqZCkKICAgICAgIHN0cnVjdCBtYl9jaGFyX2NsYXNzZXMg KnAgPSAmKGQtPm1iY3NldHNbaV0pOwogICAgICAgZnJlZSAocC0+Y2hhcnMpOwogICAgICAg ZnJlZSAocC0+Y2hfY2xhc3Nlcyk7Ci0gICAgICBmcmVlIChwLT5yYW5nZV9zdHMpOwotICAg ICAgZnJlZSAocC0+cmFuZ2VfZW5kcyk7CisgICAgICBmcmVlIChwLT5yYW5nZXMpOwogCiAg ICAgICBmb3IgKGogPSAwOyBqIDwgcC0+bmVxdWl2czsgKytqKQogICAgICAgICBmcmVlIChw LT5lcXVpdnNbal0pOwpAQCAtMzU4OCwyMiArMzU2MSw3IEBAIHZvaWQKIGRmYWluaXQgKHN0 cnVjdCBkZmEgKmQpCiB7CiAgIG1lbXNldCAoZCwgMCwgc2l6ZW9mICpkKTsKLQotICBkLT5j YWxsb2MgPSAxOwotICBNQUxMT0MgKGQtPmNoYXJjbGFzc2VzLCBkLT5jYWxsb2MpOwotCi0g IGQtPnRhbGxvYyA9IDE7Ci0gIE1BTExPQyAoZC0+dG9rZW5zLCBkLT50YWxsb2MpOwotCiAg IGQtPm1iX2N1cl9tYXggPSBNQl9DVVJfTUFYOwotCi0gIGlmIChkLT5tYl9jdXJfbWF4ID4g MSkKLSAgICB7Ci0gICAgICBkLT5ubXVsdGlieXRlX3Byb3AgPSAxOwotICAgICAgTUFMTE9D IChkLT5tdWx0aWJ5dGVfcHJvcCwgZC0+bm11bHRpYnl0ZV9wcm9wKTsKLSAgICAgIGQtPm1i Y3NldHNfYWxsb2MgPSAxOwotICAgICAgTUFMTE9DIChkLT5tYmNzZXRzLCBkLT5tYmNzZXRz X2FsbG9jKTsKLSAgICB9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0zNjcwLDEzICszNjI4LDEw IEBAIGRmYWZyZWUgKHN0cnVjdCBkZmEgKmQpCiAgIGZyZWUgKGQtPmZvbGxvd3MpOwogICBm b3IgKGkgPSAwOyBpIDwgZC0+dHJhbGxvYzsgKytpKQogICAgIHsKLSAgICAgIGZyZWUgKGQt PnRyYW5zW2ldKTsKLSAgICAgIGZyZWUgKGQtPmZhaWxzW2ldKTsKKyAgICAgIGZyZWUgKGQt PnRhYltpXS50cmFucyk7CisgICAgICBmcmVlIChkLT50YWJbaV0uZmFpbHMpOwogICAgIH0K LSAgZnJlZSAoZC0+cmVhbHRyYW5zKTsKLSAgZnJlZSAoZC0+ZmFpbHMpOwotICBmcmVlIChk LT5uZXdsaW5lcyk7Ci0gIGZyZWUgKGQtPnN1Y2Nlc3MpOworICBmcmVlIChkLT50YWIgLSAx KTsKICAgZm9yIChkbSA9IGQtPm11c3RzOyBkbTsgZG0gPSBuZG0pCiAgICAgewogICAgICAg bmRtID0gZG0tPm5leHQ7CkBAIC0zODQ5LDcgKzM4MDQsNyBAQCBlbmxpc3QgKGNoYXIgKipj cHAsIGNoYXIgKm5ldywgc2l6ZV90IGxlbikKICAgICAgICAgY3BwW2ldID0gTlVMTDsKICAg ICAgIH0KICAgLyogQWRkIHRoZSBuZXcgc3RyaW5nLiAgKi8KLSAgUkVBTExPQyAoY3BwLCBp ICsgMik7CisgIGNwcCA9IHhucmVhbGxvYyAoY3BwLCBpICsgMiwgc2l6ZW9mICpjcHApOwog ICBjcHBbaV0gPSBuZXc7CiAgIGNwcFtpICsgMV0gPSBOVUxMOwogICByZXR1cm4gY3BwOwpA QCAtMzk4Miw3ICszOTM3LDcgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKIAogICByZXN1 bHQgPSBlbXB0eV9zdHJpbmc7CiAgIGV4YWN0ID0gMDsKLSAgTUFMTE9DIChtdXN0cywgZC0+ dGluZGV4ICsgMSk7CisgIG11c3RzID0geG5tYWxsb2MgKGQtPnRpbmRleCArIDEsIHNpemVv ZiAqbXVzdHMpOwogICBtcCA9IG11c3RzOwogICBmb3IgKGkgPSAwOyBpIDw9IGQtPnRpbmRl eDsgKytpKQogICAgIG1wW2ldID0gbXVzdDA7CkBAIC00MTY5LDcgKzQxMjQsNyBAQCBkZmFt dXN0IChzdHJ1Y3QgZGZhICpkKQogZG9uZToKICAgaWYgKHN0cmxlbiAocmVzdWx0KSkKICAg ICB7Ci0gICAgICBNQUxMT0MgKGRtLCAxKTsKKyAgICAgIGRtID0geG1hbGxvYyAoc2l6ZW9m ICpkbSk7CiAgICAgICBkbS0+ZXhhY3QgPSBleGFjdDsKICAgICAgIGRtLT5tdXN0ID0geG1l bWR1cCAocmVzdWx0LCBzdHJsZW4gKHJlc3VsdCkgKyAxKTsKICAgICAgIGRtLT5uZXh0ID0g ZC0+bXVzdHM7Ci0tIAoxLjkuMAoK --------------010202020402050004060400-- From unknown Sat Jun 21 05:14:39 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Paul Eggert Subject: bug#17136: closed (Re: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX) Message-ID: References: <5350BF35.5040407@cs.ucla.edu> <533621D9.2010506@cs.ucla.edu> X-Gnu-PR-Message: they-closed 17136 X-Gnu-PR-Package: grep X-Gnu-PR-Keywords: patch Reply-To: 17136@debbugs.gnu.org Date: Fri, 18 Apr 2014 06:00:06 +0000 Content-Type: multipart/mixed; boundary="----------=_1397800806-1312-1" This is a multi-part message in MIME format... ------------=_1397800806-1312-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #17136: [PATCH] dfa: speed up memory allocation, port to IRIX which was filed against the grep package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 17136@debbugs.gnu.org. --=20 17136: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D17136 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1397800806-1312-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 17136-done) by debbugs.gnu.org; 18 Apr 2014 05:59:39 +0000 Received: from localhost ([127.0.0.1]:51476 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wb1po-0000Js-6d for submit@debbugs.gnu.org; Fri, 18 Apr 2014 01:59:39 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:49687) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wb1ph-0000JP-4f for 17136-done@debbugs.gnu.org; Fri, 18 Apr 2014 01:59:33 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 24E4139E807B for <17136-done@debbugs.gnu.org>; Thu, 17 Apr 2014 22:59:23 -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 T9eXmyLzhRUt for <17136-done@debbugs.gnu.org>; Thu, 17 Apr 2014 22:59:17 -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 C4BB4A6001A for <17136-done@debbugs.gnu.org>; Thu, 17 Apr 2014 22:59:17 -0700 (PDT) Message-ID: <5350BF35.5040407@cs.ucla.edu> Date: Thu, 17 Apr 2014 22:59:17 -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: 17136-done@debbugs.gnu.org Subject: Re: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX References: <533621D9.2010506@cs.ucla.edu> In-Reply-To: <533621D9.2010506@cs.ucla.edu> Content-Type: multipart/mixed; boundary="------------030503010107060906000501" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17136-done 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. --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I merged that patch into the grep trunk and am closing this bug report. While merging, I removed one part of the patch that had a small but measurable performance degradation, namely, the introduction of struct dfatab. I found some other minor simplifications and threw them in. There seems to be no significant change in CPU performance. The patch's causes the dfa module's text size to shrink by 8% on my platform (x86-64 Fedora 20), which I suppose is a small win, but the main point of the patch is simplifying the source. I'm attaching what I installed, broken into 12 little patches to ease review. --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0001-dfa-clarify-memory-allocation-and-port-to-IRIX.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-dfa-clarify-memory-allocation-and-port-to-IRIX.patch" RnJvbSA2NjIwYjU0ZWQzZjQ4NWU2YWU2NTJkZjljOGI4YTIzYzhmNjMxMWI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE1IEFwciAyMDE0IDE3OjI5OjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwMS8xMl0gZGZhOiBjbGFyaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGFuZCBwb3J0IHRvIElS SVgKClRoaXMgY2hhbmdlIHdhcyBwcm9tcHRlZCBieSBhIHBvcnRpbmcgcHJvYmxlbToKSVJJ WCBkZWZpbmVzIGl0cyBvd24gTUFMTE9DIG1hY3JvLCB3aGljaCBjbGFzaGVzIHdpdGggb3Vy cy4KTW9yZSBnZW5lcmFsbHksIHRoZSBNQUxMT0MgZXRjLiBtYWNyb3MgYXJlIGNvbmZ1c2lu ZywgYXMgdGhleQpsb29rIGxpa2UgZnVuY3Rpb25zIGJ1dCBkbyBub3QgaGF2ZSBDLWZ1bmN0 aW9uIHNlbWFudGljcy4KQSBmdW5jdGlvbmFsIHN0eWxlIG1ha2VzIHRoZSBjb2RlIGVhc2ll ciB0byByZWFkLCBhbmQgdGhvdWdoCml0IGxlbmd0aGVucyB0aGUgY29kZSBhIGJpdCBoZXJl IGl0J2xsIG1ha2Ugb3RoZXIKc2ltcGxpZmljYXRpb25zIGVhc2llci4KKiBzcmMvZGZhLmMg KFhOTUFMTE9DLCBYQ0FMTE9DLCBDQUxMT0MsIE1BTExPQywgUkVBTExPQyk6IFJlbW92ZS4K QWxsIHVzZXMgcmVwbGFjZWQgYnkgeG5tYWxsb2MgZXRjLgooUkVBTExPQ19JRl9ORUNFU1NB UlkpOiBSZW1vdmU7IGFsbCB1c2VzIHJlcGxhY2VkIGJ5IC4uLi4KKG1heWJlX3JlYWxsb2Mp OiBOZXcgZnVuY3Rpb24uCihjb3B5LCBtZXJnZSk6IEZyZWUgYW5kIGFsbG9jYXRlIHJhdGhl ciB0aGFuIHJlYWxsb2MsIGFzIHdlCm5lZWRuJ3Qgc2F2ZSB0aGUgY29udGVudHMuCi0tLQog c3JjL2RmYS5jIHwgMjExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEwIGluc2VydGlv bnMoKyksIDEwMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZGZhLmMgYi9zcmMv ZGZhLmMKaW5kZXggMmI2YzVkNi4uOWU4ODc0MiAxMDA2NDQKLS0tIGEvc3JjL2RmYS5jCisr KyBiL3NyYy9kZmEuYwpAQCAtNDU3LDQwICs0NTcsNiBAQCBzdHJ1Y3QgZGZhCiBzdGF0aWMg dm9pZCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkZmEpOwogc3RhdGljIHZvaWQgcmVnZXhwICh2 b2lkKTsKIAotLyogVGhlc2UgdHdvIG1hY3JvcyBhcmUgaWRlbnRpY2FsIHRvIHRoZSBvbmVz IGluIGdudWxpYidzIHhhbGxvYy5oLAotICAgZXhjZXB0IHRoYXQgdGhleSBkbyBub3QgY2Fz dCB0aGUgcmVzdWx0IHRvICIodCAqKSIsIGFuZCB0aHVzIG1heQotICAgYmUgdXNlZCB2aWEg dHlwZS1mcmVlIENBTExPQyBhbmQgTUFMTE9DIG1hY3Jvcy4gICovCi0jdW5kZWYgWE5NQUxM T0MKLSN1bmRlZiBYQ0FMTE9DCi0KLS8qIEFsbG9jYXRlIG1lbW9yeSBmb3IgTiBlbGVtZW50 cyBvZiB0eXBlIFQsIHdpdGggZXJyb3IgY2hlY2tpbmcuICAqLwotLyogZXh0ZXJuIHQgKlhO TUFMTE9DIChzaXplX3QgbiwgdHlwZW5hbWUgdCk7ICovCi0jIGRlZmluZSBYTk1BTExPQyhu LCB0KSBcCi0gICAgKHNpemVvZiAodCkgPT0gMSA/IHhtYWxsb2MgKG4pIDogeG5tYWxsb2Mg KG4sIHNpemVvZiAodCkpKQotCi0vKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIE4gZWxlbWVudHMg b2YgdHlwZSBULCB3aXRoIGVycm9yIGNoZWNraW5nLAotICAgYW5kIHplcm8gaXQuICAqLwot LyogZXh0ZXJuIHQgKlhDQUxMT0MgKHNpemVfdCBuLCB0eXBlbmFtZSB0KTsgKi8KLSMgZGVm aW5lIFhDQUxMT0MobiwgdCkgXAotICAgIChzaXplb2YgKHQpID09IDEgPyB4emFsbG9jIChu KSA6IHhjYWxsb2MgKG4sIHNpemVvZiAodCkpKQotCi0jZGVmaW5lIENBTExPQyhwLCBuKSBk byB7IChwKSA9IFhDQUxMT0MgKG4sICoocCkpOyB9IHdoaWxlICgwKQotI2RlZmluZSBNQUxM T0MocCwgbikgZG8geyAocCkgPSBYTk1BTExPQyAobiwgKihwKSk7IH0gd2hpbGUgKDApCi0j ZGVmaW5lIFJFQUxMT0MocCwgbikgZG8geyhwKSA9IHhucmVhbGxvYyAocCwgbiwgc2l6ZW9m ICgqKHApKSk7IH0gd2hpbGUgKDApCi0KLS8qIFJlYWxsb2NhdGUgYW4gYXJyYXkgb2YgdHlw ZSAqUCBpZiBOX0FMTE9DIGlzIDw9IE5fUkVRVUlSRUQuICAqLwotI2RlZmluZSBSRUFMTE9D X0lGX05FQ0VTU0FSWShwLCBuX2FsbG9jLCBuX3JlcXVpcmVkKQkJXAotICBkbwkJCQkJCQkJ XAotICAgIHsJCQkJCQkJCVwKLSAgICAgIGlmICgobl9hbGxvYykgPD0gKG5fcmVxdWlyZWQp KQkJCQlcCi0gICAgICAgIHsJCQkJCQkJXAotICAgICAgICAgIHNpemVfdCBuZXdfbl9hbGxv YyA9IChuX3JlcXVpcmVkKSArICEocCk7CQlcCi0gICAgICAgICAgKHApID0geDJucmVhbGxv YyAocCwgJm5ld19uX2FsbG9jLCBzaXplb2YgKCoocCkpKTsJXAotICAgICAgICAgIChuX2Fs bG9jKSA9IG5ld19uX2FsbG9jOwkJCQlcCi0gICAgICAgIH0JCQkJCQkJXAotICAgIH0JCQkJ CQkJCVwKLSAgd2hpbGUgKGZhbHNlKQotCiBzdGF0aWMgdm9pZAogZGZhbWJjYWNoZSAoc3Ry dWN0IGRmYSAqZCkKIHsKQEAgLTY3MSw2ICs2MzcsMTkgQEAgZXF1YWwgKGNoYXJjbGFzcyBj b25zdCBzMSwgY2hhcmNsYXNzIGNvbnN0IHMyKQogICByZXR1cm4gbWVtY21wIChzMSwgczIs IHNpemVvZiAoY2hhcmNsYXNzKSkgPT0gMDsKIH0KIAorLyogSWYgbmVlZGVkLCByZWFsbG9j YXRlICpQVFIgc28gdGhhdCBpdCBob2xkcyBhdCBsZWFzdCBOSVRFTVMgaXRlbXMuCisgICBU aGUgYXJyYXkgaG9sZHMgKk5BTExPQyBpdGVtczsgKk5BTExPQyBpcyB1cGRhdGVkIG9uIHJl YWxsb2NhdGlvbi4KKyAgIElURU1TSVpFIGlzIHRoZSBzaXplIG9mIG9uZSBpdGVtLiAgQXZv aWQgTyhOKioyKSBiZWhhdmlvciBvbiBhcnJheXMKKyAgIGdyb3dpbmcgbGluZWFybHkuICAq Lworc3RhdGljIHZvaWQgKgorbWF5YmVfcmVhbGxvYyAodm9pZCAqcHRyLCBzaXplX3Qgbml0 ZW1zLCBzaXplX3QgKm5hbGxvYywgc2l6ZV90IGl0ZW1zaXplKQoreworICBpZiAobml0ZW1z IDwgKm5hbGxvYykKKyAgICByZXR1cm4gcHRyOworICAqbmFsbG9jID0gbml0ZW1zOworICBy ZXR1cm4geDJucmVhbGxvYyAocHRyLCBuYWxsb2MsIGl0ZW1zaXplKTsKK30KKwogLyogSW4g REZBIEQsIGZpbmQgdGhlIGluZGV4IG9mIGNoYXJjbGFzcyBTLCBvciBhbGxvY2F0ZSBhIG5l dyBvbmUuICAqLwogc3RhdGljIHNpemVfdAogZGZhX2NoYXJjbGFzc19pbmRleCAoc3RydWN0 IGRmYSAqZCwgY2hhcmNsYXNzIGNvbnN0IHMpCkBAIC02ODAsNyArNjU5LDggQEAgZGZhX2No YXJjbGFzc19pbmRleCAoc3RydWN0IGRmYSAqZCwgY2hhcmNsYXNzIGNvbnN0IHMpCiAgIGZv ciAoaSA9IDA7IGkgPCBkLT5jaW5kZXg7ICsraSkKICAgICBpZiAoZXF1YWwgKHMsIGQtPmNo YXJjbGFzc2VzW2ldKSkKICAgICAgIHJldHVybiBpOwotICBSRUFMTE9DX0lGX05FQ0VTU0FS WSAoZC0+Y2hhcmNsYXNzZXMsIGQtPmNhbGxvYywgZC0+Y2luZGV4ICsgMSk7CisgIGQtPmNo YXJjbGFzc2VzID0gbWF5YmVfcmVhbGxvYyAoZC0+Y2hhcmNsYXNzZXMsIGQtPmNpbmRleCwg JmQtPmNhbGxvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yg KmQtPmNoYXJjbGFzc2VzKTsKICAgKytkLT5jaW5kZXg7CiAgIGNvcHlzZXQgKHMsIGQtPmNo YXJjbGFzc2VzW2ldKTsKICAgcmV0dXJuIGk7CkBAIC0xMDMxLDggKzEwMTEsOSBAQCBwYXJz ZV9icmFja2V0X2V4cCAodm9pZCkKICAgY2hfY2xhc3Nlc19hbCA9IGVxdWl2c19hbCA9IGNv bGxfZWxlbXNfYWwgPSAwOwogICBpZiAoTUJfQ1VSX01BWCA+IDEpCiAgICAgewotICAgICAg UkVBTExPQ19JRl9ORUNFU1NBUlkgKGRmYS0+bWJjc2V0cywgZGZhLT5tYmNzZXRzX2FsbG9j LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmYS0+bm1iY3NldHMgKyAxKTsKKyAg ICAgIGRmYS0+bWJjc2V0cyA9IG1heWJlX3JlYWxsb2MgKGRmYS0+bWJjc2V0cywgZGZhLT5u bWJjc2V0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkZmEtPm1i Y3NldHNfYWxsb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl b2YgKmRmYS0+bWJjc2V0cyk7CiAKICAgICAgIC8qIGRmYS0+bXVsdGlieXRlX3Byb3BbXSBo b2xkIHRoZSBpbmRleCBvZiBkZmEtPm1iY3NldHMuCiAgICAgICAgICBXZSB3aWxsIHVwZGF0 ZSBkZmEtPm11bHRpYnl0ZV9wcm9wW10gaW4gYWRkdG9rLCBiZWNhdXNlIHdlIGNhbid0CkBA IC0xMTA5LDkgKzEwOTAsMTAgQEAgcGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiAgICAgICAg ICAgICAgICAgICAgICAgLyogU3RvcmUgdGhlIGNoYXJhY3RlciBjbGFzcyBhcyB3Y3R5cGVf dC4gICovCiAgICAgICAgICAgICAgICAgICAgICAgd2N0eXBlX3Qgd3QgPSB3Y3R5cGUgKGNs YXNzKTsKIAotICAgICAgICAgICAgICAgICAgICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZICh3 b3JrX21iYy0+Y2hfY2xhc3NlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hfY2xhc3Nlc19hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd29ya19tYmMtPm5jaF9jbGFzc2VzICsgMSk7CisgICAgICAg ICAgICAgICAgICAgICAgd29ya19tYmMtPmNoX2NsYXNzZXMKKyAgICAgICAgICAgICAgICAg ICAgICAgID0gbWF5YmVfcmVhbGxvYyAod29ya19tYmMtPmNoX2NsYXNzZXMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5uY2hfY2xhc3Nl cywgJmNoX2NsYXNzZXNfYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZiAqd29ya19tYmMtPmNoX2NsYXNzZXMpOwogICAgICAgICAgICAgICAg ICAgICAgIHdvcmtfbWJjLT5jaF9jbGFzc2VzW3dvcmtfbWJjLT5uY2hfY2xhc3NlcysrXSA9 IHd0OwogICAgICAgICAgICAgICAgICAgICB9CiAKQEAgLTExNjQsMTAgKzExNDYsMTQgQEAg cGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiAgICAgICAgICAgICAgICAgICAgICB0byB0aGUg cGFpciBvZiByYW5nZXMsIFttLXpdIFtNLVpdLiAgQWx0aG91Z2ggdGhpcyBjb2RlCiAgICAg ICAgICAgICAgICAgICAgICBpcyB3cm9uZyBpbiBtdWx0aXBsZSB3YXlzLCBpdCdzIG5ldmVy IHVzZWQgaW4gcHJhY3RpY2UuCiAgICAgICAgICAgICAgICAgICAgICBGSVhNRTogUmVtb3Zl IHRoaXMgKGFuZCByZWxhdGVkKSB1bnVzZWQgY29kZS4gICovCi0gICAgICAgICAgICAgICAg ICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAod29ya19tYmMtPnJhbmdlX3N0cywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9zdHNfYWwsIHdvcmtfbWJj LT5ucmFuZ2VzICsgMSk7Ci0gICAgICAgICAgICAgICAgICBSRUFMTE9DX0lGX05FQ0VTU0FS WSAod29ya19tYmMtPnJhbmdlX2VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmFuZ2VfZW5kc19hbCwgd29ya19tYmMtPm5yYW5nZXMgKyAxKTsKKyAg ICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZV9zdHMKKyAgICAgICAgICAgICAgICAg ICAgPSBtYXliZV9yZWFsbG9jICh3b3JrX21iYy0+cmFuZ2Vfc3RzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5ucmFuZ2VzLCAmcmFuZ2Vfc3Rz X2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAqd29y a19tYmMtPnJhbmdlX3N0cyk7CisgICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2Vf ZW5kcworICAgICAgICAgICAgICAgICAgICA9IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5y YW5nZV9lbmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtf bWJjLT5ucmFuZ2VzLCAmcmFuZ2VfZW5kc19hbCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5yYW5nZV9lbmRzKTsKICAgICAgICAg ICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZV9zdHNbd29ya19tYmMtPm5yYW5nZXNdID0KICAg ICAgICAgICAgICAgICAgICAgY2FzZV9mb2xkID8gdG93bG93ZXIgKHdjKSA6ICh3Y2hhcl90 KSB3YzsKICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZV9lbmRzW3dvcmtfbWJj LT5ucmFuZ2VzKytdID0KQEAgLTExNzUsMTEgKzExNjEsMTUgQEAgcGFyc2VfYnJhY2tldF9l eHAgKHZvaWQpCiAKICAgICAgICAgICAgICAgICAgIGlmIChjYXNlX2ZvbGQgJiYgKGlzd2Fs cGhhICh3YykgfHwgaXN3YWxwaGEgKHdjMikpKQogICAgICAgICAgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5y YW5nZV9zdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJhbmdlX3N0c19hbCwgd29ya19tYmMtPm5yYW5nZXMgKyAxKTsKKyAgICAgICAgICAgICAg ICAgICAgICB3b3JrX21iYy0+cmFuZ2Vfc3RzCisgICAgICAgICAgICAgICAgICAgICAgICA9 IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5yYW5nZV9zdHMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5ucmFuZ2VzLCAmcmFuZ2Vfc3Rz X2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yg KndvcmtfbWJjLT5yYW5nZV9zdHMpOwogICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJj LT5yYW5nZV9zdHNbd29ya19tYmMtPm5yYW5nZXNdID0gdG93dXBwZXIgKHdjKTsKLSAgICAg ICAgICAgICAgICAgICAgICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAod29ya19tYmMtPnJhbmdl X2VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJh bmdlX2VuZHNfYWwsIHdvcmtfbWJjLT5ucmFuZ2VzICsgMSk7CisgICAgICAgICAgICAgICAg ICAgICAgd29ya19tYmMtPnJhbmdlX2VuZHMKKyAgICAgICAgICAgICAgICAgICAgICAgID0g bWF5YmVfcmVhbGxvYyAod29ya19tYmMtPnJhbmdlX2VuZHMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5ucmFuZ2VzLCAmcmFuZ2VfZW5k c19hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m ICp3b3JrX21iYy0+cmFuZ2VfZW5kcyk7CiAgICAgICAgICAgICAgICAgICAgICAgd29ya19t YmMtPnJhbmdlX2VuZHNbd29ya19tYmMtPm5yYW5nZXMrK10gPSB0b3d1cHBlciAod2MyKTsK ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTEyMjgsMTYg KzEyMTgsMTcgQEAgcGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiAgICAgICAgIHsKICAgICAg ICAgICB3Y2hhcl90IGZvbGRlZFtDQVNFX0ZPTERFRF9CVUZTSVpFXTsKICAgICAgICAgICBp bnQgaSwgbiA9IGNhc2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyAod2MsIGZvbGRlZCk7Ci0gICAg ICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5jaGFycywgY2hhcnNfYWws Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5uY2hhcnMgKyBu KTsKKyAgICAgICAgICB3b3JrX21iYy0+Y2hhcnMgPSBtYXliZV9yZWFsbG9jICh3b3JrX21i Yy0+Y2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg d29ya19tYmMtPm5jaGFycyArIG4sICZjaGFyc19hbCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5jaGFycyk7CiAgICAg ICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKICAgICAgICAgICAgIGlmICghc2V0Yml0 X3djIChmb2xkZWRbaV0sIGNjbCkpCiAgICAgICAgICAgICAgIHdvcmtfbWJjLT5jaGFyc1t3 b3JrX21iYy0+bmNoYXJzKytdID0gZm9sZGVkW2ldOwogICAgICAgICB9CiAgICAgICBpZiAo IXNldGJpdF93YyAod2MsIGNjbCkpCiAgICAgICAgIHsKLSAgICAgICAgICBSRUFMTE9DX0lG X05FQ0VTU0FSWSAod29ya19tYmMtPmNoYXJzLCBjaGFyc19hbCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd29ya19tYmMtPm5jaGFycyArIDEpOworICAgICAgICAgIHdv cmtfbWJjLT5jaGFycyA9IG1heWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5jaGFycywgd29ya19t YmMtPm5jaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmY2hhcnNfYWwsIHNpemVvZiAqd29ya19tYmMtPmNoYXJzKTsKICAgICAgICAgICB3b3Jr X21iYy0+Y2hhcnNbd29ya19tYmMtPm5jaGFycysrXSA9IHdjOwogICAgICAgICB9CiAgICAg fQpAQCAtMTYwNCwxMiArMTU5NSwxNCBAQCBhZGR0b2tfbWIgKHRva2VuIHQsIGludCBtYnBy b3ApCiB7CiAgIGlmIChNQl9DVVJfTUFYID4gMSkKICAgICB7Ci0gICAgICBSRUFMTE9DX0lG X05FQ0VTU0FSWSAoZGZhLT5tdWx0aWJ5dGVfcHJvcCwgZGZhLT5ubXVsdGlieXRlX3Byb3As Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZhLT50aW5kZXggKyAxKTsKKyAgICAg IGRmYS0+bXVsdGlieXRlX3Byb3AgPSBtYXliZV9yZWFsbG9jIChkZmEtPm11bHRpYnl0ZV9w cm9wLCBkZmEtPnRpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmZGZhLT5ubXVsdGlieXRlX3Byb3AsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mICpkZmEtPm11bHRpYnl0ZV9wcm9wKTsKICAg ICAgIGRmYS0+bXVsdGlieXRlX3Byb3BbZGZhLT50aW5kZXhdID0gbWJwcm9wOwogICAgIH0K IAotICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAoZGZhLT50b2tlbnMsIGRmYS0+dGFsbG9jLCBk ZmEtPnRpbmRleCArIDEpOworICBkZmEtPnRva2VucyA9IG1heWJlX3JlYWxsb2MgKGRmYS0+ dG9rZW5zLCBkZmEtPnRpbmRleCwgJmRmYS0+dGFsbG9jLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZiAqZGZhLT50b2tlbnMpOwogICBkZmEtPnRva2Vuc1tkZmEt PnRpbmRleCsrXSA9IHQ7CiAKICAgc3dpdGNoICh0KQpAQCAtMjAwMCwxOSArMTk5MywyNCBA QCBkZmFwYXJzZSAoY2hhciBjb25zdCAqcywgc2l6ZV90IGxlbiwgc3RydWN0IGRmYSAqZCkK IAogLyogU29tZSBwcmltaXRpdmVzIGZvciBvcGVyYXRpbmcgb24gc2V0cyBvZiBwb3NpdGlv bnMuICAqLwogCi0vKiBDb3B5IG9uZSBzZXQgdG8gYW5vdGhlcjsgdGhlIGRlc3RpbmF0aW9u IG11c3QgYmUgbGFyZ2UgZW5vdWdoLiAgKi8KKy8qIENvcHkgb25lIHNldCB0byBhbm90aGVy LiAgKi8KIHN0YXRpYyB2b2lkCiBjb3B5IChwb3NpdGlvbl9zZXQgY29uc3QgKnNyYywgcG9z aXRpb25fc2V0ICogZHN0KQogewotICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAoZHN0LT5lbGVt cywgZHN0LT5hbGxvYywgc3JjLT5uZWxlbSk7Ci0gIG1lbWNweSAoZHN0LT5lbGVtcywgc3Jj LT5lbGVtcywgc2l6ZW9mIChkc3QtPmVsZW1zWzBdKSAqIHNyYy0+bmVsZW0pOworICBpZiAo ZHN0LT5hbGxvYyA8IHNyYy0+bmVsZW0pCisgICAgeworICAgICAgZnJlZSAoZHN0LT5lbGVt cyk7CisgICAgICBkc3QtPmFsbG9jID0gc3JjLT5uZWxlbTsKKyAgICAgIGRzdC0+ZWxlbXMg PSB4Mm5yZWFsbG9jIChOVUxMLCAmZHN0LT5hbGxvYywgc2l6ZW9mICpkc3QtPmVsZW1zKTsK KyAgICB9CisgIG1lbWNweSAoZHN0LT5lbGVtcywgc3JjLT5lbGVtcywgc3JjLT5uZWxlbSAq IHNpemVvZiAqZHN0LT5lbGVtcyk7CiAgIGRzdC0+bmVsZW0gPSBzcmMtPm5lbGVtOwogfQog CiBzdGF0aWMgdm9pZAogYWxsb2NfcG9zaXRpb25fc2V0IChwb3NpdGlvbl9zZXQgKiBzLCBz aXplX3Qgc2l6ZSkKIHsKLSAgTUFMTE9DIChzLT5lbGVtcywgc2l6ZSk7CisgIHMtPmVsZW1z ID0geG5tYWxsb2MgKHNpemUsIHNpemVvZiAqcy0+ZWxlbXMpOwogICBzLT5hbGxvYyA9IHNp emU7CiAgIHMtPm5lbGVtID0gMDsKIH0KQEAgLTIwNDIsNyArMjA0MCw3IEBAIGluc2VydCAo cG9zaXRpb24gcCwgcG9zaXRpb25fc2V0ICogcykKICAgICAgIHJldHVybjsKICAgICB9CiAK LSAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKHMtPmVsZW1zLCBzLT5hbGxvYywgY291bnQgKyAx KTsKKyAgcy0+ZWxlbXMgPSBtYXliZV9yZWFsbG9jIChzLT5lbGVtcywgY291bnQsICZzLT5h bGxvYywgc2l6ZW9mICpzLT5lbGVtcyk7CiAgIGZvciAoaSA9IGNvdW50OyBpID4gbG87IGkt LSkKICAgICBzLT5lbGVtc1tpXSA9IHMtPmVsZW1zW2kgLSAxXTsKICAgcy0+ZWxlbXNbbG9d ID0gcDsKQEAgLTIwNTYsNyArMjA1NCwxMiBAQCBtZXJnZSAocG9zaXRpb25fc2V0IGNvbnN0 ICpzMSwgcG9zaXRpb25fc2V0IGNvbnN0ICpzMiwgcG9zaXRpb25fc2V0ICogbSkKIHsKICAg c2l6ZV90IGkgPSAwLCBqID0gMDsKIAotICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAobS0+ZWxl bXMsIG0tPmFsbG9jLCBzMS0+bmVsZW0gKyBzMi0+bmVsZW0pOworICBpZiAobS0+YWxsb2Mg PCBzMS0+bmVsZW0gKyBzMi0+bmVsZW0pCisgICAgeworICAgICAgZnJlZSAobS0+ZWxlbXMp OworICAgICAgbS0+ZWxlbXMgPSBtYXliZV9yZWFsbG9jIChOVUxMLCBzMS0+bmVsZW0gKyBz Mi0+bmVsZW0sICZtLT5hbGxvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mICptLT5lbGVtcyk7CisgICAgfQogICBtLT5uZWxlbSA9IDA7CiAgIHdoaWxlIChp IDwgczEtPm5lbGVtICYmIGogPCBzMi0+bmVsZW0pCiAgICAgaWYgKHMxLT5lbGVtc1tpXS5p bmRleCA+IHMyLT5lbGVtc1tqXS5pbmRleCkKQEAgLTIxMTcsNyArMjEyMCw4IEBAIHN0YXRl X2luZGV4IChzdHJ1Y3QgZGZhICpkLCBwb3NpdGlvbl9zZXQgY29uc3QgKnMsIGludCBjb250 ZXh0KQogICAgIH0KIAogICAvKiBXZSdsbCBoYXZlIHRvIGNyZWF0ZSBhIG5ldyBzdGF0ZS4g ICovCi0gIFJFQUxMT0NfSUZfTkVDRVNTQVJZIChkLT5zdGF0ZXMsIGQtPnNhbGxvYywgZC0+ c2luZGV4ICsgMSk7CisgIGQtPnN0YXRlcyA9IG1heWJlX3JlYWxsb2MgKGQtPnN0YXRlcywg ZC0+c2luZGV4LCAmZC0+c2FsbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YgKmQtPnN0YXRlcyk7CiAgIGQtPnN0YXRlc1tpXS5oYXNoID0gaGFzaDsKICAgYWxs b2NfcG9zaXRpb25fc2V0ICgmZC0+c3RhdGVzW2ldLmVsZW1zLCBzLT5uZWxlbSk7CiAgIGNv cHkgKHMsICZkLT5zdGF0ZXNbaV0uZWxlbXMpOwpAQCAtMjE1OCwxMCArMjE2MiwxMCBAQCBz dGF0aWMgdm9pZAogZXBzY2xvc3VyZSAocG9zaXRpb25fc2V0ICogcywgc3RydWN0IGRmYSBj b25zdCAqZCkKIHsKICAgc2l6ZV90IGksIGo7Ci0gIGNoYXIgKnZpc2l0ZWQ7ICAvKiBBcnJh eSBvZiBib29sZWFucywgZW5vdWdoIHRvIHVzZSBjaGFyLCBub3QgaW50LiAgKi8KICAgcG9z aXRpb24gcCwgb2xkOwogCi0gIENBTExPQyAodmlzaXRlZCwgZC0+dGluZGV4KTsKKyAgLyog QXJyYXkgb2YgYm9vbGVhbnMsIGxhcmdlIGVub3VnaCB0byB1c2UgY2hhciwgbm90IGludC4g ICovCisgIGNoYXIgKnZpc2l0ZWQgPSB4emFsbG9jIChkLT50aW5kZXgpOwogCiAgIGZvciAo aSA9IDA7IGkgPCBzLT5uZWxlbTsgKytpKQogICAgIGlmIChkLT50b2tlbnNbcy0+ZWxlbXNb aV0uaW5kZXhdID49IE5PVENIQVIKQEAgLTIzNDIsMTkgKzIzNDYsMTkgQEAgZGZhYW5hbHl6 ZSAoc3RydWN0IGRmYSAqZCwgaW50IHNlYXJjaGZsYWcpCiAKICAgZC0+c2VhcmNoZmxhZyA9 IHNlYXJjaGZsYWcgIT0gMDsKIAotICBNQUxMT0MgKG51bGxhYmxlLCBkLT5kZXB0aCk7Cisg IG51bGxhYmxlID0geG5tYWxsb2MgKGQtPmRlcHRoLCBzaXplb2YgKm51bGxhYmxlKTsKICAg b19udWxsYWJsZSA9IG51bGxhYmxlOwotICBNQUxMT0MgKG5maXJzdHBvcywgZC0+ZGVwdGgp OworICBuZmlyc3Rwb3MgPSB4bm1hbGxvYyAoZC0+ZGVwdGgsIHNpemVvZiAqbmZpcnN0cG9z KTsKICAgb19uZmlyc3QgPSBuZmlyc3Rwb3M7Ci0gIE1BTExPQyAoZmlyc3Rwb3MsIGQtPm5s ZWF2ZXMpOworICBmaXJzdHBvcyA9IHhubWFsbG9jIChkLT5ubGVhdmVzLCBzaXplb2YgKmZp cnN0cG9zKTsKICAgb19maXJzdHBvcyA9IGZpcnN0cG9zLCBmaXJzdHBvcyArPSBkLT5ubGVh dmVzOwotICBNQUxMT0MgKG5sYXN0cG9zLCBkLT5kZXB0aCk7CisgIG5sYXN0cG9zID0geG5t YWxsb2MgKGQtPmRlcHRoLCBzaXplb2YgKm5sYXN0cG9zKTsKICAgb19ubGFzdCA9IG5sYXN0 cG9zOwotICBNQUxMT0MgKGxhc3Rwb3MsIGQtPm5sZWF2ZXMpOworICBsYXN0cG9zID0geG5t YWxsb2MgKGQtPm5sZWF2ZXMsIHNpemVvZiAqbGFzdHBvcyk7CiAgIG9fbGFzdHBvcyA9IGxh c3Rwb3MsIGxhc3Rwb3MgKz0gZC0+bmxlYXZlczsKICAgYWxsb2NfcG9zaXRpb25fc2V0ICgm bWVyZ2VkLCBkLT5ubGVhdmVzKTsKIAotICBDQUxMT0MgKGQtPmZvbGxvd3MsIGQtPnRpbmRl eCk7CisgIGQtPmZvbGxvd3MgPSB4Y2FsbG9jIChkLT50aW5kZXgsIHNpemVvZiAqZC0+Zm9s bG93cyk7CiAKICAgZm9yIChpID0gMDsgaSA8IGQtPnRpbmRleDsgKytpKQogICAgIHsKQEAg LTI1MTMsNyArMjUxNyw3IEBAIGRmYWFuYWx5emUgKHN0cnVjdCBkZmEgKmQsIGludCBzZWFy Y2hmbGFnKQogICAvKiBCdWlsZCB0aGUgaW5pdGlhbCBzdGF0ZS4gICovCiAgIGQtPnNhbGxv YyA9IDE7CiAgIGQtPnNpbmRleCA9IDA7Ci0gIE1BTExPQyAoZC0+c3RhdGVzLCBkLT5zYWxs b2MpOworICBkLT5zdGF0ZXMgPSB4bWFsbG9jIChzaXplb2YgKmQtPnN0YXRlcyk7CiAKICAg c2VwYXJhdGVfY29udGV4dHMgPSBzdGF0ZV9zZXBhcmF0ZV9jb250ZXh0cyAoJm1lcmdlZCk7 CiAgIHN0YXRlX2luZGV4IChkLCAmbWVyZ2VkLApAQCAtMjU4Miw4ICsyNTg2LDggQEAgZGZh c3RhdGUgKHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gdHJhbnNbXSkK ICAgYm9vbCBuZXh0X2lzbnRfMXN0X2J5dGUgPSBmYWxzZTsgLyogRmxhZyBpZiB3ZSBjYW4n dCBhZGQgc3RhdGUwLiAgKi8KICAgc2l6ZV90IGksIGosIGs7CiAKLSAgTUFMTE9DIChncnBz LCBOT1RDSEFSKTsKLSAgTUFMTE9DIChsYWJlbHMsIE5PVENIQVIpOworICBncnBzID0geG5t YWxsb2MgKE5PVENIQVIsIHNpemVvZiAqZ3Jwcyk7CisgIGxhYmVscyA9IHhubWFsbG9jIChO T1RDSEFSLCBzaXplb2YgKmxhYmVscyk7CiAKICAgemVyb3NldCAobWF0Y2hlcyk7CiAKQEAg LTI2NjksNyArMjY3Myw4IEBAIGRmYXN0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAq ZCwgc3RhdGVfbnVtIHRyYW5zW10pCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGNv cHlzZXQgKGxlZnRvdmVycywgbGFiZWxzW25ncnBzXSk7CiAgICAgICAgICAgICAgIGNvcHlz ZXQgKGludGVyc2VjdCwgbGFiZWxzW2pdKTsKLSAgICAgICAgICAgICAgTUFMTE9DIChncnBz W25ncnBzXS5lbGVtcywgZC0+bmxlYXZlcyk7CisgICAgICAgICAgICAgIGdycHNbbmdycHNd LmVsZW1zID0geG5tYWxsb2MgKGQtPm5sZWF2ZXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAqZ3Jwc1tuZ3Jwc10uZWxlbXMpOwogICAg ICAgICAgICAgICBtZW1jcHkgKGdycHNbbmdycHNdLmVsZW1zLCBncnBzW2pdLmVsZW1zLAog ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoZ3Jwc1tqXS5lbGVtc1swXSkgKiBncnBz W2pdLm5lbGVtKTsKICAgICAgICAgICAgICAgZ3Jwc1tuZ3Jwc10ubmVsZW0gPSBncnBzW2pd Lm5lbGVtOwpAQCAtMjY5Miw3ICsyNjk3LDcgQEAgZGZhc3RhdGUgKHN0YXRlX251bSBzLCBz dHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gdHJhbnNbXSkKICAgICAgICAgewogICAgICAgICAg IGNvcHlzZXQgKG1hdGNoZXMsIGxhYmVsc1tuZ3Jwc10pOwogICAgICAgICAgIHplcm9zZXQg KG1hdGNoZXMpOwotICAgICAgICAgIE1BTExPQyAoZ3Jwc1tuZ3Jwc10uZWxlbXMsIGQtPm5s ZWF2ZXMpOworICAgICAgICAgIGdycHNbbmdycHNdLmVsZW1zID0geG5tYWxsb2MgKGQtPm5s ZWF2ZXMsIHNpemVvZiAqZ3Jwc1tuZ3Jwc10uZWxlbXMpOwogICAgICAgICAgIGdycHNbbmdy cHNdLm5lbGVtID0gMTsKICAgICAgICAgICBncnBzW25ncnBzXS5lbGVtc1swXSA9IHBvcy5p bmRleDsKICAgICAgICAgICArK25ncnBzOwpAQCAtMjg1Nyw3ICsyODYyLDcgQEAgYnVpbGRf c3RhdGUgKHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkKQogICBpZiAoQUNDRVBUU19JTl9D T05URVhUIChkLT5zdGF0ZXNbc10uY29udGV4dCwgQ1RYX05PTkUsIHMsICpkKSkKICAgICBk LT5zdWNjZXNzW3NdIHw9IENUWF9OT05FOwogCi0gIE1BTExPQyAodHJhbnMsIE5PVENIQVIp OworICB0cmFucyA9IHhubWFsbG9jIChOT1RDSEFSLCBzaXplb2YgKnRyYW5zKTsKICAgZGZh c3RhdGUgKHMsIGQsIHRyYW5zKTsKIAogICAvKiBOb3cgZ28gdGhyb3VnaCB0aGUgbmV3IHRy YW5zaXRpb24gdGFibGUsIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGUgdHJhbnMKQEAgLTI4NzAs MTEgKzI4NzUsMTIgQEAgYnVpbGRfc3RhdGUgKHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpk KQogCiAgICAgICAgIHdoaWxlICh0cmFuc1tpXSA+PSBkLT50cmFsbG9jKQogICAgICAgICAg IGQtPnRyYWxsb2MgKj0gMjsKLSAgICAgICAgUkVBTExPQyAoZC0+cmVhbHRyYW5zLCBkLT50 cmFsbG9jICsgMSk7CisgICAgICAgIGQtPnJlYWx0cmFucyA9IHhucmVhbGxvYyAoZC0+cmVh bHRyYW5zLCBkLT50cmFsbG9jICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YgKmQtPnJlYWx0cmFucyk7CiAgICAgICAgIGQtPnRyYW5zID0gZC0+cmVh bHRyYW5zICsgMTsKLSAgICAgICAgUkVBTExPQyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2MpOwot ICAgICAgICBSRUFMTE9DIChkLT5zdWNjZXNzLCBkLT50cmFsbG9jKTsKLSAgICAgICAgUkVB TExPQyAoZC0+bmV3bGluZXMsIGQtPnRyYWxsb2MpOworICAgICAgICBkLT5mYWlscyA9IHhu cmVhbGxvYyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+ZmFpbHMpOworICAg ICAgICBkLT5zdWNjZXNzID0geG5yZWFsbG9jIChkLT5zdWNjZXNzLCBkLT50cmFsbG9jLCBz aXplb2YgKmQtPnN1Y2Nlc3MpOworICAgICAgICBkLT5uZXdsaW5lcyA9IHhucmVhbGxvYyAo ZC0+bmV3bGluZXMsIGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+bmV3bGluZXMpOwogICAgICAg ICB3aGlsZSAob2xkYWxsb2MgPCBkLT50cmFsbG9jKQogICAgICAgICAgIHsKICAgICAgICAg ICAgIGQtPnRyYW5zW29sZGFsbG9jXSA9IE5VTEw7CkBAIC0yODk4LDExICsyOTA0LDExIEBA IGJ1aWxkX3N0YXRlX3plcm8gKHN0cnVjdCBkZmEgKmQpCiB7CiAgIGQtPnRyYWxsb2MgPSAx OwogICBkLT50cmNvdW50ID0gMDsKLSAgQ0FMTE9DIChkLT5yZWFsdHJhbnMsIGQtPnRyYWxs b2MgKyAxKTsKKyAgZC0+cmVhbHRyYW5zID0geGNhbGxvYyAoZC0+dHJhbGxvYyArIDEsIHNp emVvZiAqZC0+cmVhbHRyYW5zKTsKICAgZC0+dHJhbnMgPSBkLT5yZWFsdHJhbnMgKyAxOwot ICBDQUxMT0MgKGQtPmZhaWxzLCBkLT50cmFsbG9jKTsKLSAgTUFMTE9DIChkLT5zdWNjZXNz LCBkLT50cmFsbG9jKTsKLSAgTUFMTE9DIChkLT5uZXdsaW5lcywgZC0+dHJhbGxvYyk7Cisg IGQtPmZhaWxzID0geGNhbGxvYyAoZC0+dHJhbGxvYywgc2l6ZW9mICpkLT5mYWlscyk7Cisg IGQtPnN1Y2Nlc3MgPSB4bm1hbGxvYyAoZC0+dHJhbGxvYywgc2l6ZW9mICpkLT5zdWNjZXNz KTsKKyAgZC0+bmV3bGluZXMgPSB4bm1hbGxvYyAoZC0+dHJhbGxvYywgc2l6ZW9mICpkLT5u ZXdsaW5lcyk7CiAgIGJ1aWxkX3N0YXRlICgwLCBkKTsKIH0KIApAQCAtMjk0MCwxMSArMjk0 NiwxMiBAQCByZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSAoc3RydWN0IGRmYSAqZCwgc3Rh dGVfbnVtIG5ld19zdGF0ZSkKIAogICAgICAgd2hpbGUgKG5ld19zdGF0ZSA+PSBkLT50cmFs bG9jKQogICAgICAgICBkLT50cmFsbG9jICo9IDI7Ci0gICAgICBSRUFMTE9DIChkLT5yZWFs dHJhbnMsIGQtPnRyYWxsb2MgKyAxKTsKKyAgICAgIGQtPnJlYWx0cmFucyA9IHhucmVhbGxv YyAoZC0+cmVhbHRyYW5zLCBkLT50cmFsbG9jICsgMSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mICpkLT5yZWFsdHJhbnMpOwogICAgICAgZC0+dHJhbnMgPSBk LT5yZWFsdHJhbnMgKyAxOwotICAgICAgUkVBTExPQyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2Mp OwotICAgICAgUkVBTExPQyAoZC0+c3VjY2VzcywgZC0+dHJhbGxvYyk7Ci0gICAgICBSRUFM TE9DIChkLT5uZXdsaW5lcywgZC0+dHJhbGxvYyk7CisgICAgICBkLT5mYWlscyA9IHhucmVh bGxvYyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+ZmFpbHMpOworICAgICAg ZC0+c3VjY2VzcyA9IHhucmVhbGxvYyAoZC0+c3VjY2VzcywgZC0+dHJhbGxvYywgc2l6ZW9m ICpkLT5zdWNjZXNzKTsKKyAgICAgIGQtPm5ld2xpbmVzID0geG5yZWFsbG9jIChkLT5uZXds aW5lcywgZC0+dHJhbGxvYywgc2l6ZW9mICpkLT5uZXdsaW5lcyk7CiAgICAgICB3aGlsZSAo b2xkYWxsb2MgPCBkLT50cmFsbG9jKQogICAgICAgICB7CiAgICAgICAgICAgZC0+dHJhbnNb b2xkYWxsb2NdID0gTlVMTDsKQEAgLTMzNzcsMTQgKzMzODQsMTYgQEAgZGZhZXhlYyAoc3Ry dWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKICAgaWYgKGQtPm1i X2N1cl9tYXggPiAxKQogICAgIHsKICAgICAgIHN0YXRpYyBib29sIG1iX2FsbG9jID0gZmFs c2U7Ci0gICAgICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAoZC0+bWJsZW5fYnVmLCBkLT5ubWJs ZW5fYnVmLCBlbmQgLSBiZWdpbiArIDIpOwotICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkg KGQtPmlucHV0d2NzLCBkLT5uaW5wdXR3Y3MsIGVuZCAtIGJlZ2luICsgMik7CisgICAgICBk LT5tYmxlbl9idWYgPSBtYXliZV9yZWFsbG9jIChkLT5tYmxlbl9idWYsIGVuZCAtIGJlZ2lu ICsgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkLT5ubWJsZW5f YnVmLCBzaXplb2YgKmQtPm1ibGVuX2J1Zik7CisgICAgICBkLT5pbnB1dHdjcyA9IG1heWJl X3JlYWxsb2MgKGQtPmlucHV0d2NzLCBlbmQgLSBiZWdpbiArIDIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZkLT5uaW5wdXR3Y3MsIHNpemVvZiAqZC0+aW5wdXR3 Y3MpOwogICAgICAgbWVtc2V0ICgmbWJzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOwogICAg ICAgcHJlcGFyZV93Y19idWYgKGQsIChjb25zdCBjaGFyICopIHAsIGVuZCk7CiAgICAgICBp ZiAoIW1iX2FsbG9jKQogICAgICAgICB7Ci0gICAgICAgICAgTUFMTE9DIChkLT5tYl9tYXRj aF9sZW5zLCBkLT5ubGVhdmVzKTsKLSAgICAgICAgICBNQUxMT0MgKGQtPm1iX2ZvbGxvd3Ms IDEpOworICAgICAgICAgIGQtPm1iX21hdGNoX2xlbnMgPSB4bm1hbGxvYyAoZC0+bmxlYXZl cywgc2l6ZW9mICpkLT5tYl9tYXRjaF9sZW5zKTsKKyAgICAgICAgICBkLT5tYl9mb2xsb3dz ID0geG1hbGxvYyAoc2l6ZW9mICpkLT5tYl9mb2xsb3dzKTsKICAgICAgICAgICBhbGxvY19w b3NpdGlvbl9zZXQgKGQtPm1iX2ZvbGxvd3MsIGQtPm5sZWF2ZXMpOwogICAgICAgICAgIG1i X2FsbG9jID0gdHJ1ZTsKICAgICAgICAgfQpAQCAtMzU2NiwxOSArMzU3NSwxOSBAQCBkZmFp bml0IChzdHJ1Y3QgZGZhICpkKQogICBtZW1zZXQgKGQsIDAsIHNpemVvZiAqZCk7CiAKICAg ZC0+Y2FsbG9jID0gMTsKLSAgTUFMTE9DIChkLT5jaGFyY2xhc3NlcywgZC0+Y2FsbG9jKTsK KyAgZC0+Y2hhcmNsYXNzZXMgPSB4bWFsbG9jIChzaXplb2YgKmQtPmNoYXJjbGFzc2VzKTsK IAogICBkLT50YWxsb2MgPSAxOwotICBNQUxMT0MgKGQtPnRva2VucywgZC0+dGFsbG9jKTsK KyAgZC0+dG9rZW5zID0geG1hbGxvYyAoc2l6ZW9mICpkLT50b2tlbnMpOwogCiAgIGQtPm1i X2N1cl9tYXggPSBNQl9DVVJfTUFYOwogCiAgIGlmIChkLT5tYl9jdXJfbWF4ID4gMSkKICAg ICB7CiAgICAgICBkLT5ubXVsdGlieXRlX3Byb3AgPSAxOwotICAgICAgTUFMTE9DIChkLT5t dWx0aWJ5dGVfcHJvcCwgZC0+bm11bHRpYnl0ZV9wcm9wKTsKKyAgICAgIGQtPm11bHRpYnl0 ZV9wcm9wID0geG1hbGxvYyAoc2l6ZW9mICpkLT5tdWx0aWJ5dGVfcHJvcCk7CiAgICAgICBk LT5tYmNzZXRzX2FsbG9jID0gMTsKLSAgICAgIE1BTExPQyAoZC0+bWJjc2V0cywgZC0+bWJj c2V0c19hbGxvYyk7CisgICAgICBkLT5tYmNzZXRzID0geG1hbGxvYyAoc2l6ZW9mICpkLT5t YmNzZXRzKTsKICAgICB9CiB9CiAKQEAgLTM2MzMsMTIgKzM2NDIsMTIgQEAgZGZhc3VwZXJz ZXQgKHN0cnVjdCBkZmEgKmQpCiAgIHN1cC0+bmV3bGluZXMgPSBOVUxMOwogICBzdXAtPm11 c3RzID0gTlVMTDsKIAotICBNQUxMT0MgKHN1cC0+Y2hhcmNsYXNzZXMsIHN1cC0+Y2FsbG9j KTsKKyAgc3VwLT5jaGFyY2xhc3NlcyA9IHhubWFsbG9jIChzdXAtPmNhbGxvYywgc2l6ZW9m ICpzdXAtPmNoYXJjbGFzc2VzKTsKICAgbWVtY3B5IChzdXAtPmNoYXJjbGFzc2VzLCBkLT5j aGFyY2xhc3NlcywKICAgICAgICAgICBkLT5jaW5kZXggKiBzaXplb2YgKnN1cC0+Y2hhcmNs YXNzZXMpOwogCiAgIHN1cC0+dGFsbG9jID0gZC0+dGluZGV4ICogMjsKLSAgTUFMTE9DIChz dXAtPnRva2Vucywgc3VwLT50YWxsb2MpOworICBzdXAtPnRva2VucyA9IHhubWFsbG9jIChz dXAtPnRhbGxvYywgc2l6ZW9mICpzdXAtPnRva2Vucyk7CiAKICAgZm9yIChpID0gaiA9IDA7 IGkgPCBkLT50aW5kZXg7IGkrKykKICAgICB7CkBAIC0zOTEwLDcgKzM5MTksNyBAQCBlbmxp c3QgKGNoYXIgKipjcHAsIGNoYXIgKm5ldywgc2l6ZV90IGxlbikKICAgICAgICAgY3BwW2ld ID0gTlVMTDsKICAgICAgIH0KICAgLyogQWRkIHRoZSBuZXcgc3RyaW5nLiAgKi8KLSAgUkVB TExPQyAoY3BwLCBpICsgMik7CisgIGNwcCA9IHhucmVhbGxvYyAoY3BwLCBpICsgMiwgc2l6 ZW9mICpjcHApOwogICBjcHBbaV0gPSBuZXc7CiAgIGNwcFtpICsgMV0gPSBOVUxMOwogICBy ZXR1cm4gY3BwOwpAQCAtNDA0Miw3ICs0MDUxLDcgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAq ZCkKIAogICByZXN1bHQgPSBlbXB0eV9zdHJpbmc7CiAgIGV4YWN0ID0gZmFsc2U7Ci0gIE1B TExPQyAobXVzdHMsIGQtPnRpbmRleCArIDEpOworICBtdXN0cyA9IHhubWFsbG9jIChkLT50 aW5kZXggKyAxLCBzaXplb2YgKm11c3RzKTsKICAgbXAgPSBtdXN0czsKICAgZm9yIChpID0g MDsgaSA8PSBkLT50aW5kZXg7ICsraSkKICAgICBtcFtpXSA9IG11c3QwOwpAQCAtNDI0Niw3 ICs0MjU1LDcgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKIGRvbmU6CiAgIGlmIChzdHJs ZW4gKHJlc3VsdCkpCiAgICAgewotICAgICAgTUFMTE9DIChkbSwgMSk7CisgICAgICBkbSA9 IHhtYWxsb2MgKHNpemVvZiAqZG0pOwogICAgICAgZG0tPmV4YWN0ID0gZXhhY3Q7CiAgICAg ICBkbS0+bXVzdCA9IHhtZW1kdXAgKHJlc3VsdCwgc3RybGVuIChyZXN1bHQpICsgMSk7CiAg ICAgICBkbS0+bmV4dCA9IGQtPm11c3RzOwotLSAKMS45LjAKCg== --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0002-dfa-avoid-unnecessary-work-and-other-initialization.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-dfa-avoid-unnecessary-work-and-other-initialization.pat"; filename*1="ch" RnJvbSBlNmY5NWU4OTFhYzNjZmM4ZjRlMjhkNmZkNmI3NzdiYzYxYWJlMzVjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE1IEFwciAyMDE0IDE3OjUwOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwMi8xMl0gZGZhOiBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrIGFuZCBvdGhlciBpbml0aWFs aXphdGlvbgoKKiBzcmMvZGZhLmMgKGRmYWFuYWx5emUsIGRmYWluaXQpOgpEb24ndCBib3Ro ZXIgYWxsb2NhdGluZyB3aGVuIHgybnJlYWxsb2Mgd2lsbCBkbyBpdCBmb3IgdXMuCihkZmFz dGF0ZSk6IEFsbG9jYXRlIGdycHMgYW5kIGxhYmVscyBvbiB0aGUgc3RhY2ssIGFzIHRoZWly CnNpemUgaXMga25vd24gYXQgY29tcGlsZSB0aW1lLgooYnVpbGRfc3RhdGUpOiBVc2UgeG1h bGxvYywgbm90IHhubWFsbG9jLCBzaW5jZSB0aGUgbXVsdGlwbGljYXRpb24KY2FuIGJlIGRv bmUgYXQgY29tcGlsZS10aW1lLgotLS0KIHNyYy9kZmEuYyB8IDMwICsrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMjcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4 IDllODg3NDIuLmNhZjliMDcgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZh LmMKQEAgLTI1MTUsMTAgKzI1MTUsNiBAQCBkZmFhbmFseXplIChzdHJ1Y3QgZGZhICpkLCBp bnQgc2VhcmNoZmxhZykKICAgZXBzY2xvc3VyZSAoJm1lcmdlZCwgZCk7CiAKICAgLyogQnVp bGQgdGhlIGluaXRpYWwgc3RhdGUuICAqLwotICBkLT5zYWxsb2MgPSAxOwotICBkLT5zaW5k ZXggPSAwOwotICBkLT5zdGF0ZXMgPSB4bWFsbG9jIChzaXplb2YgKmQtPnN0YXRlcyk7Ci0K ICAgc2VwYXJhdGVfY29udGV4dHMgPSBzdGF0ZV9zZXBhcmF0ZV9jb250ZXh0cyAoJm1lcmdl ZCk7CiAgIHN0YXRlX2luZGV4IChkLCAmbWVyZ2VkLAogICAgICAgICAgICAgICAgKHNlcGFy YXRlX2NvbnRleHRzICYgQ1RYX05FV0xJTkUKQEAgLTI1NjYsOCArMjU2Miw4IEBAIGRmYWFu YWx5emUgKHN0cnVjdCBkZmEgKmQsIGludCBzZWFyY2hmbGFnKQogdm9pZAogZGZhc3RhdGUg KHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gdHJhbnNbXSkKIHsKLSAg bGVhZl9zZXQgKmdycHM7ICAgICAgICAgICAgICAgLyogQXMgbWFueSBhcyB3aWxsIGV2ZXIg YmUgbmVlZGVkLiAgKi8KLSAgY2hhcmNsYXNzICpsYWJlbHM7ICAgICAgICAgICAgLyogTGFi ZWxzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdyb3Vwcy4gICovCisgIGxlYWZfc2V0IGdycHNb Tk9UQ0hBUl07ICAgICAgIC8qIEFzIG1hbnkgYXMgd2lsbCBldmVyIGJlIG5lZWRlZC4gICov CisgIGNoYXJjbGFzcyBsYWJlbHNbTk9UQ0hBUl07ICAgIC8qIExhYmVscyBjb3JyZXNwb25k aW5nIHRvIHRoZSBncm91cHMuICAqLwogICBzaXplX3QgbmdycHMgPSAwOyAgICAgICAgICAg ICAvKiBOdW1iZXIgb2YgZ3JvdXBzIGFjdHVhbGx5IHVzZWQuICAqLwogICBwb3NpdGlvbiBw b3M7ICAgICAgICAgICAgICAgICAvKiBDdXJyZW50IHBvc2l0aW9uIGJlaW5nIGNvbnNpZGVy ZWQuICAqLwogICBjaGFyY2xhc3MgbWF0Y2hlczsgICAgICAgICAgICAvKiBTZXQgb2YgbWF0 Y2hpbmcgY2hhcmFjdGVycy4gICovCkBAIC0yNTg2LDkgKzI1ODIsNiBAQCBkZmFzdGF0ZSAo c3RhdGVfbnVtIHMsIHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSB0cmFuc1tdKQogICBib29s IG5leHRfaXNudF8xc3RfYnl0ZSA9IGZhbHNlOyAvKiBGbGFnIGlmIHdlIGNhbid0IGFkZCBz dGF0ZTAuICAqLwogICBzaXplX3QgaSwgaiwgazsKIAotICBncnBzID0geG5tYWxsb2MgKE5P VENIQVIsIHNpemVvZiAqZ3Jwcyk7Ci0gIGxhYmVscyA9IHhubWFsbG9jIChOT1RDSEFSLCBz aXplb2YgKmxhYmVscyk7Ci0KICAgemVyb3NldCAobWF0Y2hlcyk7CiAKICAgZm9yIChpID0g MDsgaSA8IGQtPnN0YXRlc1tzXS5lbGVtcy5uZWxlbTsgKytpKQpAQCAtMjgxOSw4ICsyODEy LDYgQEAgZGZhc3RhdGUgKHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0g dHJhbnNbXSkKICAgICBmcmVlIChncnBzW2ldLmVsZW1zKTsKICAgZnJlZSAoZm9sbG93cy5l bGVtcyk7CiAgIGZyZWUgKHRtcC5lbGVtcyk7Ci0gIGZyZWUgKGdycHMpOwotICBmcmVlIChs YWJlbHMpOwogfQogCiAvKiBTb21lIHJvdXRpbmVzIGZvciBtYW5pcHVsYXRpbmcgYSBjb21w aWxlZCBkZmEncyB0cmFuc2l0aW9uIHRhYmxlcy4KQEAgLTI4NjIsNyArMjg1Myw3IEBAIGJ1 aWxkX3N0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAqZCkKICAgaWYgKEFDQ0VQVFNf SU5fQ09OVEVYVCAoZC0+c3RhdGVzW3NdLmNvbnRleHQsIENUWF9OT05FLCBzLCAqZCkpCiAg ICAgZC0+c3VjY2Vzc1tzXSB8PSBDVFhfTk9ORTsKIAotICB0cmFucyA9IHhubWFsbG9jIChO T1RDSEFSLCBzaXplb2YgKnRyYW5zKTsKKyAgdHJhbnMgPSB4bWFsbG9jIChOT1RDSEFSICog c2l6ZW9mICp0cmFucyk7CiAgIGRmYXN0YXRlIChzLCBkLCB0cmFucyk7CiAKICAgLyogTm93 IGdvIHRocm91Z2ggdGhlIG5ldyB0cmFuc2l0aW9uIHRhYmxlLCBhbmQgbWFrZSBzdXJlIHRo YXQgdGhlIHRyYW5zCkBAIC0zNTczLDIyICszNTY0LDcgQEAgdm9pZAogZGZhaW5pdCAoc3Ry dWN0IGRmYSAqZCkKIHsKICAgbWVtc2V0IChkLCAwLCBzaXplb2YgKmQpOwotCi0gIGQtPmNh bGxvYyA9IDE7Ci0gIGQtPmNoYXJjbGFzc2VzID0geG1hbGxvYyAoc2l6ZW9mICpkLT5jaGFy Y2xhc3Nlcyk7Ci0KLSAgZC0+dGFsbG9jID0gMTsKLSAgZC0+dG9rZW5zID0geG1hbGxvYyAo c2l6ZW9mICpkLT50b2tlbnMpOwotCiAgIGQtPm1iX2N1cl9tYXggPSBNQl9DVVJfTUFYOwot Ci0gIGlmIChkLT5tYl9jdXJfbWF4ID4gMSkKLSAgICB7Ci0gICAgICBkLT5ubXVsdGlieXRl X3Byb3AgPSAxOwotICAgICAgZC0+bXVsdGlieXRlX3Byb3AgPSB4bWFsbG9jIChzaXplb2Yg KmQtPm11bHRpYnl0ZV9wcm9wKTsKLSAgICAgIGQtPm1iY3NldHNfYWxsb2MgPSAxOwotICAg ICAgZC0+bWJjc2V0cyA9IHhtYWxsb2MgKHNpemVvZiAqZC0+bWJjc2V0cyk7Ci0gICAgfQog fQogCiBzdGF0aWMgdm9pZAotLSAKMS45LjAKCg== --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0003-dfa-better-size-overflow-check.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-dfa-better-size-overflow-check.patch" RnJvbSBmN2RjNWI1MTVjMzM5NDdjYjRjYWU0YzdhZDIxYjkyNThjYWEyZjEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE1IEFwciAyMDE0IDE3OjUxOjI1IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwMy8xMl0gZGZhOiBiZXR0ZXIgc2l6ZS1vdmVyZmxvdyBjaGVjawoKKiBzcmMvZGZhLmMg KGRmYXN1cGVyc2V0KTogTGV0IHhubWFsbG9jIGRvIHRoZSBtdWx0aXBsaWNhdGlvbiwKdG8g Y2hlY2sgZm9yIHNpemUgYXJpdGhtZXRpYyBvdmVyZmxvdyBiZXR0ZXIuCi0tLQogc3JjL2Rm YS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IGNhZjliMDcu LmM4MTY3NzQgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTM2 MjIsOCArMzYyMiw4IEBAIGRmYXN1cGVyc2V0IChzdHJ1Y3QgZGZhICpkKQogICBtZW1jcHkg KHN1cC0+Y2hhcmNsYXNzZXMsIGQtPmNoYXJjbGFzc2VzLAogICAgICAgICAgIGQtPmNpbmRl eCAqIHNpemVvZiAqc3VwLT5jaGFyY2xhc3Nlcyk7CiAKKyAgc3VwLT50b2tlbnMgPSB4bm1h bGxvYyAoZC0+dGluZGV4LCAyICogc2l6ZW9mICpzdXAtPnRva2Vucyk7CiAgIHN1cC0+dGFs bG9jID0gZC0+dGluZGV4ICogMjsKLSAgc3VwLT50b2tlbnMgPSB4bm1hbGxvYyAoc3VwLT50 YWxsb2MsIHNpemVvZiAqc3VwLT50b2tlbnMpOwogCiAgIGZvciAoaSA9IGogPSAwOyBpIDwg ZC0+dGluZGV4OyBpKyspCiAgICAgewotLSAKMS45LjAKCg== --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0004-dfa-simplify-transition-table-allocation.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0004-dfa-simplify-transition-table-allocation.patch" RnJvbSBkNDMyODVlNmJlNzdmYzgyMTBjYWY1NTNmM2IyZjRiNjRiNWVjMTkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE1IEFwciAyMDE0IDE5OjA0OjQwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwNC8xMl0gZGZhOiBzaW1wbGlmeSB0cmFuc2l0aW9uIHRhYmxlIGFsbG9jYXRpb24KCiog c3JjL2RmYS5jIChzdHJ1Y3QgZGZhKTogUmVtb3ZlIG1lbWJlciAncmVhbHRyYW5zJywgYXMg aXQgY2FuCmJlIGNvbXB1dGVkIGZyb20gJ3RyYW5zJy4gIEFsbCB1c2VzIGNoYW5nZWQuCihy ZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSk6IE1vdmUgZWFybGllciwgdG8gYXZvaWQgYSBm b3J3YXJkIGRlY2wuClVzZSB4Mm5yZWFsbG9jIHRvIGNvbXB1dGUgbmV3IHNpemUsIHJhdGhl ciB0aGFuIGRvaW5nIGl0IGJ5IGhhbmQsCndoaWNoIG9taXRzIGEgY2hlY2sgZm9yIHVubGlr ZWx5IG92ZXJmbG93LgoocmVhbGxvY190cmFuc19pZl9uZWNlc3NhcnksIGRmYWZyZWUpOiBB ZGp1c3QgdG8gdGhlIGZhY3QgdGhhdApkLT50cmFucyBub3cgbWlnaHQgYmUgZWl0aGVyIE5V TEwsIG9yIDEgKyB0aGUgcG9pbnRlciB0byBmcmVlLgooYnVpbGRfc3RhdGUsIGJ1aWxkX3N0 YXRlX3plcm8pOiBVc2UgcmVhbGxvY190cmFuc19pZl9uZWNlc3NhcnkKaW5zdGVhZCBvZiBk dXBsaWNhdGluZyBpdHMgY29kZS4KLS0tCiBzcmMvZGZhLmMgfCAxMTcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggYzgxNjc3NC4uYzQ3ZjNlMCAx MDA2NDQKLS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMzk2LDE2ICszOTYs MTYgQEAgc3RydWN0IGRmYQogCiAgIC8qIEZpZWxkcyBmaWxsZWQgYnkgZGZhZXhlYy4gICov CiAgIHN0YXRlX251bSB0cmFsbG9jOyAgICAgICAgICAgIC8qIE51bWJlciBvZiB0cmFuc2l0 aW9uIHRhYmxlcyB0aGF0IGhhdmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2xvdHMgc28gZmFyLiAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2xvdHMgc28gZmFyLCBub3QgY291bnRpbmcgdHJhbnNbLTFdLiAgKi8KICAgaW50IHRy Y291bnQ7ICAgICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHRyYW5zaXRpb24gdGFibGVz IHRoYXQgaGF2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxs eSBiZWVuIGJ1aWx0LiAgKi8KICAgc3RhdGVfbnVtICoqdHJhbnM7ICAgICAgICAgICAgLyog VHJhbnNpdGlvbiB0YWJsZXMgZm9yIHN0YXRlcyB0aGF0IGNhbgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuZXZlciBhY2NlcHQuICBJZiB0aGUgdHJhbnNpdGlvbnMg Zm9yIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgaGF2ZSBu b3QgeWV0IGJlZW4gY29tcHV0ZWQsIG9yIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGF0ZSBjb3VsZCBwb3NzaWJseSBhY2NlcHQsIGl0cyBlbnRyeSBpbgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHRhYmxlIGlzIE5VTEwu ICAqLwotICBzdGF0ZV9udW0gKipyZWFsdHJhbnM7ICAgICAgICAvKiBUcmFucyBhbHdheXMg cG9pbnRzIHRvIHJlYWx0cmFucyArIDE7IHRoaXMKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaXMgc28gdHJhbnNbLTFdIGNhbiBjb250YWluIE5VTEwuICAqLworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHRhYmxlIGlzIE5VTEwuICBU aGlzIHBvaW50cyB0byBvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFzdCB0aGUgc3RhcnQgb2YgdGhlIGFsbG9jYXRlZCBhcnJheSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW5kIHRyYW5zWy0xXSBpcyBhbHdheXMgTlVMTC4gICov CiAgIHN0YXRlX251bSAqKmZhaWxzOyAgICAgICAgICAgIC8qIFRyYW5zaXRpb24gdGFibGVz IGFmdGVyIGZhaWxpbmcgdG8gYWNjZXB0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uIGEgc3RhdGUgdGhhdCBwb3RlbnRpYWxseSBjb3VsZCBkbyBzby4gICovCiAg IGludCAqc3VjY2VzczsgICAgICAgICAgICAgICAgIC8qIFRhYmxlIG9mIGFjY2VwdGFuY2Ug Y29uZGl0aW9ucyB1c2VkIGluCkBAIC0yODE0LDYgKzI4MTQsMzAgQEAgZGZhc3RhdGUgKHN0 YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gdHJhbnNbXSkKICAgZnJlZSAo dG1wLmVsZW1zKTsKIH0KIAorLyogTWFrZSBzdXJlIEQncyBzdGF0ZSBhcnJheXMgYXJlIGxh cmdlIGVub3VnaCB0byBob2xkIE5FV19TVEFURS4gICovCitzdGF0aWMgdm9pZAorcmVhbGxv Y190cmFuc19pZl9uZWNlc3NhcnkgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBuZXdfc3Rh dGUpCit7CisgIGlmIChkLT50cmFsbG9jIDw9IG5ld19zdGF0ZSkKKyAgICB7CisgICAgICBz dGF0ZV9udW0gKipyZWFsdHJhbnMgPSBkLT50cmFucyA/IGQtPnRyYW5zIC0gMSA6IE5VTEw7 CisgICAgICBzdGF0ZV9udW0gb2xkYWxsb2MgPSBkLT50cmFsbG9jOworICAgICAgZC0+dHJh bGxvYyA9IG5ld19zdGF0ZSArIDE7CisgICAgICByZWFsdHJhbnMgPSB4Mm5yZWFsbG9jIChy ZWFsdHJhbnMsICZkLT50cmFsbG9jLCBzaXplb2YgKnJlYWx0cmFucyk7CisgICAgICByZWFs dHJhbnNbMF0gPSBOVUxMOworICAgICAgZC0+dHJhbnMgPSByZWFsdHJhbnMgKyAxOworICAg ICAgZC0+dHJhbGxvYy0tOworICAgICAgZC0+ZmFpbHMgPSB4bnJlYWxsb2MgKGQtPmZhaWxz LCBkLT50cmFsbG9jLCBzaXplb2YgKmQtPmZhaWxzKTsKKyAgICAgIGQtPnN1Y2Nlc3MgPSB4 bnJlYWxsb2MgKGQtPnN1Y2Nlc3MsIGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+c3VjY2Vzcyk7 CisgICAgICBkLT5uZXdsaW5lcyA9IHhucmVhbGxvYyAoZC0+bmV3bGluZXMsIGQtPnRyYWxs b2MsIHNpemVvZiAqZC0+bmV3bGluZXMpOworICAgICAgZm9yICg7IG9sZGFsbG9jIDwgZC0+ dHJhbGxvYzsgb2xkYWxsb2MrKykKKyAgICAgICAgeworICAgICAgICAgIGQtPnRyYW5zW29s ZGFsbG9jXSA9IE5VTEw7CisgICAgICAgICAgZC0+ZmFpbHNbb2xkYWxsb2NdID0gTlVMTDsK KyAgICAgICAgfQorICAgIH0KK30KKwogLyogU29tZSByb3V0aW5lcyBmb3IgbWFuaXB1bGF0 aW5nIGEgY29tcGlsZWQgZGZhJ3MgdHJhbnNpdGlvbiB0YWJsZXMuCiAgICBFYWNoIHN0YXRl IG1heSBvciBtYXkgbm90IGhhdmUgYSB0cmFuc2l0aW9uIHRhYmxlOyBpZiBpdCBkb2VzLCBh bmQgaXQKICAgIGlzIGEgbm9uLWFjY2VwdGluZyBzdGF0ZSwgdGhlbiBkLT50cmFuc1tzdGF0 ZV0gcG9pbnRzIHRvIGl0cyB0YWJsZS4KQEAgLTI4MjUsNyArMjg0OSw3IEBAIHN0YXRpYyB2 b2lkCiBidWlsZF9zdGF0ZSAoc3RhdGVfbnVtIHMsIHN0cnVjdCBkZmEgKmQpCiB7CiAgIHN0 YXRlX251bSAqdHJhbnM7ICAgICAgICAgICAgIC8qIFRoZSBuZXcgdHJhbnNpdGlvbiB0YWJs ZS4gICovCi0gIHN0YXRlX251bSBpOworICBzdGF0ZV9udW0gaSwgbWF4c3RhdGU7CiAKICAg LyogU2V0IGFuIHVwcGVyIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgdHJhbnNpdGlvbiB0YWJs ZXMgdGhhdCB3aWxsIGV2ZXIKICAgICAgZXhpc3QgYXQgb25jZS4gIDEwMjQgaXMgYXJiaXRy YXJ5LiAgVGhlIGlkZWEgaXMgdGhhdCB0aGUgZnJlcXVlbnRseQpAQCAtMjg1OSwyNSArMjg4 MywxMSBAQCBidWlsZF9zdGF0ZSAoc3RhdGVfbnVtIHMsIHN0cnVjdCBkZmEgKmQpCiAgIC8q IE5vdyBnbyB0aHJvdWdoIHRoZSBuZXcgdHJhbnNpdGlvbiB0YWJsZSwgYW5kIG1ha2Ugc3Vy ZSB0aGF0IHRoZSB0cmFucwogICAgICBhbmQgZmFpbCBhcnJheXMgYXJlIGFsbG9jYXRlZCBs YXJnZSBlbm91Z2ggdG8gaG9sZCBhIHBvaW50ZXIgZm9yIHRoZQogICAgICBsYXJnZXN0IHN0 YXRlIG1lbnRpb25lZCBpbiB0aGUgdGFibGUuICAqLworICBtYXhzdGF0ZSA9IC0xOwogICBm b3IgKGkgPSAwOyBpIDwgTk9UQ0hBUjsgKytpKQotICAgIGlmICh0cmFuc1tpXSA+PSBkLT50 cmFsbG9jKQotICAgICAgewotICAgICAgICBzdGF0ZV9udW0gb2xkYWxsb2MgPSBkLT50cmFs bG9jOwotCi0gICAgICAgIHdoaWxlICh0cmFuc1tpXSA+PSBkLT50cmFsbG9jKQotICAgICAg ICAgIGQtPnRyYWxsb2MgKj0gMjsKLSAgICAgICAgZC0+cmVhbHRyYW5zID0geG5yZWFsbG9j IChkLT5yZWFsdHJhbnMsIGQtPnRyYWxsb2MgKyAxLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZiAqZC0+cmVhbHRyYW5zKTsKLSAgICAgICAgZC0+dHJhbnMg PSBkLT5yZWFsdHJhbnMgKyAxOwotICAgICAgICBkLT5mYWlscyA9IHhucmVhbGxvYyAoZC0+ ZmFpbHMsIGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+ZmFpbHMpOwotICAgICAgICBkLT5zdWNj ZXNzID0geG5yZWFsbG9jIChkLT5zdWNjZXNzLCBkLT50cmFsbG9jLCBzaXplb2YgKmQtPnN1 Y2Nlc3MpOwotICAgICAgICBkLT5uZXdsaW5lcyA9IHhucmVhbGxvYyAoZC0+bmV3bGluZXMs IGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+bmV3bGluZXMpOwotICAgICAgICB3aGlsZSAob2xk YWxsb2MgPCBkLT50cmFsbG9jKQotICAgICAgICAgIHsKLSAgICAgICAgICAgIGQtPnRyYW5z W29sZGFsbG9jXSA9IE5VTEw7Ci0gICAgICAgICAgICBkLT5mYWlsc1tvbGRhbGxvYysrXSA9 IE5VTEw7Ci0gICAgICAgICAgfQotICAgICAgfQorICAgIGlmIChtYXhzdGF0ZSA8IHRyYW5z W2ldKQorICAgICAgbWF4c3RhdGUgPSB0cmFuc1tpXTsKKyAgcmVhbGxvY190cmFuc19pZl9u ZWNlc3NhcnkgKGQsIG1heHN0YXRlKTsKIAogICAvKiBLZWVwIHRoZSBuZXdsaW5lIHRyYW5z aXRpb24gaW4gYSBzcGVjaWFsIHBsYWNlIHNvIHdlIGNhbiB1c2UgaXQgYXMKICAgICAgYSBz ZW50aW5lbC4gICovCkBAIC0yODkzLDEzICsyOTAzLDE2IEBAIGJ1aWxkX3N0YXRlIChzdGF0 ZV9udW0gcywgc3RydWN0IGRmYSAqZCkKIHN0YXRpYyB2b2lkCiBidWlsZF9zdGF0ZV96ZXJv IChzdHJ1Y3QgZGZhICpkKQogewotICBkLT50cmFsbG9jID0gMTsKKyAgLyogSW5pdGlhbCBz aXplIG9mIHRoZSB0cmFuc2l0aW9uIHRhYmxlczsgbXVzdCBiZSBwb3NpdGl2ZS4gICovCisg IGludCBpbml0aWFsX3RhYl9zaXplID0gMTsKKworICBkLT50cmFsbG9jID0gMDsKICAgZC0+ dHJjb3VudCA9IDA7Ci0gIGQtPnJlYWx0cmFucyA9IHhjYWxsb2MgKGQtPnRyYWxsb2MgKyAx LCBzaXplb2YgKmQtPnJlYWx0cmFucyk7Ci0gIGQtPnRyYW5zID0gZC0+cmVhbHRyYW5zICsg MTsKLSAgZC0+ZmFpbHMgPSB4Y2FsbG9jIChkLT50cmFsbG9jLCBzaXplb2YgKmQtPmZhaWxz KTsKLSAgZC0+c3VjY2VzcyA9IHhubWFsbG9jIChkLT50cmFsbG9jLCBzaXplb2YgKmQtPnN1 Y2Nlc3MpOwotICBkLT5uZXdsaW5lcyA9IHhubWFsbG9jIChkLT50cmFsbG9jLCBzaXplb2Yg KmQtPm5ld2xpbmVzKTsKKyAgZC0+dHJhbnMgPSBOVUxMOworICBkLT5mYWlscyA9IE5VTEw7 CisgIGQtPnN1Y2Nlc3MgPSBOVUxMOworICBkLT5uZXdsaW5lcyA9IE5VTEw7CisgIHJlYWxs b2NfdHJhbnNfaWZfbmVjZXNzYXJ5IChkLCBpbml0aWFsX3RhYl9zaXplKTsKICAgYnVpbGRf c3RhdGUgKDAsIGQpOwogfQogCkBAIC0yOTI2LDMxICsyOTM5LDYgQEAgYnVpbGRfc3RhdGVf emVybyAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgfQkJCQkJCVwKICAgICB9CiAKLXN0YXRp YyB2b2lkCi1yZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSAoc3RydWN0IGRmYSAqZCwgc3Rh dGVfbnVtIG5ld19zdGF0ZSkKLXsKLSAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIHRyYW5zIGFu ZCBmYWlsIGFycmF5cyBhcmUgYWxsb2NhdGVkIGxhcmdlIGVub3VnaAotICAgICB0byBob2xk IGEgcG9pbnRlciBmb3IgdGhlIG5ldyBzdGF0ZS4gICovCi0gIGlmIChuZXdfc3RhdGUgPj0g ZC0+dHJhbGxvYykKLSAgICB7Ci0gICAgICBzdGF0ZV9udW0gb2xkYWxsb2MgPSBkLT50cmFs bG9jOwotCi0gICAgICB3aGlsZSAobmV3X3N0YXRlID49IGQtPnRyYWxsb2MpCi0gICAgICAg IGQtPnRyYWxsb2MgKj0gMjsKLSAgICAgIGQtPnJlYWx0cmFucyA9IHhucmVhbGxvYyAoZC0+ cmVhbHRyYW5zLCBkLT50cmFsbG9jICsgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mICpkLT5yZWFsdHJhbnMpOwotICAgICAgZC0+dHJhbnMgPSBkLT5yZWFs dHJhbnMgKyAxOwotICAgICAgZC0+ZmFpbHMgPSB4bnJlYWxsb2MgKGQtPmZhaWxzLCBkLT50 cmFsbG9jLCBzaXplb2YgKmQtPmZhaWxzKTsKLSAgICAgIGQtPnN1Y2Nlc3MgPSB4bnJlYWxs b2MgKGQtPnN1Y2Nlc3MsIGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+c3VjY2Vzcyk7Ci0gICAg ICBkLT5uZXdsaW5lcyA9IHhucmVhbGxvYyAoZC0+bmV3bGluZXMsIGQtPnRyYWxsb2MsIHNp emVvZiAqZC0+bmV3bGluZXMpOwotICAgICAgd2hpbGUgKG9sZGFsbG9jIDwgZC0+dHJhbGxv YykKLSAgICAgICAgewotICAgICAgICAgIGQtPnRyYW5zW29sZGFsbG9jXSA9IE5VTEw7Ci0g ICAgICAgICAgZC0+ZmFpbHNbb2xkYWxsb2MrK10gPSBOVUxMOwotICAgICAgICB9Ci0gICAg fQotfQotCiAvKiBSZXR1cm4gdmFsdWVzIG9mIHRyYW5zaXRfc3RhdGVfc2luZ2xlYnl0ZSwg YW5kCiAgICB0cmFuc2l0X3N0YXRlX2NvbnN1bWVfMWNoYXIuICAqLwogdHlwZWRlZiBlbnVt CkBAIC0zNjEyLDcgKzM2MDAsNyBAQCBkZmFzdXBlcnNldCAoc3RydWN0IGRmYSAqZCkKICAg c3VwLT5zaW5kZXggPSAwOwogICBzdXAtPmZvbGxvd3MgPSBOVUxMOwogICBzdXAtPnRyYWxs b2MgPSAwOwotICBzdXAtPnJlYWx0cmFucyA9IE5VTEw7CisgIHN1cC0+dHJhbnMgPSBOVUxM OwogICBzdXAtPmZhaWxzID0gTlVMTDsKICAgc3VwLT5zdWNjZXNzID0gTlVMTDsKICAgc3Vw LT5uZXdsaW5lcyA9IE5VTEw7CkBAIC0zNzA5LDE2ICszNjk3LDE5IEBAIGRmYWZyZWUgKHN0 cnVjdCBkZmEgKmQpCiAgICAgICBmcmVlIChkLT5mb2xsb3dzKTsKICAgICB9CiAKLSAgZm9y IChpID0gMDsgaSA8IGQtPnRyYWxsb2M7ICsraSkKKyAgaWYgKGQtPnRyYW5zKQogICAgIHsK LSAgICAgIGZyZWUgKGQtPnRyYW5zW2ldKTsKLSAgICAgIGZyZWUgKGQtPmZhaWxzW2ldKTsK LSAgICB9CisgICAgICBmb3IgKGkgPSAwOyBpIDwgZC0+dHJhbGxvYzsgKytpKQorICAgICAg ICB7CisgICAgICAgICAgZnJlZSAoZC0+dHJhbnNbaV0pOworICAgICAgICAgIGZyZWUgKGQt PmZhaWxzW2ldKTsKKyAgICAgICAgfQogCi0gIGZyZWUgKGQtPnJlYWx0cmFucyk7Ci0gIGZy ZWUgKGQtPmZhaWxzKTsKLSAgZnJlZSAoZC0+bmV3bGluZXMpOwotICBmcmVlIChkLT5zdWNj ZXNzKTsKKyAgICAgIGZyZWUgKGQtPnRyYW5zIC0gMSk7CisgICAgICBmcmVlIChkLT5mYWls cyk7CisgICAgICBmcmVlIChkLT5uZXdsaW5lcyk7CisgICAgICBmcmVlIChkLT5zdWNjZXNz KTsKKyAgICB9CiAKICAgZm9yIChkbSA9IGQtPm11c3RzOyBkbTsgZG0gPSBuZG0pCiAgICAg ewotLSAKMS45LjAKCg== --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0005-dfa-simplify-range-char-allocation.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0005-dfa-simplify-range-char-allocation.patch" RnJvbSA5M2JkZmYwNjFiYjYxOTJkZGQ5Zjg5YjkwYWMxNTc5N2E5Y2UxZWQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE1IEFwciAyMDE0IDE5OjIwOjIxIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwNS8xMl0gZGZhOiBzaW1wbGlmeSByYW5nZSBjaGFyIGFsbG9jYXRpb24KCiogc3JjL2Rm YS5jIChzdHJ1Y3QgZGZhKTogU2ltcGxpZnkgYnkgYWxsb2NhdGluZyBvbmUgYXJyYXkgb2Yg cmFuZ2VzCnJhdGhlciB0aGFuIG9uZSBmb3IgcmFuZ2Ugc3RhcnRzIGFuZCBhbm90aGVyIGZv ciByYW5nZSBlbmRzLgpBbGwgdXNlcyBjaGFuZ2VkLgotLS0KIHNyYy9kZmEuYyB8IDUxICsr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCBjNDdmM2UwLi5hM2U4YmQwIDEw MDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zMDcsOCArMzA3LDEx IEBAIHN0cnVjdCBtYl9jaGFyX2NsYXNzZXMKICAgc2l6ZV90IG5jaGFyczsKICAgd2N0eXBl X3QgKmNoX2NsYXNzZXM7ICAgICAgICAgLyogQ2hhcmFjdGVyIGNsYXNzZXMuICAqLwogICBz aXplX3QgbmNoX2NsYXNzZXM7Ci0gIHdjaGFyX3QgKnJhbmdlX3N0czsgICAgICAgICAgIC8q IFJhbmdlIGNoYXJhY3RlcnMgKHN0YXJ0IG9mIHRoZSByYW5nZSkuICAqLwotICB3Y2hhcl90 ICpyYW5nZV9lbmRzOyAgICAgICAgICAvKiBSYW5nZSBjaGFyYWN0ZXJzIChlbmQgb2YgdGhl IHJhbmdlKS4gICovCisgIHN0cnVjdAkJCS8qIFJhbmdlIGNoYXJhY3RlcnMuICAqLworICB7 CisgICAgd2NoYXJfdCBiZWc7CQkvKiBSYW5nZSBzdGFydC4gICovCisgICAgd2NoYXJfdCBl bmQ7CQkvKiBSYW5nZSBlbmQuICAqLworICB9ICpyYW5nZXM7CiAgIHNpemVfdCBucmFuZ2Vz OwogICBjaGFyICoqZXF1aXZzOyAgICAgICAgICAgICAgICAvKiBFcXVpdmFsZW5jZSBjbGFz c2VzLiAgKi8KICAgc2l6ZV90IG5lcXVpdnM7CkBAIC0xMDAzLDEyICsxMDA2LDkgQEAgcGFy c2VfYnJhY2tldF9leHAgKHZvaWQpCiAKICAgLyogV29yayBhcmVhIHRvIGJ1aWxkIGEgbWJf Y2hhcl9jbGFzc2VzLiAgKi8KICAgc3RydWN0IG1iX2NoYXJfY2xhc3NlcyAqd29ya19tYmM7 Ci0gIHNpemVfdCBjaGFyc19hbCwgcmFuZ2Vfc3RzX2FsLCByYW5nZV9lbmRzX2FsLCBjaF9j bGFzc2VzX2FsLAotICAgIGVxdWl2c19hbCwgY29sbF9lbGVtc19hbDsKKyAgc2l6ZV90IGNo YXJzX2FsLCByYW5nZXNfYWwsIGNoX2NsYXNzZXNfYWwsIGVxdWl2c19hbCwgY29sbF9lbGVt c19hbDsKIAotICBjaGFyc19hbCA9IDA7Ci0gIHJhbmdlX3N0c19hbCA9IHJhbmdlX2VuZHNf YWwgPSAwOwotICBjaF9jbGFzc2VzX2FsID0gZXF1aXZzX2FsID0gY29sbF9lbGVtc19hbCA9 IDA7CisgIGNoYXJzX2FsID0gcmFuZ2VzX2FsID0gY2hfY2xhc3Nlc19hbCA9IGVxdWl2c19h bCA9IGNvbGxfZWxlbXNfYWwgPSAwOwogICBpZiAoTUJfQ1VSX01BWCA+IDEpCiAgICAgewog ICAgICAgZGZhLT5tYmNzZXRzID0gbWF5YmVfcmVhbGxvYyAoZGZhLT5tYmNzZXRzLCBkZmEt Pm5tYmNzZXRzLApAQCAtMTE0NiwzMSArMTE0NiwxOSBAQCBwYXJzZV9icmFja2V0X2V4cCAo dm9pZCkKICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBwYWlyIG9mIHJhbmdlcywgW20t el0gW00tWl0uICBBbHRob3VnaCB0aGlzIGNvZGUKICAgICAgICAgICAgICAgICAgICAgIGlz IHdyb25nIGluIG11bHRpcGxlIHdheXMsIGl0J3MgbmV2ZXIgdXNlZCBpbiBwcmFjdGljZS4K ICAgICAgICAgICAgICAgICAgICAgIEZJWE1FOiBSZW1vdmUgdGhpcyAoYW5kIHJlbGF0ZWQp IHVudXNlZCBjb2RlLiAgKi8KLSAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZV9z dHMKLSAgICAgICAgICAgICAgICAgICAgPSBtYXliZV9yZWFsbG9jICh3b3JrX21iYy0+cmFu Z2Vfc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJj LT5ucmFuZ2VzLCAmcmFuZ2Vfc3RzX2FsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZiAqd29ya19tYmMtPnJhbmdlX3N0cyk7Ci0gICAgICAgICAgICAg ICAgICB3b3JrX21iYy0+cmFuZ2VfZW5kcwotICAgICAgICAgICAgICAgICAgICA9IG1heWJl X3JlYWxsb2MgKHdvcmtfbWJjLT5yYW5nZV9lbmRzLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5ucmFuZ2VzLCAmcmFuZ2VfZW5kc19hbCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5y YW5nZV9lbmRzKTsKLSAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZV9zdHNbd29y a19tYmMtPm5yYW5nZXNdID0KLSAgICAgICAgICAgICAgICAgICAgY2FzZV9mb2xkID8gdG93 bG93ZXIgKHdjKSA6ICh3Y2hhcl90KSB3YzsKLSAgICAgICAgICAgICAgICAgIHdvcmtfbWJj LT5yYW5nZV9lbmRzW3dvcmtfbWJjLT5ucmFuZ2VzKytdID0KLSAgICAgICAgICAgICAgICAg ICAgY2FzZV9mb2xkID8gdG93bG93ZXIgKHdjMikgOiAod2NoYXJfdCkgd2MyOworICAgICAg ICAgICAgICAgICAgd29ya19tYmMtPnJhbmdlcworICAgICAgICAgICAgICAgICAgICA9IG1h eWJlX3JlYWxsb2MgKHdvcmtfbWJjLT5yYW5nZXMsIHdvcmtfbWJjLT5ucmFuZ2VzICsgMSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmFuZ2VzX2FsLCBzaXpl b2YgKndvcmtfbWJjLT5yYW5nZXMpOworICAgICAgICAgICAgICAgICAgd29ya19tYmMtPnJh bmdlc1t3b3JrX21iYy0+bnJhbmdlc10uYmVnCisgICAgICAgICAgICAgICAgICAgID0gY2Fz ZV9mb2xkID8gdG93bG93ZXIgKHdjKSA6IHdjOworICAgICAgICAgICAgICAgICAgd29ya19t YmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlcysrXS5lbmQKKyAgICAgICAgICAgICAgICAg ICAgPSBjYXNlX2ZvbGQgPyB0b3dsb3dlciAod2MyKSA6IHdjMjsKIAogICAgICAgICAgICAg ICAgICAgaWYgKGNhc2VfZm9sZCAmJiAoaXN3YWxwaGEgKHdjKSB8fCBpc3dhbHBoYSAod2My KSkpCiAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICB3b3Jr X21iYy0+cmFuZ2Vfc3RzCi0gICAgICAgICAgICAgICAgICAgICAgICA9IG1heWJlX3JlYWxs b2MgKHdvcmtfbWJjLT5yYW5nZV9zdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHdvcmtfbWJjLT5ucmFuZ2VzLCAmcmFuZ2Vfc3RzX2FsLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5y YW5nZV9zdHMpOwotICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZV9zdHNb d29ya19tYmMtPm5yYW5nZXNdID0gdG93dXBwZXIgKHdjKTsKLSAgICAgICAgICAgICAgICAg ICAgICB3b3JrX21iYy0+cmFuZ2VfZW5kcwotICAgICAgICAgICAgICAgICAgICAgICAgPSBt YXliZV9yZWFsbG9jICh3b3JrX21iYy0+cmFuZ2VfZW5kcywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPm5yYW5nZXMsICZyYW5nZV9lbmRz X2FsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yg KndvcmtfbWJjLT5yYW5nZV9lbmRzKTsKLSAgICAgICAgICAgICAgICAgICAgICB3b3JrX21i Yy0+cmFuZ2VfZW5kc1t3b3JrX21iYy0+bnJhbmdlcysrXSA9IHRvd3VwcGVyICh3YzIpOwor ICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZXNbd29ya19tYmMtPm5yYW5n ZXNdLmJlZyA9IHRvd3VwcGVyICh3Yyk7CisgICAgICAgICAgICAgICAgICAgICAgd29ya19t YmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlcysrXS5lbmQKKyAgICAgICAgICAgICAgICAg ICAgICAgID0gdG93dXBwZXIgKHdjMik7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UgaWYgKHVzaW5nX3NpbXBsZV9sb2Nh bGUgKCkpCkBAIC0zMTEzLDcgKzMxMDEsNyBAQCBtYXRjaF9tYl9jaGFyc2V0IChzdHJ1Y3Qg ZGZhICpkLCBzdGF0ZV9udW0gcywgcG9zaXRpb24gcG9zLCBzaXplX3QgaWR4KQogICAvKiBt YXRjaCB3aXRoIGEgcmFuZ2U/ICAqLwogICBmb3IgKGkgPSAwOyBpIDwgd29ya19tYmMtPm5y YW5nZXM7IGkrKykKICAgICB7Ci0gICAgICBpZiAod29ya19tYmMtPnJhbmdlX3N0c1tpXSA8 PSB3YyAmJiB3YyA8PSB3b3JrX21iYy0+cmFuZ2VfZW5kc1tpXSkKKyAgICAgIGlmICh3b3Jr X21iYy0+cmFuZ2VzW2ldLmJlZyA8PSB3YyAmJiB3YyA8PSB3b3JrX21iYy0+cmFuZ2VzW2ld LmVuZCkKICAgICAgICAgZ290byBjaGFyc2V0X21hdGNoZWQ7CiAgICAgfQogCkBAIC0zNTIw LDggKzM1MDgsNyBAQCBmcmVlX21iZGF0YSAoc3RydWN0IGRmYSAqZCkKICAgICAgIHN0cnVj dCBtYl9jaGFyX2NsYXNzZXMgKnAgPSAmKGQtPm1iY3NldHNbaV0pOwogICAgICAgZnJlZSAo cC0+Y2hhcnMpOwogICAgICAgZnJlZSAocC0+Y2hfY2xhc3Nlcyk7Ci0gICAgICBmcmVlIChw LT5yYW5nZV9zdHMpOwotICAgICAgZnJlZSAocC0+cmFuZ2VfZW5kcyk7CisgICAgICBmcmVl IChwLT5yYW5nZXMpOwogCiAgICAgICBmb3IgKGogPSAwOyBqIDwgcC0+bmVxdWl2czsgKytq KQogICAgICAgICBmcmVlIChwLT5lcXVpdnNbal0pOwotLSAKMS45LjAKCg== --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0006-dfa-simplify-multibyte_prop-allocation.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0006-dfa-simplify-multibyte_prop-allocation.patch" RnJvbSBlZDdhODgyMWUzOGQ1YTVmZGQ2NGYwZjVjZmNhNmNmODllMzMxY2ExIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE1IEFwciAyMDE0IDIyOjU5OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwNi8xMl0gZGZhOiBzaW1wbGlmeSBtdWx0aWJ5dGVfcHJvcCBhbGxvY2F0aW9uCgoqIHNy Yy9kZmEuYyAoc3RydWN0IGRmYSk6IFNpbXBsaWZ5IGJ5IHJlbW92aW5nIG5tdWx0aWJ5dGVf cHJvcDsKaXQgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBhcyB0YWxsb2MuICBBbGwgdXNl cyBjaGFuZ2VkLgotLS0KIHNyYy9kZmEuYyB8IDE3ICsrKysrKysrLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCBhM2U4YmQwLi4wNTBhMTgwIDEwMDY0 NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zNTksNyArMzU5LDYgQEAg c3RydWN0IGRmYQogICAgICBtdWx0aWJ5dGVfcHJvcAogICAgICA9IDMgICAgICwgMSAgICAg ICAgICAgICAgICwgIDAgICAgICAgICAgICAgICwgIDIgICAgICAgICAgICAgICwgMwogICAg Ki8KLSAgc2l6ZV90IG5tdWx0aWJ5dGVfcHJvcDsKICAgaW50ICptdWx0aWJ5dGVfcHJvcDsK IAogICAvKiBBIHRhYmxlIGluZGV4ZWQgYnkgYnl0ZSB2YWx1ZXMgdGhhdCBjb250YWlucyB0 aGUgY29ycmVzcG9uZGluZyB3aWRlCkBAIC0xNTgxLDE2ICsxNTgwLDE2IEBAIHN0YXRpYyBz aXplX3QgZGVwdGg7ICAgICAgICAgICAgLyogQ3VycmVudCBkZXB0aCBvZiBhIGh5cG90aGV0 aWNhbCBzdGFjawogc3RhdGljIHZvaWQKIGFkZHRva19tYiAodG9rZW4gdCwgaW50IG1icHJv cCkKIHsKLSAgaWYgKE1CX0NVUl9NQVggPiAxKQorICBpZiAoZGZhLT50YWxsb2MgPT0gZGZh LT50aW5kZXgpCiAgICAgewotICAgICAgZGZhLT5tdWx0aWJ5dGVfcHJvcCA9IG1heWJlX3Jl YWxsb2MgKGRmYS0+bXVsdGlieXRlX3Byb3AsIGRmYS0+dGluZGV4LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkZmEtPm5tdWx0aWJ5dGVfcHJvcCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKmRm YS0+bXVsdGlieXRlX3Byb3ApOwotICAgICAgZGZhLT5tdWx0aWJ5dGVfcHJvcFtkZmEtPnRp bmRleF0gPSBtYnByb3A7CisgICAgICBkZmEtPnRva2VucyA9IHgybnJlYWxsb2MgKGRmYS0+ dG9rZW5zLCAmZGZhLT50YWxsb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVvZiAqZGZhLT50b2tlbnMpOworICAgICAgaWYgKE1CX0NVUl9NQVggPiAxKQorICAg ICAgICBkZmEtPm11bHRpYnl0ZV9wcm9wID0geG5yZWFsbG9jIChkZmEtPm11bHRpYnl0ZV9w cm9wLCBkZmEtPnRhbGxvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mICpkZmEtPm11bHRpYnl0ZV9wcm9wKTsKICAgICB9Ci0KLSAgZGZhLT50 b2tlbnMgPSBtYXliZV9yZWFsbG9jIChkZmEtPnRva2VucywgZGZhLT50aW5kZXgsICZkZmEt PnRhbGxvYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKmRmYS0+ dG9rZW5zKTsKKyAgaWYgKE1CX0NVUl9NQVggPiAxKQorICAgIGRmYS0+bXVsdGlieXRlX3By b3BbZGZhLT50aW5kZXhdID0gbWJwcm9wOwogICBkZmEtPnRva2Vuc1tkZmEtPnRpbmRleCsr XSA9IHQ7CiAKICAgc3dpdGNoICh0KQotLSAKMS45LjAKCg== --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0007-dfa-simplify-position-set-and-element-count-allocati.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0007-dfa-simplify-position-set-and-element-count-allocati.pa"; filename*1="tch" RnJvbSBmN2U5MjAwYmNmNWYxYTAyMTYzN2UxNzIyNWY3ZTY5YmYwYjljNDA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE3IEFwciAyMDE0IDE3OjUwOjU1IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwNy8xMl0gZGZhOiBzaW1wbGlmeSBwb3NpdGlvbiBzZXQgYW5kIGVsZW1lbnQgY291bnQg YWxsb2NhdGlvbgoKKiBzcmMvZGZhLmMgKGRmYWFuYWx5emUpOiBBbGxvY2F0aW9uIHBvc2l0 aW9uIHNldCBpbmZvIGFsbCBhdCBvbmUgZ28sCmFuZCBzaW1pbGFybHkgZm9yIGVsZW1lbnQg Y291bnQgaW5mby4KLS0tCiBzcmMvZGZhLmMgfCAxMTAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA1MiBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggMDUwYTE4MC4uNGIwZTdmMiAxMDA2NDQKLS0t IGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMjMwNywxNyArMjMwNywyNiBAQCBz dGF0ZV9zZXBhcmF0ZV9jb250ZXh0cyAocG9zaXRpb25fc2V0IGNvbnN0ICpzKQogdm9pZAog ZGZhYW5hbHl6ZSAoc3RydWN0IGRmYSAqZCwgaW50IHNlYXJjaGZsYWcpCiB7Ci0gIGJvb2wg Km51bGxhYmxlOyAgICAgICAgICAgICAgIC8qIE51bGxhYmxlIHN0YWNrLiAgKi8KLSAgc2l6 ZV90ICpuZmlyc3Rwb3M7ICAgICAgICAgICAgLyogRWxlbWVudCBjb3VudCBzdGFjayBmb3Ig Zmlyc3Rwb3Mgc2V0cy4gICovCi0gIHBvc2l0aW9uICpmaXJzdHBvczsgICAgICAgICAgIC8q IEFycmF5IHdoZXJlIGZpcnN0cG9zIGVsZW1lbnRzIGFyZSBzdG9yZWQuICAqLwotICBzaXpl X3QgKm5sYXN0cG9zOyAgICAgICAgICAgICAvKiBFbGVtZW50IGNvdW50IHN0YWNrIGZvciBs YXN0cG9zIHNldHMuICAqLwotICBwb3NpdGlvbiAqbGFzdHBvczsgICAgICAgICAgICAvKiBB cnJheSB3aGVyZSBsYXN0cG9zIGVsZW1lbnRzIGFyZSBzdG9yZWQuICAqLworICAvKiBBcnJh eSBhbGxvY2F0ZWQgdG8gaG9sZCBwb3NpdGlvbiBzZXRzLiAgKi8KKyAgcG9zaXRpb24gKnBv c2FsbG9jID0geG5tYWxsb2MgKGQtPm5sZWF2ZXMsIDIgKiBzaXplb2YgKnBvc2FsbG9jKTsK KyAgLyogRmlyc3Rwb3MgYW5kIGxhc3Rwb3MgZWxlbWVudHMuICAqLworICBwb3NpdGlvbiAq Zmlyc3Rwb3MgPSBwb3NhbGxvYyArIGQtPm5sZWF2ZXM7CisgIHBvc2l0aW9uICpsYXN0cG9z ID0gZmlyc3Rwb3MgKyBkLT5ubGVhdmVzOworCisgIC8qIFN0YWNrIGZvciBlbGVtZW50IGNv dW50cyBhbmQgbnVsbGFibGUgZmxhZ3MuICAqLworICBzdHJ1Y3QKKyAgeworICAgIC8qIFdo ZXRoZXIgdGhlIGVudHJ5IGlzIG51bGxhYmxlLiAgKi8KKyAgICBib29sIG51bGxhYmxlOwor CisgICAgLyogQ291bnRzIG9mIGZpcnN0cG9zIGFuZCBsYXN0cG9zIHNldHMuICAqLworICAg IHNpemVfdCBuZmlyc3Rwb3M7CisgICAgc2l6ZV90IG5sYXN0cG9zOworICB9ICpzdGthbGxv YyA9IHhubWFsbG9jIChkLT5kZXB0aCwgc2l6ZW9mICpzdGthbGxvYyksICpzdGsgPSBzdGth bGxvYzsKKwogICBwb3NpdGlvbl9zZXQgdG1wOyAgICAgICAgICAgICAvKiBUZW1wb3Jhcnkg c2V0IGZvciBtZXJnaW5nIHNldHMuICAqLwogICBwb3NpdGlvbl9zZXQgbWVyZ2VkOyAgICAg ICAgICAvKiBSZXN1bHQgb2YgbWVyZ2luZyBzZXRzLiAgKi8KICAgaW50IHNlcGFyYXRlX2Nv bnRleHRzOyAgICAgICAgLyogQ29udGV4dCB3YW50ZWQgYnkgc29tZSBwb3NpdGlvbi4gICov Ci0gIGJvb2wgKm9fbnVsbGFibGU7Ci0gIHNpemVfdCAqb19uZmlyc3QsICpvX25sYXN0Owot ICBwb3NpdGlvbiAqb19maXJzdHBvcywgKm9fbGFzdHBvczsKICAgc2l6ZV90IGksIGo7CiAg IHBvc2l0aW9uICpwb3M7CiAKQEAgLTIzMzIsMTkgKzIzNDEsNyBAQCBkZmFhbmFseXplIChz dHJ1Y3QgZGZhICpkLCBpbnQgc2VhcmNoZmxhZykKICNlbmRpZgogCiAgIGQtPnNlYXJjaGZs YWcgPSBzZWFyY2hmbGFnICE9IDA7Ci0KLSAgbnVsbGFibGUgPSB4bm1hbGxvYyAoZC0+ZGVw dGgsIHNpemVvZiAqbnVsbGFibGUpOwotICBvX251bGxhYmxlID0gbnVsbGFibGU7Ci0gIG5m aXJzdHBvcyA9IHhubWFsbG9jIChkLT5kZXB0aCwgc2l6ZW9mICpuZmlyc3Rwb3MpOwotICBv X25maXJzdCA9IG5maXJzdHBvczsKLSAgZmlyc3Rwb3MgPSB4bm1hbGxvYyAoZC0+bmxlYXZl cywgc2l6ZW9mICpmaXJzdHBvcyk7Ci0gIG9fZmlyc3Rwb3MgPSBmaXJzdHBvcywgZmlyc3Rw b3MgKz0gZC0+bmxlYXZlczsKLSAgbmxhc3Rwb3MgPSB4bm1hbGxvYyAoZC0+ZGVwdGgsIHNp emVvZiAqbmxhc3Rwb3MpOwotICBvX25sYXN0ID0gbmxhc3Rwb3M7Ci0gIGxhc3Rwb3MgPSB4 bm1hbGxvYyAoZC0+bmxlYXZlcywgc2l6ZW9mICpsYXN0cG9zKTsKLSAgb19sYXN0cG9zID0g bGFzdHBvcywgbGFzdHBvcyArPSBkLT5ubGVhdmVzOwogICBhbGxvY19wb3NpdGlvbl9zZXQg KCZtZXJnZWQsIGQtPm5sZWF2ZXMpOwotCiAgIGQtPmZvbGxvd3MgPSB4Y2FsbG9jIChkLT50 aW5kZXgsIHNpemVvZiAqZC0+Zm9sbG93cyk7CiAKICAgZm9yIChpID0gMDsgaSA8IGQtPnRp bmRleDsgKytpKQpAQCAtMjM1MywyMCArMjM1MCwyMSBAQCBkZmFhbmFseXplIChzdHJ1Y3Qg ZGZhICpkLCBpbnQgc2VhcmNoZmxhZykKICAgICAgICAgewogICAgICAgICBjYXNlIEVNUFRZ OgogICAgICAgICAgIC8qIFRoZSBlbXB0eSBzZXQgaXMgbnVsbGFibGUuICAqLwotICAgICAg ICAgICpudWxsYWJsZSsrID0gdHJ1ZTsKKyAgICAgICAgICBzdGstPm51bGxhYmxlID0gdHJ1 ZTsKIAogICAgICAgICAgIC8qIFRoZSBmaXJzdHBvcyBhbmQgbGFzdHBvcyBvZiB0aGUgZW1w dHkgbGVhZiBhcmUgYm90aCBlbXB0eS4gICovCi0gICAgICAgICAgKm5maXJzdHBvcysrID0g Km5sYXN0cG9zKysgPSAwOworICAgICAgICAgIHN0ay0+bmZpcnN0cG9zID0gc3RrLT5ubGFz dHBvcyA9IDA7CisgICAgICAgICAgc3RrKys7CiAgICAgICAgICAgYnJlYWs7CiAKICAgICAg ICAgY2FzZSBTVEFSOgogICAgICAgICBjYXNlIFBMVVM6CiAgICAgICAgICAgLyogRXZlcnkg ZWxlbWVudCBpbiB0aGUgZmlyc3Rwb3Mgb2YgdGhlIGFyZ3VtZW50IGlzIGluIHRoZSBmb2xs b3cKICAgICAgICAgICAgICBvZiBldmVyeSBlbGVtZW50IGluIHRoZSBsYXN0cG9zLiAgKi8K LSAgICAgICAgICB0bXAubmVsZW0gPSBuZmlyc3Rwb3NbLTFdOworICAgICAgICAgIHRtcC5u ZWxlbSA9IHN0a1stMV0ubmZpcnN0cG9zOwogICAgICAgICAgIHRtcC5lbGVtcyA9IGZpcnN0 cG9zOwogICAgICAgICAgIHBvcyA9IGxhc3Rwb3M7Ci0gICAgICAgICAgZm9yIChqID0gMDsg aiA8IG5sYXN0cG9zWy0xXTsgKytqKQorICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBzdGtb LTFdLm5sYXN0cG9zOyArK2opCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIG1lcmdl ICgmdG1wLCAmZC0+Zm9sbG93c1twb3Nbal0uaW5kZXhdLCAmbWVyZ2VkKTsKICAgICAgICAg ICAgICAgY29weSAoJm1lcmdlZCwgJmQtPmZvbGxvd3NbcG9zW2pdLmluZGV4XSk7CkBAIC0y Mzc1LDE2ICsyMzczLDE2IEBAIGRmYWFuYWx5emUgKHN0cnVjdCBkZmEgKmQsIGludCBzZWFy Y2hmbGFnKQogICAgICAgICBjYXNlIFFNQVJLOgogICAgICAgICAgIC8qIEEgUU1BUksgb3Ig U1RBUiBub2RlIGlzIGF1dG9tYXRpY2FsbHkgbnVsbGFibGUuICAqLwogICAgICAgICAgIGlm IChkLT50b2tlbnNbaV0gIT0gUExVUykKLSAgICAgICAgICAgIG51bGxhYmxlWy0xXSA9IHRy dWU7CisgICAgICAgICAgICBzdGtbLTFdLm51bGxhYmxlID0gdHJ1ZTsKICAgICAgICAgICBi cmVhazsKIAogICAgICAgICBjYXNlIENBVDoKICAgICAgICAgICAvKiBFdmVyeSBlbGVtZW50 IGluIHRoZSBmaXJzdHBvcyBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIGluIHRoZQogICAg ICAgICAgICAgIGZvbGxvdyBvZiBldmVyeSBlbGVtZW50IGluIHRoZSBsYXN0cG9zIG9mIHRo ZSBmaXJzdCBhcmd1bWVudC4gICovCi0gICAgICAgICAgdG1wLm5lbGVtID0gbmZpcnN0cG9z Wy0xXTsKKyAgICAgICAgICB0bXAubmVsZW0gPSBzdGtbLTFdLm5maXJzdHBvczsKICAgICAg ICAgICB0bXAuZWxlbXMgPSBmaXJzdHBvczsKLSAgICAgICAgICBwb3MgPSBsYXN0cG9zICsg bmxhc3Rwb3NbLTFdOwotICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBubGFzdHBvc1stMl07 ICsraikKKyAgICAgICAgICBwb3MgPSBsYXN0cG9zICsgc3RrWy0xXS5ubGFzdHBvczsKKyAg ICAgICAgICBmb3IgKGogPSAwOyBqIDwgc3RrWy0yXS5ubGFzdHBvczsgKytqKQogICAgICAg ICAgICAgewogICAgICAgICAgICAgICBtZXJnZSAoJnRtcCwgJmQtPmZvbGxvd3NbcG9zW2pd LmluZGV4XSwgJm1lcmdlZCk7CiAgICAgICAgICAgICAgIGNvcHkgKCZtZXJnZWQsICZkLT5m b2xsb3dzW3Bvc1tqXS5pbmRleF0pOwpAQCAtMjM5Miw0MyArMjM5MCwzOSBAQCBkZmFhbmFs eXplIChzdHJ1Y3QgZGZhICpkLCBpbnQgc2VhcmNoZmxhZykKIAogICAgICAgICAgIC8qIFRo ZSBmaXJzdHBvcyBvZiBhIENBVCBub2RlIGlzIHRoZSBmaXJzdHBvcyBvZiB0aGUgZmlyc3Qg YXJndW1lbnQsCiAgICAgICAgICAgICAgdW5pb24gdGhhdCBvZiB0aGUgc2Vjb25kIGFyZ3Vt ZW50IGlmIHRoZSBmaXJzdCBpcyBudWxsYWJsZS4gICovCi0gICAgICAgICAgaWYgKG51bGxh YmxlWy0yXSkKLSAgICAgICAgICAgIG5maXJzdHBvc1stMl0gKz0gbmZpcnN0cG9zWy0xXTsK KyAgICAgICAgICBpZiAoc3RrWy0yXS5udWxsYWJsZSkKKyAgICAgICAgICAgIHN0a1stMl0u bmZpcnN0cG9zICs9IHN0a1stMV0ubmZpcnN0cG9zOwogICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgIGZpcnN0cG9zICs9IG5maXJzdHBvc1stMV07Ci0gICAgICAgICAgLS1uZmlyc3Rw b3M7CisgICAgICAgICAgICBmaXJzdHBvcyArPSBzdGtbLTFdLm5maXJzdHBvczsKIAogICAg ICAgICAgIC8qIFRoZSBsYXN0cG9zIG9mIGEgQ0FUIG5vZGUgaXMgdGhlIGxhc3Rwb3Mgb2Yg dGhlIHNlY29uZCBhcmd1bWVudCwKICAgICAgICAgICAgICB1bmlvbiB0aGF0IG9mIHRoZSBm aXJzdCBhcmd1bWVudCBpZiB0aGUgc2Vjb25kIGlzIG51bGxhYmxlLiAgKi8KLSAgICAgICAg ICBpZiAobnVsbGFibGVbLTFdKQotICAgICAgICAgICAgbmxhc3Rwb3NbLTJdICs9IG5sYXN0 cG9zWy0xXTsKKyAgICAgICAgICBpZiAoc3RrWy0xXS5udWxsYWJsZSkKKyAgICAgICAgICAg IHN0a1stMl0ubmxhc3Rwb3MgKz0gc3RrWy0xXS5ubGFzdHBvczsKICAgICAgICAgICBlbHNl CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIHBvcyA9IGxhc3Rwb3MgKyBubGFzdHBv c1stMl07Ci0gICAgICAgICAgICAgIGZvciAoaiA9IG5sYXN0cG9zWy0xXTsgai0tID4gMDsp CisgICAgICAgICAgICAgIHBvcyA9IGxhc3Rwb3MgKyBzdGtbLTJdLm5sYXN0cG9zOworICAg ICAgICAgICAgICBmb3IgKGogPSBzdGtbLTFdLm5sYXN0cG9zOyBqLS0gPiAwOykKICAgICAg ICAgICAgICAgICBwb3Nbal0gPSBsYXN0cG9zW2pdOwotICAgICAgICAgICAgICBsYXN0cG9z ICs9IG5sYXN0cG9zWy0yXTsKLSAgICAgICAgICAgICAgbmxhc3Rwb3NbLTJdID0gbmxhc3Rw b3NbLTFdOworICAgICAgICAgICAgICBsYXN0cG9zICs9IHN0a1stMl0ubmxhc3Rwb3M7Cisg ICAgICAgICAgICAgIHN0a1stMl0ubmxhc3Rwb3MgPSBzdGtbLTFdLm5sYXN0cG9zOwogICAg ICAgICAgICAgfQotICAgICAgICAgIC0tbmxhc3Rwb3M7CiAKICAgICAgICAgICAvKiBBIENB VCBub2RlIGlzIG51bGxhYmxlIGlmIGJvdGggYXJndW1lbnRzIGFyZSBudWxsYWJsZS4gICov Ci0gICAgICAgICAgbnVsbGFibGVbLTJdICY9IG51bGxhYmxlWy0xXTsKLSAgICAgICAgICAt LW51bGxhYmxlOworICAgICAgICAgIHN0a1stMl0ubnVsbGFibGUgJj0gc3RrWy0xXS5udWxs YWJsZTsKKyAgICAgICAgICBzdGstLTsKICAgICAgICAgICBicmVhazsKIAogICAgICAgICBj YXNlIE9SOgogICAgICAgICAgIC8qIFRoZSBmaXJzdHBvcyBpcyB0aGUgdW5pb24gb2YgdGhl IGZpcnN0cG9zIG9mIGVhY2ggYXJndW1lbnQuICAqLwotICAgICAgICAgIG5maXJzdHBvc1st Ml0gKz0gbmZpcnN0cG9zWy0xXTsKLSAgICAgICAgICAtLW5maXJzdHBvczsKKyAgICAgICAg ICBzdGtbLTJdLm5maXJzdHBvcyArPSBzdGtbLTFdLm5maXJzdHBvczsKIAogICAgICAgICAg IC8qIFRoZSBsYXN0cG9zIGlzIHRoZSB1bmlvbiBvZiB0aGUgbGFzdHBvcyBvZiBlYWNoIGFy Z3VtZW50LiAgKi8KLSAgICAgICAgICBubGFzdHBvc1stMl0gKz0gbmxhc3Rwb3NbLTFdOwot ICAgICAgICAgIC0tbmxhc3Rwb3M7CisgICAgICAgICAgc3RrWy0yXS5ubGFzdHBvcyArPSBz dGtbLTFdLm5sYXN0cG9zOwogCiAgICAgICAgICAgLyogQW4gT1Igbm9kZSBpcyBudWxsYWJs ZSBpZiBlaXRoZXIgYXJndW1lbnQgaXMgbnVsbGFibGUuICAqLwotICAgICAgICAgIG51bGxh YmxlWy0yXSB8PSBudWxsYWJsZVstMV07Ci0gICAgICAgICAgLS1udWxsYWJsZTsKKyAgICAg ICAgICBzdGtbLTJdLm51bGxhYmxlIHw9IHN0a1stMV0ubnVsbGFibGU7CisgICAgICAgICAg c3RrLS07CiAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgZGVmYXVsdDoKQEAgLTI0Mzcs MTAgKzI0MzEsMTIgQEAgZGZhYW5hbHl6ZSAoc3RydWN0IGRmYSAqZCwgaW50IHNlYXJjaGZs YWcpCiAgICAgICAgICAgICAgYW4gImVwc2lsb24gY2xvc3VyZSIgZWZmZWN0aXZlbHkgbWFr ZXMgdGhlbSBudWxsYWJsZSBsYXRlci4KICAgICAgICAgICAgICBCYWNrcmVmZXJlbmNlcyBo YXZlIHRvIGdldCBhIHJlYWwgcG9zaXRpb24gc28gd2UgY2FuIGRldGVjdAogICAgICAgICAg ICAgIHRyYW5zaXRpb25zIG9uIHRoZW0gbGF0ZXIuICBCdXQgdGhleSBhcmUgbnVsbGFibGUu ICAqLwotICAgICAgICAgICpudWxsYWJsZSsrID0gZC0+dG9rZW5zW2ldID09IEJBQ0tSRUY7 CisgICAgICAgICAgc3RrLT5udWxsYWJsZSA9IGQtPnRva2Vuc1tpXSA9PSBCQUNLUkVGOwog CiAgICAgICAgICAgLyogVGhpcyBwb3NpdGlvbiBpcyBpbiBpdHMgb3duIGZpcnN0cG9zIGFu ZCBsYXN0cG9zLiAgKi8KLSAgICAgICAgICAqbmZpcnN0cG9zKysgPSAqbmxhc3Rwb3MrKyA9 IDE7CisgICAgICAgICAgc3RrLT5uZmlyc3Rwb3MgPSBzdGstPm5sYXN0cG9zID0gMTsKKyAg ICAgICAgICBzdGsrKzsKKwogICAgICAgICAgIC0tZmlyc3Rwb3MsIC0tbGFzdHBvczsKICAg ICAgICAgICBmaXJzdHBvcy0+aW5kZXggPSBsYXN0cG9zLT5pbmRleCA9IGk7CiAgICAgICAg ICAgZmlyc3Rwb3MtPmNvbnN0cmFpbnQgPSBsYXN0cG9zLT5jb25zdHJhaW50ID0gTk9fQ09O U1RSQUlOVDsKQEAgLTI0NTQsMTUgKzI0NTAsMTYgQEAgZGZhYW5hbHl6ZSAoc3RydWN0IGRm YSAqZCwgaW50IHNlYXJjaGZsYWcpCiAgICAgICBmcHJpbnRmIChzdGRlcnIsICJub2RlICV6 ZDoiLCBpKTsKICAgICAgIHBydG9rIChkLT50b2tlbnNbaV0pOwogICAgICAgcHV0YyAoJ1xu Jywgc3RkZXJyKTsKLSAgICAgIGZwcmludGYgKHN0ZGVyciwgbnVsbGFibGVbLTFdID8gIiBu dWxsYWJsZTogeWVzXG4iIDogIiBudWxsYWJsZTogbm9cbiIpOworICAgICAgZnByaW50ZiAo c3RkZXJyLAorICAgICAgICAgICAgICAgc3RrWy0xXS5udWxsYWJsZSA/ICIgbnVsbGFibGU6 IHllc1xuIiA6ICIgbnVsbGFibGU6IG5vXG4iKTsKICAgICAgIGZwcmludGYgKHN0ZGVyciwg IiBmaXJzdHBvczoiKTsKLSAgICAgIGZvciAoaiA9IG5maXJzdHBvc1stMV07IGotLSA+IDA7 KQorICAgICAgZm9yIChqID0gc3RrWy0xXS5uZmlyc3Rwb3M7IGotLSA+IDA7KQogICAgICAg ICB7CiAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiICV6ZDoiLCBmaXJzdHBvc1tqXS5p bmRleCk7CiAgICAgICAgICAgcHJ0b2sgKGQtPnRva2Vuc1tmaXJzdHBvc1tqXS5pbmRleF0p OwogICAgICAgICB9CiAgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbiBsYXN0cG9zOiIpOwot ICAgICAgZm9yIChqID0gbmxhc3Rwb3NbLTFdOyBqLS0gPiAwOykKKyAgICAgIGZvciAoaiA9 IHN0a1stMV0ubmxhc3Rwb3M7IGotLSA+IDA7KQogICAgICAgICB7CiAgICAgICAgICAgZnBy aW50ZiAoc3RkZXJyLCAiICV6ZDoiLCBsYXN0cG9zW2pdLmluZGV4KTsKICAgICAgICAgICBw cnRvayAoZC0+dG9rZW5zW2xhc3Rwb3Nbal0uaW5kZXhdKTsKQEAgLTI0OTcsNyArMjQ5NCw3 IEBAIGRmYWFuYWx5emUgKHN0cnVjdCBkZmEgKmQsIGludCBzZWFyY2hmbGFnKQogICAvKiBH ZXQgdGhlIGVwc2lsb24gY2xvc3VyZSBvZiB0aGUgZmlyc3Rwb3Mgb2YgdGhlIHJlZ2V4cC4g IFRoZSByZXN1bHQgd2lsbAogICAgICBiZSB0aGUgc2V0IG9mIHBvc2l0aW9ucyBvZiBzdGF0 ZSAwLiAgKi8KICAgbWVyZ2VkLm5lbGVtID0gMDsKLSAgZm9yIChpID0gMDsgaSA8IG5maXJz dHBvc1stMV07ICsraSkKKyAgZm9yIChpID0gMDsgaSA8IHN0a1stMV0ubmZpcnN0cG9zOyAr K2kpCiAgICAgaW5zZXJ0IChmaXJzdHBvc1tpXSwgJm1lcmdlZCk7CiAgIGVwc2Nsb3N1cmUg KCZtZXJnZWQsIGQpOwogCkBAIC0yNTA3LDExICsyNTA0LDggQEAgZGZhYW5hbHl6ZSAoc3Ry dWN0IGRmYSAqZCwgaW50IHNlYXJjaGZsYWcpCiAgICAgICAgICAgICAgICAoc2VwYXJhdGVf Y29udGV4dHMgJiBDVFhfTkVXTElORQogICAgICAgICAgICAgICAgID8gQ1RYX05FV0xJTkUg OiBzZXBhcmF0ZV9jb250ZXh0cyBeIENUWF9BTlkpKTsKIAotICBmcmVlIChvX251bGxhYmxl KTsKLSAgZnJlZSAob19uZmlyc3QpOwotICBmcmVlIChvX2ZpcnN0cG9zKTsKLSAgZnJlZSAo b19ubGFzdCk7Ci0gIGZyZWUgKG9fbGFzdHBvcyk7CisgIGZyZWUgKHBvc2FsbG9jKTsKKyAg ZnJlZSAoc3RrYWxsb2MpOwogICBmcmVlIChtZXJnZWQuZWxlbXMpOwogfQogCi0tIAoxLjku MAoK --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0008-dfa-simplify-memory-allocation.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0008-dfa-simplify-memory-allocation.patch" RnJvbSA4MjFhNmNhMTk4MDNjZDY4YjIxYzYzZjBjNTE5MTRmZWQxZGJjMDJjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE3IEFwciAyMDE0IDE5OjQ0OjM3IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwOC8xMl0gZGZhOiBzaW1wbGlmeSBtZW1vcnkgYWxsb2NhdGlvbgoKKiBzcmMvZGZhLmMg KGljYXRhbGxvYywgZnJlZWxpc3QsIGVubGlzdCwgY29tc3VicywgYWRkbGlzdHMsIGluYm90 aCkKKGRmYW11c3QpOiBEb24ndCB3b3JyeSBhYm91dCBudWxsIGFyZ3VtZW50cyBvciByZXN1 bHRzLAphcyBtZW1vcnkgYWxsb2NhdG9ycyBubyBsb25nZXIgY2FuIHJldHVybiBudWxsIHBv aW50ZXJzLgooZGZhbXVzdCk6IEludm9rZSBtYWxsb2MganVzdCBvbmNlIHdoZW4gYnVpbGRp bmcgYSBjb25jYXRlbmF0ZWQgc3RyaW5nLgotLS0KIHNyYy9kZmEuYyB8IDExOSArKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCA0YjBlN2YyLi40NDRh ZjU2IDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zNzkwLDIx ICszNzkwLDE2IEBAIHN0YXRpYyBjaGFyICoKIGljYXRhbGxvYyAoY2hhciAqb2xkLCBjaGFy IGNvbnN0ICpuZXcpCiB7CiAgIGNoYXIgKnJlc3VsdDsKLSAgc2l6ZV90IG9sZHNpemUgPSBv bGQgPT0gTlVMTCA/IDAgOiBzdHJsZW4gKG9sZCk7Ci0gIHNpemVfdCBuZXdzaXplID0gbmV3 ID09IE5VTEwgPyAwIDogc3RybGVuIChuZXcpOworICBzaXplX3Qgb2xkc2l6ZTsKKyAgc2l6 ZV90IG5ld3NpemUgPSBzdHJsZW4gKG5ldyk7CiAgIGlmIChuZXdzaXplID09IDApCiAgICAg cmV0dXJuIG9sZDsKKyAgb2xkc2l6ZSA9IHN0cmxlbiAob2xkKTsKICAgcmVzdWx0ID0geHJl YWxsb2MgKG9sZCwgb2xkc2l6ZSArIG5ld3NpemUgKyAxKTsKICAgbWVtY3B5IChyZXN1bHQg KyBvbGRzaXplLCBuZXcsIG5ld3NpemUgKyAxKTsKICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot c3RhdGljIGNoYXIgKgotaWNweWFsbG9jIChjaGFyIGNvbnN0ICpzdHJpbmcpCi17Ci0gIHJl dHVybiBpY2F0YWxsb2MgKE5VTEwsIHN0cmluZyk7Ci19Ci0KIHN0YXRpYyBjaGFyICpfR0xf QVRUUklCVVRFX1BVUkUKIGlzdHJzdHIgKGNoYXIgY29uc3QgKmxvb2tpbiwgY2hhciBjb25z dCAqbG9va2ZvcikKIHsKQEAgLTM4MjMsOCArMzgxOCw2IEBAIGZyZWVsaXN0IChjaGFyICoq Y3BwKQogewogICBzaXplX3QgaTsKIAotICBpZiAoY3BwID09IE5VTEwpCi0gICAgcmV0dXJu OwogICBmb3IgKGkgPSAwOyBjcHBbaV0gIT0gTlVMTDsgKytpKQogICAgIHsKICAgICAgIGZy ZWUgKGNwcFtpXSk7CkBAIC0zODM2LDE0ICszODI5LDcgQEAgc3RhdGljIGNoYXIgKioKIGVu bGlzdCAoY2hhciAqKmNwcCwgY2hhciAqbmV3LCBzaXplX3QgbGVuKQogewogICBzaXplX3Qg aSwgajsKLQotICBpZiAoY3BwID09IE5VTEwpCi0gICAgcmV0dXJuIE5VTEw7Ci0gIGlmICgo bmV3ID0gaWNweWFsbG9jIChuZXcpKSA9PSBOVUxMKQotICAgIHsKLSAgICAgIGZyZWVsaXN0 IChjcHApOwotICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICBuZXcgPSBtZW1jcHkgKHht YWxsb2MgKGxlbiArIDEpLCBuZXcsIGxlbik7CiAgIG5ld1tsZW5dID0gJ1wwJzsKICAgLyog SXMgdGhlcmUgYWxyZWFkeSBzb21ldGhpbmcgaW4gdGhlIGxpc3QgdGhhdCdzIG5ldyAob3Ig bG9uZ2VyKT8gICovCiAgIGZvciAoaSA9IDA7IGNwcFtpXSAhPSBOVUxMOyArK2kpCkBAIC0z ODczLDQ2ICszODU5LDI4IEBAIGVubGlzdCAoY2hhciAqKmNwcCwgY2hhciAqbmV3LCBzaXpl X3QgbGVuKQogfQogCiAvKiBHaXZlbiBwb2ludGVycyB0byB0d28gc3RyaW5ncywgcmV0dXJu IGEgcG9pbnRlciB0byBhbiBhbGxvY2F0ZWQKLSAgIGxpc3Qgb2YgdGhlaXIgZGlzdGluY3Qg Y29tbW9uIHN1YnN0cmluZ3MuICBSZXR1cm4gTlVMTCBpZiBzb21ldGhpbmcKLSAgIHNlZW1z IHdpbGQuICAqLworICAgbGlzdCBvZiB0aGVpciBkaXN0aW5jdCBjb21tb24gc3Vic3RyaW5n cy4gICovCiBzdGF0aWMgY2hhciAqKgogY29tc3VicyAoY2hhciAqbGVmdCwgY2hhciBjb25z dCAqcmlnaHQpCiB7Ci0gIGNoYXIgKipjcHA7CisgIGNoYXIgKipjcHAgPSB4emFsbG9jIChz aXplb2YgKmNwcCk7CiAgIGNoYXIgKmxjcDsKLSAgY2hhciAqcmNwOwotICBzaXplX3QgaSwg bGVuOwotCi0gIGlmIChsZWZ0ID09IE5VTEwgfHwgcmlnaHQgPT0gTlVMTCkKLSAgICByZXR1 cm4gTlVMTDsKLSAgY3BwID0gbWFsbG9jIChzaXplb2YgKmNwcCk7Ci0gIGlmIChjcHAgPT0g TlVMTCkKLSAgICByZXR1cm4gTlVMTDsKLSAgY3BwWzBdID0gTlVMTDsKKwogICBmb3IgKGxj cCA9IGxlZnQ7ICpsY3AgIT0gJ1wwJzsgKytsY3ApCiAgICAgewotICAgICAgbGVuID0gMDsK LSAgICAgIHJjcCA9IHN0cmNociAocmlnaHQsICpsY3ApOworICAgICAgc2l6ZV90IGxlbiA9 IDA7CisgICAgICBjaGFyICpyY3AgPSBzdHJjaHIgKHJpZ2h0LCAqbGNwKTsKICAgICAgIHdo aWxlIChyY3AgIT0gTlVMTCkKICAgICAgICAgeworICAgICAgICAgIHNpemVfdCBpOwogICAg ICAgICAgIGZvciAoaSA9IDE7IGxjcFtpXSAhPSAnXDAnICYmIGxjcFtpXSA9PSByY3BbaV07 ICsraSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgIGlmIChpID4gbGVuKQog ICAgICAgICAgICAgbGVuID0gaTsKICAgICAgICAgICByY3AgPSBzdHJjaHIgKHJjcCArIDEs ICpsY3ApOwogICAgICAgICB9Ci0gICAgICBpZiAobGVuID09IDApCi0gICAgICAgIGNvbnRp bnVlOwotICAgICAgewotICAgICAgICBjaGFyICoqcCA9IGVubGlzdCAoY3BwLCBsY3AsIGxl bik7Ci0gICAgICAgIGlmIChwID09IE5VTEwpCi0gICAgICAgICAgewotICAgICAgICAgICAg ZnJlZWxpc3QgKGNwcCk7Ci0gICAgICAgICAgICBjcHAgPSBOVUxMOwotICAgICAgICAgICAg YnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICBjcHAgPSBwOwotICAgICAgfQorICAgICAg aWYgKGxlbiAhPSAwKQorICAgICAgICBjcHAgPSBlbmxpc3QgKGNwcCwgbGNwLCBsZW4pOwog ICAgIH0KICAgcmV0dXJuIGNwcDsKIH0KQEAgLTM5MjAsMTYgKzM4ODgsOCBAQCBjb21zdWJz IChjaGFyICpsZWZ0LCBjaGFyIGNvbnN0ICpyaWdodCkKIHN0YXRpYyBjaGFyICoqCiBhZGRs aXN0cyAoY2hhciAqKm9sZCwgY2hhciAqKm5ldykKIHsKLSAgc2l6ZV90IGk7Ci0KLSAgaWYg KG9sZCA9PSBOVUxMIHx8IG5ldyA9PSBOVUxMKQotICAgIHJldHVybiBOVUxMOwotICBmb3Ig KGkgPSAwOyBuZXdbaV0gIT0gTlVMTDsgKytpKQotICAgIHsKLSAgICAgIG9sZCA9IGVubGlz dCAob2xkLCBuZXdbaV0sIHN0cmxlbiAobmV3W2ldKSk7Ci0gICAgICBpZiAob2xkID09IE5V TEwpCi0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgZm9yICg7ICpuZXc7IG5ldysrKQorICAg IG9sZCA9IGVubGlzdCAob2xkLCAqbmV3LCBzdHJsZW4gKCpuZXcpKTsKICAgcmV0dXJuIG9s ZDsKIH0KIApAQCAtMzkzOCwzMSArMzg5OCwxNyBAQCBhZGRsaXN0cyAoY2hhciAqKm9sZCwg Y2hhciAqKm5ldykKIHN0YXRpYyBjaGFyICoqCiBpbmJvdGggKGNoYXIgKipsZWZ0LCBjaGFy ICoqcmlnaHQpCiB7Ci0gIGNoYXIgKipib3RoOwotICBjaGFyICoqdGVtcDsKKyAgY2hhciAq KmJvdGggPSB4emFsbG9jIChzaXplb2YgKmJvdGgpOwogICBzaXplX3QgbG51bSwgcm51bTsK IAotICBpZiAobGVmdCA9PSBOVUxMIHx8IHJpZ2h0ID09IE5VTEwpCi0gICAgcmV0dXJuIE5V TEw7Ci0gIGJvdGggPSBtYWxsb2MgKHNpemVvZiAqYm90aCk7Ci0gIGlmIChib3RoID09IE5V TEwpCi0gICAgcmV0dXJuIE5VTEw7Ci0gIGJvdGhbMF0gPSBOVUxMOwogICBmb3IgKGxudW0g PSAwOyBsZWZ0W2xudW1dICE9IE5VTEw7ICsrbG51bSkKICAgICB7CiAgICAgICBmb3IgKHJu dW0gPSAwOyByaWdodFtybnVtXSAhPSBOVUxMOyArK3JudW0pCiAgICAgICAgIHsKLSAgICAg ICAgICB0ZW1wID0gY29tc3VicyAobGVmdFtsbnVtXSwgcmlnaHRbcm51bV0pOwotICAgICAg ICAgIGlmICh0ZW1wID09IE5VTEwpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGZy ZWVsaXN0IChib3RoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAg ICB9CisgICAgICAgICAgY2hhciAqKnRlbXAgPSBjb21zdWJzIChsZWZ0W2xudW1dLCByaWdo dFtybnVtXSk7CiAgICAgICAgICAgYm90aCA9IGFkZGxpc3RzIChib3RoLCB0ZW1wKTsKICAg ICAgICAgICBmcmVlbGlzdCAodGVtcCk7CiAgICAgICAgICAgZnJlZSAodGVtcCk7Ci0gICAg ICAgICAgaWYgKGJvdGggPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAg ICAgICB9CiAgICAgfQogICByZXR1cm4gYm90aDsKQEAgLTQwNzgsOCArNDAyNCw2IEBAIGRm YW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAgICAgICAgIGxtcC0+cmlnaHRbal0gPSBs bXAtPnJpZ2h0WyhsbiAtIGkpICsgal07CiAgICAgICAgICAgICBsbXAtPnJpZ2h0W2pdID0g J1wwJzsKICAgICAgICAgICAgIG5ldyA9IGluYm90aCAobG1wLT5pbiwgcm1wLT5pbik7Ci0g ICAgICAgICAgICBpZiAobmV3ID09IE5VTEwpCi0gICAgICAgICAgICAgIGdvdG8gZG9uZTsK ICAgICAgICAgICAgIGZyZWVsaXN0IChsbXAtPmluKTsKICAgICAgICAgICAgIGZyZWUgKGxt cC0+aW4pOwogICAgICAgICAgICAgbG1wLT5pbiA9IG5ldzsKQEAgLTQxMTMsMzkgKzQwNTcs MjYgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgICAgICAgIHJpZ2h0LCBw bHVzIGNvbmNhdGVuYXRpb24gb2YKICAgICAgICAgICAgICAgIGxlZnQncyByaWdodCBhbmQg cmlnaHQncyBsZWZ0LiAgKi8KICAgICAgICAgICAgIGxtcC0+aW4gPSBhZGRsaXN0cyAobG1w LT5pbiwgcm1wLT5pbik7Ci0gICAgICAgICAgICBpZiAobG1wLT5pbiA9PSBOVUxMKQotICAg ICAgICAgICAgICBnb3RvIGRvbmU7CiAgICAgICAgICAgICBpZiAobG1wLT5yaWdodFswXSAh PSAnXDAnICYmIHJtcC0+bGVmdFswXSAhPSAnXDAnKQogICAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgY2hhciAqdHA7Ci0KLSAgICAgICAgICAgICAgICB0cCA9IGljcHlhbGxv YyAobG1wLT5yaWdodCk7Ci0gICAgICAgICAgICAgICAgdHAgPSBpY2F0YWxsb2MgKHRwLCBy bXAtPmxlZnQpOwotICAgICAgICAgICAgICAgIGxtcC0+aW4gPSBlbmxpc3QgKGxtcC0+aW4s IHRwLCBzdHJsZW4gKHRwKSk7CisgICAgICAgICAgICAgICAgc2l6ZV90IGxybGVuID0gc3Ry bGVuIChsbXAtPnJpZ2h0KTsKKyAgICAgICAgICAgICAgICBzaXplX3QgcmxsZW4gPSBzdHJs ZW4gKHJtcC0+bGVmdCk7CisgICAgICAgICAgICAgICAgY2hhciAqdHAgPSB4bWFsbG9jIChs cmxlbiArIHJsbGVuICsgMSk7CisgICAgICAgICAgICAgICAgbWVtY3B5ICh0cCwgbG1wLT5y aWdodCwgbHJsZW4pOworICAgICAgICAgICAgICAgIG1lbWNweSAodHAgKyBscmxlbiwgcm1w LT5sZWZ0LCBybGxlbiArIDEpOworICAgICAgICAgICAgICAgIGxtcC0+aW4gPSBlbmxpc3Qg KGxtcC0+aW4sIHRwLCBscmxlbiArIHJsbGVuKTsKICAgICAgICAgICAgICAgICBmcmVlICh0 cCk7Ci0gICAgICAgICAgICAgICAgaWYgKGxtcC0+aW4gPT0gTlVMTCkKLSAgICAgICAgICAg ICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogTGVm dC1oYW5kICovCiAgICAgICAgICAgICBpZiAobG1wLT5pc1swXSAhPSAnXDAnKQotICAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbG1wLT5sZWZ0ID0gaWNhdGFsbG9jIChsbXAt PmxlZnQsIHJtcC0+bGVmdCk7Ci0gICAgICAgICAgICAgICAgaWYgKGxtcC0+bGVmdCA9PSBO VUxMKQotICAgICAgICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgIGxtcC0+bGVmdCA9IGljYXRhbGxvYyAobG1wLT5sZWZ0LCBybXAtPmxl ZnQpOwogICAgICAgICAgICAgLyogUmlnaHQtaGFuZCAqLwogICAgICAgICAgICAgaWYgKHJt cC0+aXNbMF0gPT0gJ1wwJykKICAgICAgICAgICAgICAgbG1wLT5yaWdodFswXSA9ICdcMCc7 CiAgICAgICAgICAgICBsbXAtPnJpZ2h0ID0gaWNhdGFsbG9jIChsbXAtPnJpZ2h0LCBybXAt PnJpZ2h0KTsKLSAgICAgICAgICAgIGlmIChsbXAtPnJpZ2h0ID09IE5VTEwpCi0gICAgICAg ICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgICAgIC8qIEd1YXJhbnRlZWQgdG8gYmUgKi8K ICAgICAgICAgICAgIGlmIChsbXAtPmlzWzBdICE9ICdcMCcgJiYgcm1wLT5pc1swXSAhPSAn XDAnKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbG1wLT5pcyA9IGljYXRh bGxvYyAobG1wLT5pcywgcm1wLT5pcyk7Ci0gICAgICAgICAgICAgICAgaWYgKGxtcC0+aXMg PT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICBsbXAtPmlzID0gaWNhdGFsbG9jIChsbXAtPmlzLCBybXAtPmlz KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7 CiAgICAgICAgICAgfQpAQCAtNDE4Myw4ICs0MTE0LDYgQEAgZGZhbXVzdCAoc3RydWN0IGRm YSAqZCkKICAgICAgICAgICAgID0gY2FzZV9mb2xkICYmIE1CX0NVUl9NQVggPT0gMSA/IHRv dXBwZXIgKHQpIDogdDsKICAgICAgICAgICBtcC0+aXNbMV0gPSBtcC0+bGVmdFsxXSA9IG1w LT5yaWdodFsxXSA9ICdcMCc7CiAgICAgICAgICAgbXAtPmluID0gZW5saXN0IChtcC0+aW4s IG1wLT5pcywgMSk7Ci0gICAgICAgICAgaWYgKG1wLT5pbiA9PSBOVUxMKQotICAgICAgICAg ICAgZ290byBkb25lOwogICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjaWZkZWYgREVC VUcKLS0gCjEuOS4wCgo= --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0009-dfa-avoid-duplicate-strlen-when-allocating-memory.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0009-dfa-avoid-duplicate-strlen-when-allocating-memory.patch" RnJvbSBhMTNjZWU1NjRmYTczNGJmZGY1ZjU5NjU2ZDRlODRhNjA3NWQzYjNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE3IEFwciAyMDE0IDIxOjA0OjI0IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwOS8xMl0gZGZhOiBhdm9pZCBkdXBsaWNhdGUgc3RybGVuIHdoZW4gYWxsb2NhdGluZyBt ZW1vcnkKCiogc3JjL2RmYS5jIChkZmFtdXN0KTogVXNlIHhzdHJkdXAsIG5vdCBzdHJsZW4g KHR3aWNlKSArIHhtZW1kdXAuCi0tLQogc3JjL2RmYS5jIHwgOCArKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggNDQ0YWY1Ni4uZjhkYmM3ZiAxMDA2NDQK LS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtNDA2MSw5ICs0MDYxLDkgQEAg ZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgIHNpemVfdCBscmxlbiA9IHN0cmxlbiAobG1wLT5yaWdodCk7CiAgICAgICAgICAgICAg ICAgc2l6ZV90IHJsbGVuID0gc3RybGVuIChybXAtPmxlZnQpOwotICAgICAgICAgICAgICAg IGNoYXIgKnRwID0geG1hbGxvYyAobHJsZW4gKyBybGxlbiArIDEpOworICAgICAgICAgICAg ICAgIGNoYXIgKnRwID0geG1hbGxvYyAobHJsZW4gKyBybGxlbik7CiAgICAgICAgICAgICAg ICAgbWVtY3B5ICh0cCwgbG1wLT5yaWdodCwgbHJsZW4pOwotICAgICAgICAgICAgICAgIG1l bWNweSAodHAgKyBscmxlbiwgcm1wLT5sZWZ0LCBybGxlbiArIDEpOworICAgICAgICAgICAg ICAgIG1lbWNweSAodHAgKyBscmxlbiwgcm1wLT5sZWZ0LCBybGxlbik7CiAgICAgICAgICAg ICAgICAgbG1wLT5pbiA9IGVubGlzdCAobG1wLT5pbiwgdHAsIGxybGVuICsgcmxsZW4pOwog ICAgICAgICAgICAgICAgIGZyZWUgKHRwKTsKICAgICAgICAgICAgICAgfQpAQCAtNDEyOSwx MSArNDEyOSwxMSBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgKyttcDsKICAg ICB9CiBkb25lOgotICBpZiAoc3RybGVuIChyZXN1bHQpKQorICBpZiAoKnJlc3VsdCkKICAg ICB7CiAgICAgICBkbSA9IHhtYWxsb2MgKHNpemVvZiAqZG0pOwogICAgICAgZG0tPmV4YWN0 ID0gZXhhY3Q7Ci0gICAgICBkbS0+bXVzdCA9IHhtZW1kdXAgKHJlc3VsdCwgc3RybGVuIChy ZXN1bHQpICsgMSk7CisgICAgICBkbS0+bXVzdCA9IHhzdHJkdXAgKHJlc3VsdCk7CiAgICAg ICBkbS0+bmV4dCA9IGQtPm11c3RzOwogICAgICAgZC0+bXVzdHMgPSBkbTsKICAgICB9Ci0t IAoxLjkuMAoK --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0010-dfa-simplify-freelist.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0010-dfa-simplify-freelist.patch" RnJvbSBmNmYxOWZmMzE4MTg4ZWIzZmM0ZTliYjVlOWFlNTZiOTlmYWU5ZDMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE3IEFwciAyMDE0IDIxOjUyOjAwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxMC8xMl0gZGZhOiBzaW1wbGlmeSBmcmVlbGlzdAoKKiBzcmMvZGZhLmMgKGZyZWVsaXN0 KTogRG9uJ3QgbnVsbCBvdXQgYXJyYXkgd2hpbGUgZnJlZWluZyBpdHMKcG9pbnRlcnM7IHRo ZSBjYWxsZXIgY2FuIGRvIHRoYXQgaWYgbmVlZGVkLgoocmVzZXRtdXN0KTogTnVsbCBvdXQg emVyb3RoIGVudHJ5IG9mIGFycmF5LgotLS0KIHNyYy9kZmEuYyB8IDEyICsrKystLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggZjhkYmM3Zi4uZmM4MmFk OSAxMDA2NDQKLS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMzgxNiwxMyAr MzgxNiw4IEBAIGlzdHJzdHIgKGNoYXIgY29uc3QgKmxvb2tpbiwgY2hhciBjb25zdCAqbG9v a2ZvcikKIHN0YXRpYyB2b2lkCiBmcmVlbGlzdCAoY2hhciAqKmNwcCkKIHsKLSAgc2l6ZV90 IGk7Ci0KLSAgZm9yIChpID0gMDsgY3BwW2ldICE9IE5VTEw7ICsraSkKLSAgICB7Ci0gICAg ICBmcmVlIChjcHBbaV0pOwotICAgICAgY3BwW2ldID0gTlVMTDsKLSAgICB9CisgIHdoaWxl ICgqY3BwKQorICAgIGZyZWUgKCpjcHArKyk7CiB9CiAKIHN0YXRpYyBjaGFyICoqCkBAIC0z OTI1LDggKzM5MjAsOSBAQCB0eXBlZGVmIHN0cnVjdAogc3RhdGljIHZvaWQKIHJlc2V0bXVz dCAobXVzdCAqIG1wKQogewotICBtcC0+bGVmdFswXSA9IG1wLT5yaWdodFswXSA9IG1wLT5p c1swXSA9ICdcMCc7CiAgIGZyZWVsaXN0IChtcC0+aW4pOworICBtcC0+aW5bMF0gPSBOVUxM OworICBtcC0+bGVmdFswXSA9IG1wLT5yaWdodFswXSA9IG1wLT5pc1swXSA9ICdcMCc7CiB9 CiAKIHN0YXRpYyB2b2lkCi0tIAoxLjkuMAoK --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0011-dfa-simplify-dfmust-initialization.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0011-dfa-simplify-dfmust-initialization.patch" RnJvbSAwZjA4MDA5NTk0MmI4MTgxOWI1MjFjNjExODUxZWYyZGJjYWNkYTk5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE3IEFwciAyMDE0IDIyOjEzOjMxIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxMS8xMl0gZGZhOiBzaW1wbGlmeSBkZm11c3QgaW5pdGlhbGl6YXRpb24KCiogc3JjL2Rm YS5jIChkZmFtdXN0KTogRG9uJ3QgaW5pdGlhbGl6ZSBtdXN0cyB0d2ljZS4KVXNlIHpjYWxs b2MsIG5vdCB4bWFsbG9jIGZvbGxvd2VkIGJ5IHplcm9pbmcuCk1ha2UgcmVzdWx0IGEgY29u c3QgcG9pbnRlci4KLS0tCiBzcmMvZGZhLmMgfCAyNiArKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IGZjODJhZDkuLjYx OGE4YmMgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTM5Mjgs MzAgKzM5MjgsMjAgQEAgcmVzZXRtdXN0IChtdXN0ICogbXApCiBzdGF0aWMgdm9pZAogZGZh bXVzdCAoc3RydWN0IGRmYSAqZCkKIHsKLSAgbXVzdCAqbXVzdHM7Ci0gIG11c3QgKm1wOwot ICBjaGFyICpyZXN1bHQ7CisgIG11c3QgKm11c3RzID0geG5tYWxsb2MgKGQtPnRpbmRleCAr IDEsIHNpemVvZiAqbXVzdHMpOworICBtdXN0ICptcCA9IG11c3RzOworICBjaGFyIGNvbnN0 ICpyZXN1bHQgPSAiIjsKICAgc2l6ZV90IHJpOwogICBzaXplX3QgaTsKLSAgYm9vbCBleGFj dDsKLSAgc3RhdGljIG11c3QgbXVzdDA7CisgIGJvb2wgZXhhY3QgPSBmYWxzZTsKICAgc3Ry dWN0IGRmYW11c3QgKmRtOwotICBzdGF0aWMgY2hhciBlbXB0eV9zdHJpbmdbXSA9ICIiOwog Ci0gIHJlc3VsdCA9IGVtcHR5X3N0cmluZzsKLSAgZXhhY3QgPSBmYWxzZTsKLSAgbXVzdHMg PSB4bm1hbGxvYyAoZC0+dGluZGV4ICsgMSwgc2l6ZW9mICptdXN0cyk7Ci0gIG1wID0gbXVz dHM7Ci0gIGZvciAoaSA9IDA7IGkgPD0gZC0+dGluZGV4OyArK2kpCi0gICAgbXBbaV0gPSBt dXN0MDsKICAgZm9yIChpID0gMDsgaSA8PSBkLT50aW5kZXg7ICsraSkKICAgICB7Ci0gICAg ICBtcFtpXS5pbiA9IHhtYWxsb2MgKHNpemVvZiAqbXBbaV0uaW4pOwotICAgICAgbXBbaV0u bGVmdCA9IHhtYWxsb2MgKDIpOwotICAgICAgbXBbaV0ucmlnaHQgPSB4bWFsbG9jICgyKTsK LSAgICAgIG1wW2ldLmlzID0geG1hbGxvYyAoMik7Ci0gICAgICBtcFtpXS5sZWZ0WzBdID0g bXBbaV0ucmlnaHRbMF0gPSBtcFtpXS5pc1swXSA9ICdcMCc7Ci0gICAgICBtcFtpXS5pblsw XSA9IE5VTEw7CisgICAgICBtcFtpXS5pbiA9IHh6YWxsb2MgKHNpemVvZiAqbXBbaV0uaW4p OworICAgICAgbXBbaV0ubGVmdCA9IHh6YWxsb2MgKDIpOworICAgICAgbXBbaV0ucmlnaHQg PSB4emFsbG9jICgyKTsKKyAgICAgIG1wW2ldLmlzID0geHphbGxvYyAoMik7CiAgICAgfQog I2lmZGVmIERFQlVHCiAgIGZwcmludGYgKHN0ZGVyciwgImRmYW11c3Q6XG4iKTsKLS0gCjEu OS4wCgo= --------------030503010107060906000501 Content-Type: text/plain; charset=UTF-8; name="0012-dfa-trans-reallocation-microoptimization.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0012-dfa-trans-reallocation-microoptimization.patch" RnJvbSAzYmQ3MzM2ODA2MTUyYTZkMWUxMjllODNkNTE0YmU5ZmI5MzVmYWNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE3IEFwciAyMDE0IDIyOjMwOjEwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxMi8xMl0gZGZhOiB0cmFucyByZWFsbG9jYXRpb24gbWljcm9vcHRpbWl6YXRpb24KCiog c3JjL2RmYS5jIChyZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSk6CkhlbHAgdGhlIGNvbXBp bGVyIGF2b2lkIHVubmVjZXNzYXJ5IHJlbG9hZHMuCi0tLQogc3JjL2RmYS5jIHwgMTUgKysr KysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCA2MThh OGJjLi4yNDM1NWQ4IDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBA IC0yNzk5LDE5ICsyNzk5LDIwIEBAIGRmYXN0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRm YSAqZCwgc3RhdGVfbnVtIHRyYW5zW10pCiBzdGF0aWMgdm9pZAogcmVhbGxvY190cmFuc19p Zl9uZWNlc3NhcnkgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBuZXdfc3RhdGUpCiB7Ci0g IGlmIChkLT50cmFsbG9jIDw9IG5ld19zdGF0ZSkKKyAgc3RhdGVfbnVtIG9sZGFsbG9jID0g ZC0+dHJhbGxvYzsKKyAgaWYgKG9sZGFsbG9jIDw9IG5ld19zdGF0ZSkKICAgICB7CiAgICAg ICBzdGF0ZV9udW0gKipyZWFsdHJhbnMgPSBkLT50cmFucyA/IGQtPnRyYW5zIC0gMSA6IE5V TEw7Ci0gICAgICBzdGF0ZV9udW0gb2xkYWxsb2MgPSBkLT50cmFsbG9jOworICAgICAgc2l6 ZV90IG5ld2FsbG9jOwogICAgICAgZC0+dHJhbGxvYyA9IG5ld19zdGF0ZSArIDE7CiAgICAg ICByZWFsdHJhbnMgPSB4Mm5yZWFsbG9jIChyZWFsdHJhbnMsICZkLT50cmFsbG9jLCBzaXpl b2YgKnJlYWx0cmFucyk7CiAgICAgICByZWFsdHJhbnNbMF0gPSBOVUxMOwogICAgICAgZC0+ dHJhbnMgPSByZWFsdHJhbnMgKyAxOwotICAgICAgZC0+dHJhbGxvYy0tOwotICAgICAgZC0+ ZmFpbHMgPSB4bnJlYWxsb2MgKGQtPmZhaWxzLCBkLT50cmFsbG9jLCBzaXplb2YgKmQtPmZh aWxzKTsKLSAgICAgIGQtPnN1Y2Nlc3MgPSB4bnJlYWxsb2MgKGQtPnN1Y2Nlc3MsIGQtPnRy YWxsb2MsIHNpemVvZiAqZC0+c3VjY2Vzcyk7Ci0gICAgICBkLT5uZXdsaW5lcyA9IHhucmVh bGxvYyAoZC0+bmV3bGluZXMsIGQtPnRyYWxsb2MsIHNpemVvZiAqZC0+bmV3bGluZXMpOwot ICAgICAgZm9yICg7IG9sZGFsbG9jIDwgZC0+dHJhbGxvYzsgb2xkYWxsb2MrKykKKyAgICAg IG5ld2FsbG9jID0gLS1kLT50cmFsbG9jOworICAgICAgZC0+ZmFpbHMgPSB4bnJlYWxsb2Mg KGQtPmZhaWxzLCBuZXdhbGxvYywgc2l6ZW9mICpkLT5mYWlscyk7CisgICAgICBkLT5zdWNj ZXNzID0geG5yZWFsbG9jIChkLT5zdWNjZXNzLCBuZXdhbGxvYywgc2l6ZW9mICpkLT5zdWNj ZXNzKTsKKyAgICAgIGQtPm5ld2xpbmVzID0geG5yZWFsbG9jIChkLT5uZXdsaW5lcywgbmV3 YWxsb2MsIHNpemVvZiAqZC0+bmV3bGluZXMpOworICAgICAgZm9yICg7IG9sZGFsbG9jIDwg bmV3YWxsb2M7IG9sZGFsbG9jKyspCiAgICAgICAgIHsKICAgICAgICAgICBkLT50cmFuc1tv bGRhbGxvY10gPSBOVUxMOwogICAgICAgICAgIGQtPmZhaWxzW29sZGFsbG9jXSA9IE5VTEw7 Ci0tIAoxLjkuMAoK --------------030503010107060906000501-- ------------=_1397800806-1312-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 29 Mar 2014 01:29:29 +0000 Received: from localhost ([127.0.0.1]:55250 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WTi5P-0005iY-5u for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:29 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60692) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WTi5J-0005iL-1j for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WTi5B-0007jn-Or for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:20 -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]:52558) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WTi5B-0007jj-L5 for submit@debbugs.gnu.org; Fri, 28 Mar 2014 21:29:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34173) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WTi55-0006ni-HK for bug-grep@gnu.org; Fri, 28 Mar 2014 21:29:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WTi4z-0007iu-E5 for bug-grep@gnu.org; Fri, 28 Mar 2014 21:29:07 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:43584) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WTi4y-0007io-U8 for bug-grep@gnu.org; Fri, 28 Mar 2014 21:29:01 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id C1F7839E801A for ; Fri, 28 Mar 2014 18:28:59 -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 oTlTvNpgf+ZP for ; Fri, 28 Mar 2014 18:28:58 -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 0E85939E8011 for ; Fri, 28 Mar 2014 18:28:58 -0700 (PDT) Message-ID: <533621D9.2010506@cs.ucla.edu> Date: Fri, 28 Mar 2014 18:28:57 -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: grep mailing list Subject: [PATCH] dfa: speed up memory allocation, port to IRIX Content-Type: multipart/mixed; boundary="------------010202020402050004060400" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.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 (----) This is a multi-part message in MIME format. --------------010202020402050004060400 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Tags: patch I'm not going to install the attached memory-management changes yet, as they're fairly intrusive and I want to give them a chance to cool off. The benefits are minor but are there, e.g., this shrinks the overall grep text size by 1.2% on my platform (Fedora 20 x86-64). Mostly, though, I wanted the memory management to be clearer. --------------010202020402050004060400 Content-Type: text/plain; charset=UTF-8; name="0001-dfa-speed-up-memory-allocation-port-to-IRIX.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-dfa-speed-up-memory-allocation-port-to-IRIX.patch" RnJvbSA1NzM3OTQ2M2JkYTUwZWVkMDI0ZGMyMmZhYjgzMjVhY2YwMjMxNGRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDI4IE1hciAyMDE0IDE4OjEzOjMzIC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gZGZhOiBzcGVlZCB1cCBtZW1vcnkgYWxsb2NhdGlvbiwgcG9ydCB0byBJUklYCgpUaGlz IGNoYW5nZSB3YXMgcHJvbXB0ZWQgYnkgYSBwb3J0aW5nIHByb2JsZW0gb24gSVJJWDogaXQK ZGVmaW5lcyBpdHMgb3duIE1BTExPQyBtYWNybywgd2hpY2ggY2xhc2hlcyB3aXRoIG91cnMu Ck1vcmUgZ2VuZXJhbGx5LCB0aGUgTUFMTE9DIGV0Yy4gbWFjcm9zIGFyZSBjb25mdXNpbmcs IGFzIHRoZXkKbG9vayBsaWtlIGZ1bmN0aW9ucyBidXQgZG8gbm90IGhhdmUgQy1mdW5jdGlv biBzZW1hbnRpY3MuCkEgZnVuY3Rpb25hbCBzdHlsZSBtYWtlcyB0aGUgY29kZSBlYXNpZXIg dG8gcmVhZCwgYW5kIHRob3VnaAppdCBsZW5ndGhlbnMgc29tZSBjYWxscyBpdCBzaG9ydGVu cyB0aGUgY29kZSBvdmVyYWxsLgoqIHNyYy9kZmEuYyAoc3RydWN0IGRmYSk6IENvbWJpbmUg dHdvIHZlY3RvcnMgJ3JhbmdlX3N0cycgYW5kCidyYW5nZV9lbmRzJyBpbnRvIGEgc2luZ2xl IHZlY3RvciAncmFuZ2VzJy4gIFNpbWlsYXJseSwgY29tYmluZQpmb3VyIHZlY3RvcnMgJ3Ry YW5zJywgJ2ZhaWxzJywgJ3N1Y2Nlc3MnLCAnbmV3bGluZXMnIGludG8gYSBzaW5nbGUKdmVj dG9yICd0YWInLiAgVGhpcyBzaW1wbGlmaWVzIG1lbW9yeSBhbGxvY2F0aW9uLiAgUmVtb3Zl IG1lbWJlcgpubXVsdGlieXRlX3Byb3A7IG5vdCBuZWVkZWQsIGFzIGl0J3MgdGhlIHNhbWUg YXMgdGFsbG9jLgpSZW1vdmUgbWVtYmVyIHJlYWx0cmFucywgYXMgaXQncyBkZWR1Y2libGUg ZnJvbSB0cmFucy4KQWxsIHVzZXMgY2hhbmdlZC4KKFhOTUFMTE9DLCBYQ0FMTE9DLCBDQUxM T0MsIE1BTExPQywgUkVBTExPQywgUkVBTExPQ19JRl9ORUNFU1NBUlkpOgpSZW1vdmUuICBB bGwgdXNlcyBjaGFuZ2VkIHRvIHVzZSB4bm1hbGxvYyBldGMuCihjb3B5LCBtZXJnZSk6IERv bid0IHRyeSB0byBwcmVzZXJ2ZSBvbGQgZGF0YSB3aXRoIHJlYWxsb2MsIGFzIHdlJ2xsCmJl IG92ZXJ3cml0aW5nIGl0IGFueXdheS4gIFVzZSBmcmVlK21hbGxvYyBpc250ZWFkLgooZGZh c3RhdGUpOiBBbGxvY2F0ZSBncnBzIGFuZCBsYWJlbHMgb24gdGhlIHN0YWNrLCBhcyB0aGVp cgpzaXplIGlzIGtub3duIGF0IGNvbXBpbGUgdGltZS4KKHJlYWxsb2NfdHJhbnNfaWZfbmVj ZXNzYXJ5KTogTW92ZSBlYXJsaWVyLCB0byBhdm9pZCBmb3J3YXJkIGRlY2wuCihidWlsZF9z dGF0ZSk6IFVzZSBpdCwgdG8gYXZvaWQgZHVwbGljYXRlIGNvZGUuCihkZmFpbml0KTogT21p dCBuby1sb25nZXItbmVlZGVkIGluaXRpYWxpemF0aW9uLgotLS0KIHNyYy9kZmEuYyB8IDM4 NSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3MCBpbnNlcnRpb25zKCspLCAyMTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDRl ZDIxODkuLmU3MDJhYzUgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMK QEAgLTMyNCw4ICszMjQsMTEgQEAgc3RydWN0IG1iX2NoYXJfY2xhc3NlcwogICBzaXplX3Qg bmNoYXJzOwogICB3Y3R5cGVfdCAqY2hfY2xhc3NlczsgICAgICAgICAvKiBDaGFyYWN0ZXIg Y2xhc3Nlcy4gICovCiAgIHNpemVfdCBuY2hfY2xhc3NlczsKLSAgd2NoYXJfdCAqcmFuZ2Vf c3RzOyAgICAgICAgICAgLyogUmFuZ2UgY2hhcmFjdGVycyAoc3RhcnQgb2YgdGhlIHJhbmdl KS4gICovCi0gIHdjaGFyX3QgKnJhbmdlX2VuZHM7ICAgICAgICAgIC8qIFJhbmdlIGNoYXJh Y3RlcnMgKGVuZCBvZiB0aGUgcmFuZ2UpLiAgKi8KKyAgc3RydWN0CQkJLyogUmFuZ2UgY2hh cmFjdGVycy4gICovCisgIHsKKyAgICB3Y2hhcl90IGJlZzsJCS8qIFJhbmdlIHN0YXJ0LiAg Ki8KKyAgICB3Y2hhcl90IGVuZDsJCS8qIFJhbmdlIGVuZC4gICovCisgIH0gKnJhbmdlczsK ICAgc2l6ZV90IG5yYW5nZXM7CiAgIGNoYXIgKiplcXVpdnM7ICAgICAgICAgICAgICAgIC8q IEVxdWl2YWxlbmNlIGNsYXNzZXMuICAqLwogICBzaXplX3QgbmVxdWl2czsKQEAgLTM3Myw3 ICszNzYsNiBAQCBzdHJ1Y3QgZGZhCiAgICAgIG11bHRpYnl0ZV9wcm9wCiAgICAgID0gMyAg ICAgLCAxICAgICAgICAgICAgICAgLCAgMCAgICAgICAgICAgICAgLCAgMiAgICAgICAgICAg ICAgLCAzCiAgICAqLwotICBzaXplX3Qgbm11bHRpYnl0ZV9wcm9wOwogICBpbnQgKm11bHRp Ynl0ZV9wcm9wOwogCiAjaWYgTUJTX1NVUFBPUlQKQEAgLTQxMiwyNyArNDE0LDMwIEBAIHN0 cnVjdCBkZmEKIAogICAvKiBGaWVsZHMgZmlsbGVkIGJ5IGRmYWV4ZWMuICAqLwogICBzdGF0 ZV9udW0gdHJhbGxvYzsgICAgICAgICAgICAvKiBOdW1iZXIgb2YgdHJhbnNpdGlvbiB0YWJs ZXMgdGhhdCBoYXZlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Rz IHNvIGZhci4gICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Rz IHNvIGZhciwgbm90IGNvdW50aW5nIHRhYlstMV0uICAqLwogICBpbnQgdHJjb3VudDsgICAg ICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgdHJhbnNpdGlvbiB0YWJsZXMgdGhhdCBoYXZl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbGx5IGJlZW4gYnVp bHQuICAqLwotICBzdGF0ZV9udW0gKip0cmFuczsgICAgICAgICAgICAvKiBUcmFuc2l0aW9u IHRhYmxlcyBmb3Igc3RhdGVzIHRoYXQgY2FuCisgIC8qIFRhYmxlcyBpbmRleGVkIGJ5IHN0 YXRlLiAgKi8KKyAgc3RydWN0IGRmYXRhYgorICB7CisgICAgc3RhdGVfbnVtICp0cmFuczsg ICAgICAgICAgIC8qIFRyYW5zaXRpb24gdGFibGUgZm9yIHN0YXRlcyB0aGF0IGNhbgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXZlciBhY2NlcHQuICBJZiB0aGUg dHJhbnNpdGlvbnMgZm9yIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RhdGUgaGF2ZSBub3QgeWV0IGJlZW4gY29tcHV0ZWQsIG9yIHRoZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSBjb3VsZCBwb3NzaWJseSBhY2NlcHQsIGl0 cyBlbnRyeSBpbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHRh YmxlIGlzIE5VTEwuICAqLwotICBzdGF0ZV9udW0gKipyZWFsdHJhbnM7ICAgICAgICAvKiBU cmFucyBhbHdheXMgcG9pbnRzIHRvIHJlYWx0cmFucyArIDE7IHRoaXMKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaXMgc28gdHJhbnNbLTFdIGNhbiBjb250YWluIE5V TEwuICAqLwotICBzdGF0ZV9udW0gKipmYWlsczsgICAgICAgICAgICAvKiBUcmFuc2l0aW9u IHRhYmxlcyBhZnRlciBmYWlsaW5nIHRvIGFjY2VwdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGlzIHRhYmxlIGlzIE5VTEwuICB0YWJbLTFdLnRyYW5zIGlzIGFs d2F5cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLiAgKi8KKyAg ICBzdGF0ZV9udW0gKmZhaWxzOyAgICAgICAgICAgLyogVHJhbnNpdGlvbiB0YWJsZSBhZnRl ciBmYWlsaW5nIHRvIGFjY2VwdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbiBhIHN0YXRlIHRoYXQgcG90ZW50aWFsbHkgY291bGQgZG8gc28uICAqLwotICBpbnQg KnN1Y2Nlc3M7ICAgICAgICAgICAgICAgICAvKiBUYWJsZSBvZiBhY2NlcHRhbmNlIGNvbmRp dGlvbnMgdXNlZCBpbgorICAgIGludCBzdWNjZXNzOyAgICAgICAgICAgICAgICAvKiBBY2Nl cHRhbmNlIGNvbmRpdGlvbnMgdXNlZCBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZmFleGVjIGFuZCBjb21wdXRlZCBpbiBidWlsZF9zdGF0ZS4gICovCi0gIHN0 YXRlX251bSAqbmV3bGluZXM7ICAgICAgICAgIC8qIFRyYW5zaXRpb25zIG9uIG5ld2xpbmVz LiAgVGhlIGVudHJ5IGZvciBhCisgICAgc3RhdGVfbnVtIG5ld2xpbmVzOyAgICAgICAgIC8q IFRyYW5zaXRpb24gb24gbmV3bGluZXMuICBUaGUgZW50cnkgZm9yIGEKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmV3bGluZSBpbiBhbnkgdHJhbnNpdGlvbiB0YWJs ZSBpcyBhbHdheXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEgc28g d2UgY2FuIGNvdW50IGxpbmVzIHdpdGhvdXQgd2FzdGluZwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0b28gbWFueSBjeWNsZXMuICBUaGUgdHJhbnNpdGlvbiBmb3Ig YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdsaW5lIGlzIHN0b3Jl ZCBzZXBhcmF0ZWx5IGFuZCBoYW5kbGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzIGEgc3BlY2lhbCBjYXNlLiAgTmV3bGluZSBpcyBhbHNvIHVzZWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgYSBzZW50aW5lbCBhdCB0aGUgZW5k IG9mIHRoZSBidWZmZXIuICAqLworICB9ICp0YWI7CiAgIHN0cnVjdCBkZmFtdXN0ICptdXN0 czsgICAgICAgIC8qIExpc3Qgb2Ygc3RyaW5ncywgYXQgbGVhc3Qgb25lIG9mIHdoaWNoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGtub3duIHRvIGFwcGVhciBp biBhbnkgci5lLiBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGUgZGZhLiAgKi8KQEAgLTQ1MSw0MCArNDU2LDYgQEAgc3RydWN0IGRmYQogc3RhdGlj IHZvaWQgZGZhbXVzdCAoc3RydWN0IGRmYSAqZGZhKTsKIHN0YXRpYyB2b2lkIHJlZ2V4cCAo dm9pZCk7CiAKLS8qIFRoZXNlIHR3byBtYWNyb3MgYXJlIGlkZW50aWNhbCB0byB0aGUgb25l cyBpbiBnbnVsaWIncyB4YWxsb2MuaCwKLSAgIGV4Y2VwdCB0aGF0IHRoZXkgZG8gbm90IGNh c3QgdGhlIHJlc3VsdCB0byAiKHQgKikiLCBhbmQgdGh1cyBtYXkKLSAgIGJlIHVzZWQgdmlh IHR5cGUtZnJlZSBDQUxMT0MgYW5kIE1BTExPQyBtYWNyb3MuICAqLwotI3VuZGVmIFhOTUFM TE9DCi0jdW5kZWYgWENBTExPQwotCi0vKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIE4gZWxlbWVu dHMgb2YgdHlwZSBULCB3aXRoIGVycm9yIGNoZWNraW5nLiAgKi8KLS8qIGV4dGVybiB0ICpY Tk1BTExPQyAoc2l6ZV90IG4sIHR5cGVuYW1lIHQpOyAqLwotIyBkZWZpbmUgWE5NQUxMT0Mo biwgdCkgXAotICAgIChzaXplb2YgKHQpID09IDEgPyB4bWFsbG9jIChuKSA6IHhubWFsbG9j IChuLCBzaXplb2YgKHQpKSkKLQotLyogQWxsb2NhdGUgbWVtb3J5IGZvciBOIGVsZW1lbnRz IG9mIHR5cGUgVCwgd2l0aCBlcnJvciBjaGVja2luZywKLSAgIGFuZCB6ZXJvIGl0LiAgKi8K LS8qIGV4dGVybiB0ICpYQ0FMTE9DIChzaXplX3QgbiwgdHlwZW5hbWUgdCk7ICovCi0jIGRl ZmluZSBYQ0FMTE9DKG4sIHQpIFwKLSAgICAoc2l6ZW9mICh0KSA9PSAxID8geHphbGxvYyAo bikgOiB4Y2FsbG9jIChuLCBzaXplb2YgKHQpKSkKLQotI2RlZmluZSBDQUxMT0MocCwgbikg ZG8geyAocCkgPSBYQ0FMTE9DIChuLCAqKHApKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgTUFM TE9DKHAsIG4pIGRvIHsgKHApID0gWE5NQUxMT0MgKG4sICoocCkpOyB9IHdoaWxlICgwKQot I2RlZmluZSBSRUFMTE9DKHAsIG4pIGRvIHsocCkgPSB4bnJlYWxsb2MgKHAsIG4sIHNpemVv ZiAoKihwKSkpOyB9IHdoaWxlICgwKQotCi0vKiBSZWFsbG9jYXRlIGFuIGFycmF5IG9mIHR5 cGUgKlAgaWYgTl9BTExPQyBpcyA8PSBOX1JFUVVJUkVELiAgKi8KLSNkZWZpbmUgUkVBTExP Q19JRl9ORUNFU1NBUlkocCwgbl9hbGxvYywgbl9yZXF1aXJlZCkJCVwKLSAgZG8JCQkJCQkJ CVwKLSAgICB7CQkJCQkJCQlcCi0gICAgICBpZiAoKG5fYWxsb2MpIDw9IChuX3JlcXVpcmVk KSkJCQkJXAotICAgICAgICB7CQkJCQkJCVwKLSAgICAgICAgICBzaXplX3QgbmV3X25fYWxs b2MgPSAobl9yZXF1aXJlZCkgKyAhKHApOwkJXAotICAgICAgICAgIChwKSA9IHgybnJlYWxs b2MgKHAsICZuZXdfbl9hbGxvYywgc2l6ZW9mICgqKHApKSk7CVwKLSAgICAgICAgICAobl9h bGxvYykgPSBuZXdfbl9hbGxvYzsJCQkJXAotICAgICAgICB9CQkJCQkJCVwKLSAgICB9CQkJ CQkJCQlcCi0gIHdoaWxlIChmYWxzZSkKLQogc3RhdGljIHZvaWQKIGRmYW1iY2FjaGUgKHN0 cnVjdCBkZmEgKmQpCiB7CkBAIC02ODIsNyArNjUzLDkgQEAgY2hhcmNsYXNzX2luZGV4IChj aGFyY2xhc3MgY29uc3QgcykKICAgZm9yIChpID0gMDsgaSA8IGRmYS0+Y2luZGV4OyArK2kp CiAgICAgaWYgKGVxdWFsIChzLCBkZmEtPmNoYXJjbGFzc2VzW2ldKSkKICAgICAgIHJldHVy biBpOwotICBSRUFMTE9DX0lGX05FQ0VTU0FSWSAoZGZhLT5jaGFyY2xhc3NlcywgZGZhLT5j YWxsb2MsIGRmYS0+Y2luZGV4ICsgMSk7CisgIGlmIChkZmEtPmNpbmRleCA9PSBkZmEtPmNh bGxvYykKKyAgICBkZmEtPmNoYXJjbGFzc2VzID0geDJucmVhbGxvYyAoZGZhLT5jaGFyY2xh c3NlcywgJmRmYS0+Y2FsbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YgKmRmYS0+Y2hhcmNsYXNzZXMpOwogICArK2RmYS0+Y2luZGV4OwogICBjb3B5 c2V0IChzLCBkZmEtPmNoYXJjbGFzc2VzW2ldKTsKICAgcmV0dXJuIGk7CkBAIC0xMDUwLDE2 ICsxMDIzLDE2IEBAIHBhcnNlX2JyYWNrZXRfZXhwICh2b2lkKQogCiAgIC8qIFdvcmsgYXJl YSB0byBidWlsZCBhIG1iX2NoYXJfY2xhc3Nlcy4gICovCiAgIHN0cnVjdCBtYl9jaGFyX2Ns YXNzZXMgKndvcmtfbWJjOwotICBzaXplX3QgY2hhcnNfYWwsIHJhbmdlX3N0c19hbCwgcmFu Z2VfZW5kc19hbCwgY2hfY2xhc3Nlc19hbCwKLSAgICBlcXVpdnNfYWwsIGNvbGxfZWxlbXNf YWw7CisgIHNpemVfdCBjaGFyc19hbCwgcmFuZ2VzX2FsLCBjaF9jbGFzc2VzX2FsLCBlcXVp dnNfYWwsIGNvbGxfZWxlbXNfYWw7CiAKICAgY2hhcnNfYWwgPSAwOwotICByYW5nZV9zdHNf YWwgPSByYW5nZV9lbmRzX2FsID0gMDsKKyAgcmFuZ2VzX2FsID0gMDsKICAgY2hfY2xhc3Nl c19hbCA9IGVxdWl2c19hbCA9IGNvbGxfZWxlbXNfYWwgPSAwOwogICBpZiAoTUJfQ1VSX01B WCA+IDEpCiAgICAgewotICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKGRmYS0+bWJjc2V0 cywgZGZhLT5tYmNzZXRzX2FsbG9jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRm YS0+bm1iY3NldHMgKyAxKTsKKyAgICAgIGlmIChkZmEtPm5tYmNzZXRzID09IGRmYS0+bWJj c2V0c19hbGxvYykKKyAgICAgICAgZGZhLT5tYmNzZXRzID0geDJucmVhbGxvYyAoZGZhLT5t YmNzZXRzLCAmZGZhLT5tYmNzZXRzX2FsbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKmRmYS0+bWJjc2V0cyk7CiAKICAgICAgIC8qIGRmYS0+bXVs dGlieXRlX3Byb3BbXSBob2xkIHRoZSBpbmRleCBvZiBkZmEtPm1iY3NldHMuCiAgICAgICAg ICBXZSB3aWxsIHVwZGF0ZSBkZmEtPm11bHRpYnl0ZV9wcm9wW10gaW4gYWRkdG9rLCBiZWNh dXNlIHdlIGNhbid0CkBAIC0xMTM2LDkgKzExMDksMTEgQEAgcGFyc2VfYnJhY2tldF9leHAg KHZvaWQpCiAgICAgICAgICAgICAgICAgICAgICAgLyogU3RvcmUgdGhlIGNoYXJhY3RlciBj bGFzcyBhcyB3Y3R5cGVfdC4gICovCiAgICAgICAgICAgICAgICAgICAgICAgd2N0eXBlX3Qg d3QgPSB3Y3R5cGUgKGNsYXNzKTsKIAotICAgICAgICAgICAgICAgICAgICAgIFJFQUxMT0Nf SUZfTkVDRVNTQVJZICh3b3JrX21iYy0+Y2hfY2xhc3NlcywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hfY2xhc3Nlc19hbCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPm5jaF9jbGFzc2Vz ICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtfbWJjLT5uY2hfY2xhc3Nl cyA9PSBjaF9jbGFzc2VzX2FsKQorICAgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMt PmNoX2NsYXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPSB4Mm5yZWFsbG9jICh3 b3JrX21iYy0+Y2hfY2xhc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmY2hfY2xhc3Nlc19hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5jaF9jbGFzc2VzKTsKICAgICAgICAgICAg ICAgICAgICAgICB3b3JrX21iYy0+Y2hfY2xhc3Nlc1t3b3JrX21iYy0+bmNoX2NsYXNzZXMr K10gPSB3dDsKICAgICAgICAgICAgICAgICAgICAgfQogCkBAIC0xMTkxLDIzICsxMTY2LDI0 IEBAIHBhcnNlX2JyYWNrZXRfZXhwICh2b2lkKQogICAgICAgICAgICAgICAgICAgICAgdG8g dGhlIHBhaXIgb2YgcmFuZ2VzLCBbbS16XSBbTS1aXS4gIEFsdGhvdWdoIHRoaXMgY29kZQog ICAgICAgICAgICAgICAgICAgICAgaXMgd3JvbmcgaW4gbXVsdGlwbGUgd2F5cywgaXQncyBu ZXZlciB1c2VkIGluIHByYWN0aWNlLgogICAgICAgICAgICAgICAgICAgICAgRklYTUU6IFJl bW92ZSB0aGlzIChhbmQgcmVsYXRlZCkgdW51c2VkIGNvZGUuICAqLwotICAgICAgICAgICAg ICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5yYW5nZV9zdHMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2Vfc3RzX2FsLCB3b3Jr X21iYy0+bnJhbmdlcyArIDEpOwotICAgICAgICAgICAgICAgICAgUkVBTExPQ19JRl9ORUNF U1NBUlkgKHdvcmtfbWJjLT5yYW5nZV9lbmRzLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJhbmdlX2VuZHNfYWwsIHdvcmtfbWJjLT5ucmFuZ2VzICsgMSk7 Ci0gICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2Vfc3RzW3dvcmtfbWJjLT5ucmFu Z2VzXSA9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2VfZm9sZCA/IHRvd2xvd2VyICh3Yykg OiAod2NoYXJfdCkgd2M7Ci0gICAgICAgICAgICAgICAgICB3b3JrX21iYy0+cmFuZ2VfZW5k c1t3b3JrX21iYy0+bnJhbmdlcysrXSA9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2VfZm9s ZCA/IHRvd2xvd2VyICh3YzIpIDogKHdjaGFyX3QpIHdjMjsKKyAgICAgICAgICAgICAgICAg IGlmIChyYW5nZXNfYWwgLSB3b3JrX21iYy0+bnJhbmdlcyA8PSAxKQorICAgICAgICAgICAg ICAgICAgICB3b3JrX21iYy0+cmFuZ2VzID0geDJucmVhbGxvYyAod29ya19tYmMtPnJhbmdl cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZyYW5nZXNfYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5yYW5nZXMpOworICAgICAgICAgICAgICAg ICAgd29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uYmVnCisgICAgICAgICAg ICAgICAgICAgID0gY2FzZV9mb2xkID8gdG93bG93ZXIgKHdjKSA6IHdjOworICAgICAgICAg ICAgICAgICAgd29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uZW5kCisgICAg ICAgICAgICAgICAgICAgID0gY2FzZV9mb2xkID8gdG93bG93ZXIgKHdjMikgOiB3YzI7Cisg ICAgICAgICAgICAgICAgICB3b3JrX21iYy0+bnJhbmdlcysrOwogCiAgICAgICAgICAgICAg ICAgICBpZiAoY2FzZV9mb2xkICYmIChpc3dhbHBoYSAod2MpIHx8IGlzd2FscGhhICh3YzIp KSkKICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIFJFQUxM T0NfSUZfTkVDRVNTQVJZICh3b3JrX21iYy0+cmFuZ2Vfc3RzLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9zdHNfYWwsIHdvcmtfbWJjLT5u cmFuZ2VzICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPnJhbmdlX3N0 c1t3b3JrX21iYy0+bnJhbmdlc10gPSB0b3d1cHBlciAod2MpOwotICAgICAgICAgICAgICAg ICAgICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZICh3b3JrX21iYy0+cmFuZ2VfZW5kcywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfZW5kc19h bCwgd29ya19tYmMtPm5yYW5nZXMgKyAxKTsKLSAgICAgICAgICAgICAgICAgICAgICB3b3Jr X21iYy0+cmFuZ2VfZW5kc1t3b3JrX21iYy0+bnJhbmdlcysrXSA9IHRvd3VwcGVyICh3YzIp OworICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZXMgPSB4Mm5yZWFsbG9j ICh3b3JrX21iYy0+cmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcmFuZ2VzX2FsLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKndvcmtfbWJjLT5yYW5n ZXMpOworICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5yYW5nZXNbd29ya19tYmMt Pm5yYW5nZXNdLmJlZyA9IHRvd3VwcGVyICh3Yyk7CisgICAgICAgICAgICAgICAgICAgICAg d29ya19tYmMtPnJhbmdlc1t3b3JrX21iYy0+bnJhbmdlc10uZW5kID0gdG93dXBwZXIgKHdj Mik7CisgICAgICAgICAgICAgICAgICAgICAgd29ya19tYmMtPm5yYW5nZXMrKzsKICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxz ZSBpZiAodXNpbmdfc2ltcGxlX2xvY2FsZSAoKSkKQEAgLTEyNTUsMTYgKzEyMzEsMjAgQEAg cGFyc2VfYnJhY2tldF9leHAgKHZvaWQpCiAgICAgICAgIHsKICAgICAgICAgICB3Y2hhcl90 IGZvbGRlZFtDQVNFX0ZPTERFRF9CVUZTSVpFXTsKICAgICAgICAgICBpbnQgaSwgbiA9IGNh c2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyAod2MsIGZvbGRlZCk7Ci0gICAgICAgICAgUkVBTExP Q19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5jaGFycywgY2hhcnNfYWwsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5uY2hhcnMgKyBuKTsKICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgICAgICAgaWYgKCFzZXRiaXRfd2Mg KGZvbGRlZFtpXSwgY2NsKSkKLSAgICAgICAgICAgICAgd29ya19tYmMtPmNoYXJzW3dvcmtf bWJjLT5uY2hhcnMrK10gPSBmb2xkZWRbaV07CisgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICBpZiAod29ya19tYmMtPm5jaGFycyA9PSBjaGFyc19hbCkKKyAgICAgICAgICAg ICAgICAgIHdvcmtfbWJjLT5jaGFycyA9IHgybnJlYWxsb2MgKHdvcmtfbWJjLT5jaGFycywg JmNoYXJzX2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mICp3b3JrX21iYy0+Y2hhcnMpOworICAgICAgICAgICAgICAgIHdvcmtf bWJjLT5jaGFyc1t3b3JrX21iYy0+bmNoYXJzKytdID0gZm9sZGVkW2ldOworICAgICAgICAg ICAgICB9CiAgICAgICAgIH0KICAgICAgIGlmICghc2V0Yml0X3djICh3YywgY2NsKSkKICAg ICAgICAgewotICAgICAgICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZICh3b3JrX21iYy0+Y2hh cnMsIGNoYXJzX2FsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrX21i Yy0+bmNoYXJzICsgMSk7CisgICAgICAgICAgaWYgKHdvcmtfbWJjLT5uY2hhcnMgPT0gY2hh cnNfYWwpCisgICAgICAgICAgICB3b3JrX21iYy0+Y2hhcnMgPSB4Mm5yZWFsbG9jICh3b3Jr X21iYy0+Y2hhcnMsICZjaGFyc19hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZiAqd29ya19tYmMtPmNoYXJzKTsKICAgICAgICAgICB3b3Jr X21iYy0+Y2hhcnNbd29ya19tYmMtPm5jaGFycysrXSA9IHdjOwogICAgICAgICB9CiAgICAg fQpAQCAtMTYyOSwxNSArMTYwOSwxNyBAQCBzdGF0aWMgc2l6ZV90IGRlcHRoOyAgICAgICAg ICAgIC8qIEN1cnJlbnQgZGVwdGggb2YgYSBoeXBvdGhldGljYWwgc3RhY2sKIHN0YXRpYyB2 b2lkCiBhZGR0b2tfbWIgKHRva2VuIHQsIGludCBtYnByb3ApCiB7Ci0gIGlmIChNQl9DVVJf TUFYID4gMSkKKyAgaWYgKGRmYS0+dGluZGV4ID09IGRmYS0+dGFsbG9jKQogICAgIHsKLSAg ICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZIChkZmEtPm11bHRpYnl0ZV9wcm9wLCBkZmEtPm5t dWx0aWJ5dGVfcHJvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZmEtPnRpbmRl eCArIDEpOwotICAgICAgZGZhLT5tdWx0aWJ5dGVfcHJvcFtkZmEtPnRpbmRleF0gPSBtYnBy b3A7CisgICAgICBkZmEtPnRva2VucyA9IHgybnJlYWxsb2MgKGRmYS0+dG9rZW5zLCAmZGZh LT50YWxsb2MsIHNpemVvZiAqZGZhLT50b2tlbnMpOworICAgICAgaWYgKE1CX0NVUl9NQVgg PiAxKQorICAgICAgICBkZmEtPm11bHRpYnl0ZV9wcm9wID0geG5yZWFsbG9jIChkZmEtPm11 bHRpYnl0ZV9wcm9wLCBkZmEtPnRhbGxvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mICpkZmEtPm11bHRpYnl0ZV9wcm9wKTsKICAgICB9Ci0K LSAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKGRmYS0+dG9rZW5zLCBkZmEtPnRhbGxvYywgZGZh LT50aW5kZXggKyAxKTsKLSAgZGZhLT50b2tlbnNbZGZhLT50aW5kZXgrK10gPSB0OworICBk ZmEtPnRva2Vuc1tkZmEtPnRpbmRleF0gPSB0OworICBpZiAoTUJfQ1VSX01BWCA+IDEpCisg ICAgZGZhLT5tdWx0aWJ5dGVfcHJvcFtkZmEtPnRpbmRleF0gPSBtYnByb3A7CisgIGRmYS0+ dGluZGV4Kys7CiAKICAgc3dpdGNoICh0KQogICAgIHsKQEAgLTIwMzgsMTkgKzIwMjAsMjQg QEAgZGZhcGFyc2UgKGNoYXIgY29uc3QgKnMsIHNpemVfdCBsZW4sIHN0cnVjdCBkZmEgKmQp CiAKIC8qIFNvbWUgcHJpbWl0aXZlcyBmb3Igb3BlcmF0aW5nIG9uIHNldHMgb2YgcG9zaXRp b25zLiAgKi8KIAotLyogQ29weSBvbmUgc2V0IHRvIGFub3RoZXI7IHRoZSBkZXN0aW5hdGlv biBtdXN0IGJlIGxhcmdlIGVub3VnaC4gICovCisvKiBDb3B5IG9uZSBzZXQgdG8gYW5vdGhl ci4gICovCiBzdGF0aWMgdm9pZAogY29weSAocG9zaXRpb25fc2V0IGNvbnN0ICpzcmMsIHBv c2l0aW9uX3NldCAqIGRzdCkKIHsKLSAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKGRzdC0+ZWxl bXMsIGRzdC0+YWxsb2MsIHNyYy0+bmVsZW0pOwotICBtZW1jcHkgKGRzdC0+ZWxlbXMsIHNy Yy0+ZWxlbXMsIHNpemVvZiAoZHN0LT5lbGVtc1swXSkgKiBzcmMtPm5lbGVtKTsKKyAgaWYg KGRzdC0+YWxsb2MgPCBzcmMtPm5lbGVtKQorICAgIHsKKyAgICAgIGZyZWUgKGRzdC0+ZWxl bXMpOworICAgICAgZHN0LT5hbGxvYyA9IHNyYy0+YWxsb2M7CisgICAgICBkc3QtPmVsZW1z ID0geG5tYWxsb2MgKGRzdC0+YWxsb2MsIHNpemVvZiAqZHN0LT5lbGVtcyk7CisgICAgfQor ICBtZW1jcHkgKGRzdC0+ZWxlbXMsIHNyYy0+ZWxlbXMsIHNyYy0+bmVsZW0gKiBzaXplb2Yg KmRzdC0+ZWxlbXMpOwogICBkc3QtPm5lbGVtID0gc3JjLT5uZWxlbTsKIH0KIAogc3RhdGlj IHZvaWQKIGFsbG9jX3Bvc2l0aW9uX3NldCAocG9zaXRpb25fc2V0ICogcywgc2l6ZV90IHNp emUpCiB7Ci0gIE1BTExPQyAocy0+ZWxlbXMsIHNpemUpOworICBzLT5lbGVtcyA9IHhubWFs bG9jIChzaXplLCBzaXplb2YgKnMtPmVsZW1zKTsKICAgcy0+YWxsb2MgPSBzaXplOwogICBz LT5uZWxlbSA9IDA7CiB9CkBAIC0yMDgwLDcgKzIwNjcsOCBAQCBpbnNlcnQgKHBvc2l0aW9u IHAsIHBvc2l0aW9uX3NldCAqIHMpCiAgICAgICByZXR1cm47CiAgICAgfQogCi0gIFJFQUxM T0NfSUZfTkVDRVNTQVJZIChzLT5lbGVtcywgcy0+YWxsb2MsIGNvdW50ICsgMSk7CisgIGlm IChjb3VudCA9PSBzLT5hbGxvYykKKyAgICBzLT5lbGVtcyA9IHgybnJlYWxsb2MgKHMtPmVs ZW1zLCAmcy0+YWxsb2MsIHNpemVvZiAqcy0+ZWxlbXMpOwogICBmb3IgKGkgPSBjb3VudDsg aSA+IGxvOyBpLS0pCiAgICAgcy0+ZWxlbXNbaV0gPSBzLT5lbGVtc1tpIC0gMV07CiAgIHMt PmVsZW1zW2xvXSA9IHA7CkBAIC0yMDk0LDcgKzIwODIsMTIgQEAgbWVyZ2UgKHBvc2l0aW9u X3NldCBjb25zdCAqczEsIHBvc2l0aW9uX3NldCBjb25zdCAqczIsIHBvc2l0aW9uX3NldCAq IG0pCiB7CiAgIHNpemVfdCBpID0gMCwgaiA9IDA7CiAKLSAgUkVBTExPQ19JRl9ORUNFU1NB UlkgKG0tPmVsZW1zLCBtLT5hbGxvYywgczEtPm5lbGVtICsgczItPm5lbGVtKTsKKyAgaWYg KG0tPmFsbG9jIDwgczEtPm5lbGVtICsgczItPm5lbGVtKQorICAgIHsKKyAgICAgIGZyZWUg KG0tPmVsZW1zKTsKKyAgICAgIG0tPmFsbG9jID0gczEtPmFsbG9jICsgczItPmFsbG9jOwor ICAgICAgbS0+ZWxlbXMgPSB4bm1hbGxvYyAobS0+YWxsb2MsIHNpemVvZiAqbS0+ZWxlbXMp OworICAgIH0KICAgbS0+bmVsZW0gPSAwOwogICB3aGlsZSAoaSA8IHMxLT5uZWxlbSAmJiBq IDwgczItPm5lbGVtKQogICAgIGlmIChzMS0+ZWxlbXNbaV0uaW5kZXggPiBzMi0+ZWxlbXNb al0uaW5kZXgpCkBAIC0yMTU1LDcgKzIxNDgsOCBAQCBzdGF0ZV9pbmRleCAoc3RydWN0IGRm YSAqZCwgcG9zaXRpb25fc2V0IGNvbnN0ICpzLCBpbnQgY29udGV4dCkKICAgICB9CiAKICAg LyogV2UnbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc3RhdGUuICAqLwotICBSRUFMTE9DX0lG X05FQ0VTU0FSWSAoZC0+c3RhdGVzLCBkLT5zYWxsb2MsIGQtPnNpbmRleCArIDEpOworICBp ZiAoZC0+c2luZGV4ID09IGQtPnNhbGxvYykKKyAgICBkLT5zdGF0ZXMgPSB4Mm5yZWFsbG9j IChkLT5zdGF0ZXMsICZkLT5zYWxsb2MsIHNpemVvZiAqZC0+c3RhdGVzKTsKICAgZC0+c3Rh dGVzW2ldLmhhc2ggPSBoYXNoOwogICBhbGxvY19wb3NpdGlvbl9zZXQgKCZkLT5zdGF0ZXNb aV0uZWxlbXMsIHMtPm5lbGVtKTsKICAgY29weSAocywgJmQtPnN0YXRlc1tpXS5lbGVtcyk7 CkBAIC0yMTk3LDEwICsyMTkxLDEwIEBAIHN0YXRpYyB2b2lkCiBlcHNjbG9zdXJlIChwb3Np dGlvbl9zZXQgKiBzLCBzdHJ1Y3QgZGZhIGNvbnN0ICpkKQogewogICBzaXplX3QgaSwgajsK LSAgY2hhciAqdmlzaXRlZDsgIC8qIEFycmF5IG9mIGJvb2xlYW5zLCBlbm91Z2ggdG8gdXNl IGNoYXIsIG5vdCBpbnQuICAqLwogICBwb3NpdGlvbiBwLCBvbGQ7CiAKLSAgQ0FMTE9DICh2 aXNpdGVkLCBkLT50aW5kZXgpOworICAvKiBBcnJheSBvZiBib29sZWFucywgbGFyZ2UgZW5v dWdoIHRvIHVzZSBjaGFyLCBub3QgaW50LiAgKi8KKyAgY2hhciAqdmlzaXRlZCA9IHh6YWxs b2MgKGQtPnRpbmRleCk7CiAKICAgZm9yIChpID0gMDsgaSA8IHMtPm5lbGVtOyArK2kpCiAg ICAgaWYgKGQtPnRva2Vuc1tzLT5lbGVtc1tpXS5pbmRleF0gPj0gTk9UQ0hBUgpAQCAtMjM4 MywxOSArMjM3NywxOSBAQCBkZmFhbmFseXplIChzdHJ1Y3QgZGZhICpkLCBpbnQgc2VhcmNo ZmxhZykKIAogICBkLT5zZWFyY2hmbGFnID0gc2VhcmNoZmxhZzsKIAotICBNQUxMT0MgKG51 bGxhYmxlLCBkLT5kZXB0aCk7CisgIG51bGxhYmxlID0geG5tYWxsb2MgKGQtPmRlcHRoLCBz aXplb2YgKm51bGxhYmxlKTsKICAgb19udWxsYWJsZSA9IG51bGxhYmxlOwotICBNQUxMT0Mg KG5maXJzdHBvcywgZC0+ZGVwdGgpOworICBuZmlyc3Rwb3MgPSB4bm1hbGxvYyAoZC0+ZGVw dGgsIHNpemVvZiAqbmZpcnN0cG9zKTsKICAgb19uZmlyc3QgPSBuZmlyc3Rwb3M7Ci0gIE1B TExPQyAoZmlyc3Rwb3MsIGQtPm5sZWF2ZXMpOworICBmaXJzdHBvcyA9IHhubWFsbG9jIChk LT5ubGVhdmVzLCBzaXplb2YgKmZpcnN0cG9zKTsKICAgb19maXJzdHBvcyA9IGZpcnN0cG9z LCBmaXJzdHBvcyArPSBkLT5ubGVhdmVzOwotICBNQUxMT0MgKG5sYXN0cG9zLCBkLT5kZXB0 aCk7CisgIG5sYXN0cG9zID0geG5tYWxsb2MgKGQtPmRlcHRoLCBzaXplb2YgKm5sYXN0cG9z KTsKICAgb19ubGFzdCA9IG5sYXN0cG9zOwotICBNQUxMT0MgKGxhc3Rwb3MsIGQtPm5sZWF2 ZXMpOworICBsYXN0cG9zID0geG5tYWxsb2MgKGQtPm5sZWF2ZXMsIHNpemVvZiAqbGFzdHBv cyk7CiAgIG9fbGFzdHBvcyA9IGxhc3Rwb3MsIGxhc3Rwb3MgKz0gZC0+bmxlYXZlczsKICAg YWxsb2NfcG9zaXRpb25fc2V0ICgmbWVyZ2VkLCBkLT5ubGVhdmVzKTsKIAotICBDQUxMT0Mg KGQtPmZvbGxvd3MsIGQtPnRpbmRleCk7CisgIGQtPmZvbGxvd3MgPSB4Y2FsbG9jIChkLT50 aW5kZXgsIHNpemVvZiAqZC0+Zm9sbG93cyk7CiAKICAgZm9yIChpID0gMDsgaSA8IGQtPnRp bmRleDsgKytpKQogICAgIHsKQEAgLTI1NTYsNyArMjU1MCw3IEBAIGRmYWFuYWx5emUgKHN0 cnVjdCBkZmEgKmQsIGludCBzZWFyY2hmbGFnKQogICAvKiBCdWlsZCB0aGUgaW5pdGlhbCBz dGF0ZS4gICovCiAgIGQtPnNhbGxvYyA9IDE7CiAgIGQtPnNpbmRleCA9IDA7Ci0gIE1BTExP QyAoZC0+c3RhdGVzLCBkLT5zYWxsb2MpOworICBkLT5zdGF0ZXMgPSB4bm1hbGxvYyAoZC0+ c2FsbG9jLCBzaXplb2YgKmQtPnN0YXRlcyk7CiAKICAgc2VwYXJhdGVfY29udGV4dHMgPSBz dGF0ZV9zZXBhcmF0ZV9jb250ZXh0cyAoJm1lcmdlZCk7CiAgIHN0YXRlX2luZGV4IChkLCAm bWVyZ2VkLApAQCAtMjYwNSw4ICsyNTk5LDggQEAgZGZhYW5hbHl6ZSAoc3RydWN0IGRmYSAq ZCwgaW50IHNlYXJjaGZsYWcpCiB2b2lkCiBkZmFzdGF0ZSAoc3RhdGVfbnVtIHMsIHN0cnVj dCBkZmEgKmQsIHN0YXRlX251bSB0cmFuc1tdKQogewotICBsZWFmX3NldCAqZ3JwczsgICAg ICAgICAgICAgICAvKiBBcyBtYW55IGFzIHdpbGwgZXZlciBiZSBuZWVkZWQuICAqLwotICBj aGFyY2xhc3MgKmxhYmVsczsgICAgICAgICAgICAvKiBMYWJlbHMgY29ycmVzcG9uZGluZyB0 byB0aGUgZ3JvdXBzLiAgKi8KKyAgbGVhZl9zZXQgZ3Jwc1tOT1RDSEFSXTsgICAgICAgLyog QXMgbWFueSBhcyB3aWxsIGV2ZXIgYmUgbmVlZGVkLiAgKi8KKyAgY2hhcmNsYXNzIGxhYmVs c1tOT1RDSEFSXTsgICAgLyogTGFiZWxzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdyb3Vwcy4g ICovCiAgIHNpemVfdCBuZ3JwcyA9IDA7ICAgICAgICAgICAgIC8qIE51bWJlciBvZiBncm91 cHMgYWN0dWFsbHkgdXNlZC4gICovCiAgIHBvc2l0aW9uIHBvczsgICAgICAgICAgICAgICAg IC8qIEN1cnJlbnQgcG9zaXRpb24gYmVpbmcgY29uc2lkZXJlZC4gICovCiAgIGNoYXJjbGFz cyBtYXRjaGVzOyAgICAgICAgICAgIC8qIFNldCBvZiBtYXRjaGluZyBjaGFyYWN0ZXJzLiAg Ki8KQEAgLTI2MjUsOSArMjYxOSw2IEBAIGRmYXN0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0 IGRmYSAqZCwgc3RhdGVfbnVtIHRyYW5zW10pCiAgIGludCBuZXh0X2lzbnRfMXN0X2J5dGUg PSAwOyAgIC8qIEZsYWcgaWYgd2UgY2FuJ3QgYWRkIHN0YXRlMC4gICovCiAgIHNpemVfdCBp LCBqLCBrOwogCi0gIE1BTExPQyAoZ3JwcywgTk9UQ0hBUik7Ci0gIE1BTExPQyAobGFiZWxz LCBOT1RDSEFSKTsKLQogICB6ZXJvc2V0IChtYXRjaGVzKTsKIAogICBmb3IgKGkgPSAwOyBp IDwgZC0+c3RhdGVzW3NdLmVsZW1zLm5lbGVtOyArK2kpCkBAIC0yNzEwLDcgKzI3MDEsOCBA QCBkZmFzdGF0ZSAoc3RhdGVfbnVtIHMsIHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSB0cmFu c1tdKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBjb3B5c2V0IChsZWZ0b3ZlcnMs IGxhYmVsc1tuZ3Jwc10pOwogICAgICAgICAgICAgICBjb3B5c2V0IChpbnRlcnNlY3QsIGxh YmVsc1tqXSk7Ci0gICAgICAgICAgICAgIE1BTExPQyAoZ3Jwc1tuZ3Jwc10uZWxlbXMsIGQt Pm5sZWF2ZXMpOworICAgICAgICAgICAgICBncnBzW25ncnBzXS5lbGVtcyA9IHhubWFsbG9j IChkLT5ubGVhdmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YgKmdycHNbbmdycHNdLmVsZW1zKTsKICAgICAgICAgICAgICAgbWVtY3B5 IChncnBzW25ncnBzXS5lbGVtcywgZ3Jwc1tqXS5lbGVtcywKICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YgKGdycHNbal0uZWxlbXNbMF0pICogZ3Jwc1tqXS5uZWxlbSk7CiAgICAg ICAgICAgICAgIGdycHNbbmdycHNdLm5lbGVtID0gZ3Jwc1tqXS5uZWxlbTsKQEAgLTI3MzMs NyArMjcyNSw3IEBAIGRmYXN0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAqZCwgc3Rh dGVfbnVtIHRyYW5zW10pCiAgICAgICAgIHsKICAgICAgICAgICBjb3B5c2V0IChtYXRjaGVz LCBsYWJlbHNbbmdycHNdKTsKICAgICAgICAgICB6ZXJvc2V0IChtYXRjaGVzKTsKLSAgICAg ICAgICBNQUxMT0MgKGdycHNbbmdycHNdLmVsZW1zLCBkLT5ubGVhdmVzKTsKKyAgICAgICAg ICBncnBzW25ncnBzXS5lbGVtcyA9IHhubWFsbG9jIChkLT5ubGVhdmVzLCBzaXplb2YgKmdy cHNbbmdycHNdLmVsZW1zKTsKICAgICAgICAgICBncnBzW25ncnBzXS5uZWxlbSA9IDE7CiAg ICAgICAgICAgZ3Jwc1tuZ3Jwc10uZWxlbXNbMF0gPSBwb3MuaW5kZXg7CiAgICAgICAgICAg KytuZ3JwczsKQEAgLTI4NTUsMjIgKzI4NDcsNDAgQEAgZGZhc3RhdGUgKHN0YXRlX251bSBz LCBzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gdHJhbnNbXSkKICAgICBmcmVlIChncnBzW2ld LmVsZW1zKTsKICAgZnJlZSAoZm9sbG93cy5lbGVtcyk7CiAgIGZyZWUgKHRtcC5lbGVtcyk7 Ci0gIGZyZWUgKGdycHMpOwotICBmcmVlIChsYWJlbHMpOworfQorCitzdGF0aWMgdm9pZAor cmVhbGxvY190cmFuc19pZl9uZWNlc3NhcnkgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBu ZXdfc3RhdGUpCit7CisgIC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSB0cmFucyBhbmQgZmFpbCBh cnJheXMgYXJlIGFsbG9jYXRlZCBsYXJnZSBlbm91Z2gKKyAgICAgdG8gaG9sZCBhIHBvaW50 ZXIgZm9yIHRoZSBuZXcgc3RhdGUuICAqLworICBpZiAoZC0+dHJhbGxvYyA8PSBuZXdfc3Rh dGUpCisgICAgeworICAgICAgc3RydWN0IGRmYXRhYiAqdGFiXzEgPSBkLT50YWIgLSAxOwor ICAgICAgc3RhdGVfbnVtIG9sZGFsbG9jID0gZC0+dHJhbGxvYyArIDE7CisgICAgICBzdGF0 ZV9udW0gbmV3YWxsb2M7CisKKyAgICAgIGQtPnRyYWxsb2MgPSBuZXdfc3RhdGUgKyAxOwor ICAgICAgdGFiXzEgPSB4Mm5yZWFsbG9jICh0YWJfMSwgJmQtPnRyYWxsb2MsIHNpemVvZiAq dGFiXzEpOworICAgICAgbmV3YWxsb2MgPSBkLT50cmFsbG9jLS07CisgICAgICBkLT50YWIg PSB0YWJfMSArIDE7CisgICAgICBmb3IgKDsgb2xkYWxsb2MgPCBuZXdhbGxvYzsgb2xkYWxs b2MrKykKKyAgICAgICAgdGFiXzFbb2xkYWxsb2NdLnRyYW5zID0gdGFiXzFbb2xkYWxsb2Nd LmZhaWxzID0gTlVMTDsKKyAgICB9CiB9CiAKIC8qIFNvbWUgcm91dGluZXMgZm9yIG1hbmlw dWxhdGluZyBhIGNvbXBpbGVkIGRmYSdzIHRyYW5zaXRpb24gdGFibGVzLgogICAgRWFjaCBz dGF0ZSBtYXkgb3IgbWF5IG5vdCBoYXZlIGEgdHJhbnNpdGlvbiB0YWJsZTsgaWYgaXQgZG9l cywgYW5kIGl0Ci0gICBpcyBhIG5vbi1hY2NlcHRpbmcgc3RhdGUsIHRoZW4gZC0+dHJhbnNb c3RhdGVdIHBvaW50cyB0byBpdHMgdGFibGUuCi0gICBJZiBpdCBpcyBhbiBhY2NlcHRpbmcg c3RhdGUgdGhlbiBkLT5mYWlsc1tzdGF0ZV0gcG9pbnRzIHRvIGl0cyB0YWJsZS4KLSAgIElm IGl0IGhhcyBubyB0YWJsZSBhdCBhbGwsIHRoZW4gZC0+dHJhbnNbc3RhdGVdIGlzIE5VTEwu CisgICBpcyBhIG5vbi1hY2NlcHRpbmcgc3RhdGUsIHRoZW4gZC0+dGFiW3N0YXRlXS50cmFu cyBwb2ludHMgdG8gaXRzIHRhYmxlLgorICAgSWYgaXQgaXMgYW4gYWNjZXB0aW5nIHN0YXRl IHRoZW4gZC0+dGFiW3N0YXRlXS5mYWlscyBwb2ludHMgdG8gaXRzIHRhYmxlLgorICAgSWYg aXQgaGFzIG5vIHRhYmxlIGF0IGFsbCwgdGhlbiBkLT50YWJbc3RhdGVdLnRyYW5zIGlzIE5V TEwuCiAgICBUT0RPOiBJbXByb3ZlIHRoaXMgY29tbWVudCwgZ2V0IHJpZCBvZiB0aGUgdW5u ZWNlc3NhcnkgcmVkdW5kYW5jeS4gICovCiAKIHN0YXRpYyB2b2lkCiBidWlsZF9zdGF0ZSAo c3RhdGVfbnVtIHMsIHN0cnVjdCBkZmEgKmQpCiB7CiAgIHN0YXRlX251bSAqdHJhbnM7ICAg ICAgICAgICAgIC8qIFRoZSBuZXcgdHJhbnNpdGlvbiB0YWJsZS4gICovCi0gIHN0YXRlX251 bSBpOworICBzdGF0ZV9udW0gaSwgbWF4c3RhdGU7CiAKICAgLyogU2V0IGFuIHVwcGVyIGxp bWl0IG9uIHRoZSBudW1iZXIgb2YgdHJhbnNpdGlvbiB0YWJsZXMgdGhhdCB3aWxsIGV2ZXIK ICAgICAgZXhpc3QgYXQgb25jZS4gIDEwMjQgaXMgYXJiaXRyYXJ5LiAgVGhlIGlkZWEgaXMg dGhhdCB0aGUgZnJlcXVlbnRseQpAQCAtMjg4MCw5ICsyODkwLDkgQEAgYnVpbGRfc3RhdGUg KHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkKQogICAgIHsKICAgICAgIGZvciAoaSA9IDA7 IGkgPCBkLT50cmFsbG9jOyArK2kpCiAgICAgICAgIHsKLSAgICAgICAgICBmcmVlIChkLT50 cmFuc1tpXSk7Ci0gICAgICAgICAgZnJlZSAoZC0+ZmFpbHNbaV0pOwotICAgICAgICAgIGQt PnRyYW5zW2ldID0gZC0+ZmFpbHNbaV0gPSBOVUxMOworICAgICAgICAgIGZyZWUgKGQtPnRh YltpXS50cmFucyk7CisgICAgICAgICAgZnJlZSAoZC0+dGFiW2ldLmZhaWxzKTsKKyAgICAg ICAgICBkLT50YWJbaV0udHJhbnMgPSBkLT50YWJbaV0uZmFpbHMgPSBOVUxMOwogICAgICAg ICB9CiAgICAgICBkLT50cmNvdW50ID0gMDsKICAgICB9CkBAIC0yODkwLDYwICsyOTAwLDQ5 IEBAIGJ1aWxkX3N0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAqZCkKICAgKytkLT50 cmNvdW50OwogCiAgIC8qIFNldCB1cCB0aGUgc3VjY2VzcyBiaXRzIGZvciB0aGlzIHN0YXRl LiAgKi8KLSAgZC0+c3VjY2Vzc1tzXSA9IDA7CisgIGQtPnRhYltzXS5zdWNjZXNzID0gMDsK ICAgaWYgKEFDQ0VQVFNfSU5fQ09OVEVYVCAoZC0+c3RhdGVzW3NdLmNvbnRleHQsIENUWF9O RVdMSU5FLCBzLCAqZCkpCi0gICAgZC0+c3VjY2Vzc1tzXSB8PSBDVFhfTkVXTElORTsKKyAg ICBkLT50YWJbc10uc3VjY2VzcyB8PSBDVFhfTkVXTElORTsKICAgaWYgKEFDQ0VQVFNfSU5f Q09OVEVYVCAoZC0+c3RhdGVzW3NdLmNvbnRleHQsIENUWF9MRVRURVIsIHMsICpkKSkKLSAg ICBkLT5zdWNjZXNzW3NdIHw9IENUWF9MRVRURVI7CisgICAgZC0+dGFiW3NdLnN1Y2Nlc3Mg fD0gQ1RYX0xFVFRFUjsKICAgaWYgKEFDQ0VQVFNfSU5fQ09OVEVYVCAoZC0+c3RhdGVzW3Nd LmNvbnRleHQsIENUWF9OT05FLCBzLCAqZCkpCi0gICAgZC0+c3VjY2Vzc1tzXSB8PSBDVFhf Tk9ORTsKKyAgICBkLT50YWJbc10uc3VjY2VzcyB8PSBDVFhfTk9ORTsKIAotICBNQUxMT0Mg KHRyYW5zLCBOT1RDSEFSKTsKKyAgdHJhbnMgPSB4bWFsbG9jIChOT1RDSEFSICogc2l6ZW9m ICp0cmFucyk7CiAgIGRmYXN0YXRlIChzLCBkLCB0cmFucyk7CiAKICAgLyogTm93IGdvIHRo cm91Z2ggdGhlIG5ldyB0cmFuc2l0aW9uIHRhYmxlLCBhbmQgbWFrZSBzdXJlIHRoYXQgdGhl IHRyYW5zCiAgICAgIGFuZCBmYWlsIGFycmF5cyBhcmUgYWxsb2NhdGVkIGxhcmdlIGVub3Vn aCB0byBob2xkIGEgcG9pbnRlciBmb3IgdGhlCiAgICAgIGxhcmdlc3Qgc3RhdGUgbWVudGlv bmVkIGluIHRoZSB0YWJsZS4gICovCisgIG1heHN0YXRlID0gLTE7CiAgIGZvciAoaSA9IDA7 IGkgPCBOT1RDSEFSOyArK2kpCi0gICAgaWYgKHRyYW5zW2ldID49IGQtPnRyYWxsb2MpCi0g ICAgICB7Ci0gICAgICAgIHN0YXRlX251bSBvbGRhbGxvYyA9IGQtPnRyYWxsb2M7Ci0KLSAg ICAgICAgd2hpbGUgKHRyYW5zW2ldID49IGQtPnRyYWxsb2MpCi0gICAgICAgICAgZC0+dHJh bGxvYyAqPSAyOwotICAgICAgICBSRUFMTE9DIChkLT5yZWFsdHJhbnMsIGQtPnRyYWxsb2Mg KyAxKTsKLSAgICAgICAgZC0+dHJhbnMgPSBkLT5yZWFsdHJhbnMgKyAxOwotICAgICAgICBS RUFMTE9DIChkLT5mYWlscywgZC0+dHJhbGxvYyk7Ci0gICAgICAgIFJFQUxMT0MgKGQtPnN1 Y2Nlc3MsIGQtPnRyYWxsb2MpOwotICAgICAgICBSRUFMTE9DIChkLT5uZXdsaW5lcywgZC0+ dHJhbGxvYyk7Ci0gICAgICAgIHdoaWxlIChvbGRhbGxvYyA8IGQtPnRyYWxsb2MpCi0gICAg ICAgICAgewotICAgICAgICAgICAgZC0+dHJhbnNbb2xkYWxsb2NdID0gTlVMTDsKLSAgICAg ICAgICAgIGQtPmZhaWxzW29sZGFsbG9jKytdID0gTlVMTDsKLSAgICAgICAgICB9Ci0gICAg ICB9CisgICAgaWYgKG1heHN0YXRlIDwgdHJhbnNbaV0pCisgICAgICBtYXhzdGF0ZSA9IHRy YW5zW2ldOworICByZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSAoZCwgbWF4c3RhdGUpOwog CiAgIC8qIEtlZXAgdGhlIG5ld2xpbmUgdHJhbnNpdGlvbiBpbiBhIHNwZWNpYWwgcGxhY2Ug c28gd2UgY2FuIHVzZSBpdCBhcwogICAgICBhIHNlbnRpbmVsLiAgKi8KLSAgZC0+bmV3bGlu ZXNbc10gPSB0cmFuc1tlb2xieXRlXTsKKyAgZC0+dGFiW3NdLm5ld2xpbmVzID0gdHJhbnNb ZW9sYnl0ZV07CiAgIHRyYW5zW2VvbGJ5dGVdID0gLTE7CiAKICAgaWYgKEFDQ0VQVElORyAo cywgKmQpKQotICAgIGQtPmZhaWxzW3NdID0gdHJhbnM7CisgICAgZC0+dGFiW3NdLmZhaWxz ID0gdHJhbnM7CiAgIGVsc2UKLSAgICBkLT50cmFuc1tzXSA9IHRyYW5zOworICAgIGQtPnRh YltzXS50cmFucyA9IHRyYW5zOwogfQogCiBzdGF0aWMgdm9pZAogYnVpbGRfc3RhdGVfemVy byAoc3RydWN0IGRmYSAqZCkKIHsKLSAgZC0+dHJhbGxvYyA9IDE7CisgIHN0cnVjdCBkZmF0 YWIgKnRhYl8xOworICBzaXplX3QgaSwgbmV3YWxsb2M7CiAgIGQtPnRyY291bnQgPSAwOwot ICBDQUxMT0MgKGQtPnJlYWx0cmFucywgZC0+dHJhbGxvYyArIDEpOwotICBkLT50cmFucyA9 IGQtPnJlYWx0cmFucyArIDE7Ci0gIENBTExPQyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2MpOwot ICBNQUxMT0MgKGQtPnN1Y2Nlc3MsIGQtPnRyYWxsb2MpOwotICBNQUxMT0MgKGQtPm5ld2xp bmVzLCBkLT50cmFsbG9jKTsKKyAgZC0+dHJhbGxvYyA9IDA7CisgIHRhYl8xID0geDJucmVh bGxvYyAoTlVMTCwgJmQtPnRyYWxsb2MsIHNpemVvZiAqdGFiXzEpOworICBuZXdhbGxvYyA9 IGQtPnRyYWxsb2MtLTsKKyAgZC0+dGFiID0gdGFiXzEgKyAxOworICBmb3IgKGkgPSAwOyBp IDwgbmV3YWxsb2M7IGkrKykKKyAgICB0YWJfMVtpXS50cmFucyA9IHRhYl8xW2ldLmZhaWxz ID0gTlVMTDsKICAgYnVpbGRfc3RhdGUgKDAsIGQpOwogfQogCkBAIC0yOTcyLDMwICsyOTcx LDYgQEAgYnVpbGRfc3RhdGVfemVybyAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgfQkJCQkJ CVwKICAgICB9CiAKLXN0YXRpYyB2b2lkCi1yZWFsbG9jX3RyYW5zX2lmX25lY2Vzc2FyeSAo c3RydWN0IGRmYSAqZCwgc3RhdGVfbnVtIG5ld19zdGF0ZSkKLXsKLSAgLyogTWFrZSBzdXJl IHRoYXQgdGhlIHRyYW5zIGFuZCBmYWlsIGFycmF5cyBhcmUgYWxsb2NhdGVkIGxhcmdlIGVu b3VnaAotICAgICB0byBob2xkIGEgcG9pbnRlciBmb3IgdGhlIG5ldyBzdGF0ZS4gICovCi0g IGlmIChuZXdfc3RhdGUgPj0gZC0+dHJhbGxvYykKLSAgICB7Ci0gICAgICBzdGF0ZV9udW0g b2xkYWxsb2MgPSBkLT50cmFsbG9jOwotCi0gICAgICB3aGlsZSAobmV3X3N0YXRlID49IGQt PnRyYWxsb2MpCi0gICAgICAgIGQtPnRyYWxsb2MgKj0gMjsKLSAgICAgIFJFQUxMT0MgKGQt PnJlYWx0cmFucywgZC0+dHJhbGxvYyArIDEpOwotICAgICAgZC0+dHJhbnMgPSBkLT5yZWFs dHJhbnMgKyAxOwotICAgICAgUkVBTExPQyAoZC0+ZmFpbHMsIGQtPnRyYWxsb2MpOwotICAg ICAgUkVBTExPQyAoZC0+c3VjY2VzcywgZC0+dHJhbGxvYyk7Ci0gICAgICBSRUFMTE9DIChk LT5uZXdsaW5lcywgZC0+dHJhbGxvYyk7Ci0gICAgICB3aGlsZSAob2xkYWxsb2MgPCBkLT50 cmFsbG9jKQotICAgICAgICB7Ci0gICAgICAgICAgZC0+dHJhbnNbb2xkYWxsb2NdID0gTlVM TDsKLSAgICAgICAgICBkLT5mYWlsc1tvbGRhbGxvYysrXSA9IE5VTEw7Ci0gICAgICAgIH0K LSAgICB9Ci19Ci0KIC8qIFJldHVybiB2YWx1ZXMgb2YgdHJhbnNpdF9zdGF0ZV9zaW5nbGVi eXRlLCBhbmQKICAgIHRyYW5zaXRfc3RhdGVfY29uc3VtZV8xY2hhci4gICovCiB0eXBlZGVm IGVudW0KQEAgLTMwMTMsMTQgKzI5ODgsMTQgQEAgc3RhdGljIHN0YXR1c190cmFuc2l0X3N0 YXRlCiB0cmFuc2l0X3N0YXRlX3NpbmdsZWJ5dGUgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251 bSBzLCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0ZV9udW0gKiBuZXh0X3N0YXRlKQogewotICBzdGF0ZV9udW0gKnQ7CiAgIHN0YXRl X251bSB3b3JrcyA9IHM7CiAKICAgc3RhdHVzX3RyYW5zaXRfc3RhdGUgcnZhbCA9IFRSQU5T SVRfU1RBVEVfSU5fUFJPR1JFU1M7CiAKICAgd2hpbGUgKHJ2YWwgPT0gVFJBTlNJVF9TVEFU RV9JTl9QUk9HUkVTUykKICAgICB7Ci0gICAgICBpZiAoKHQgPSBkLT50cmFuc1t3b3Jrc10p ICE9IE5VTEwpCisgICAgICBzdGF0ZV9udW0gKnQgPSBkLT50YWJbd29ya3NdLnRyYW5zOwor ICAgICAgaWYgKHQpCiAgICAgICAgIHsKICAgICAgICAgICB3b3JrcyA9IHRbKnBdOwogICAg ICAgICAgIHJ2YWwgPSBUUkFOU0lUX1NUQVRFX0RPTkU7CkBAIC0zMDM2LDkgKzMwMTEsOSBA QCB0cmFuc2l0X3N0YXRlX3NpbmdsZWJ5dGUgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBz LCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLAogICAgICAgICAgICAgfQogICAgICAgICAgIHdv cmtzID0gMDsKICAgICAgICAgfQotICAgICAgZWxzZSBpZiAoZC0+ZmFpbHNbd29ya3NdKQor ICAgICAgZWxzZSBpZiAoZC0+dGFiW3dvcmtzXS5mYWlscykKICAgICAgICAgewotICAgICAg ICAgIHdvcmtzID0gZC0+ZmFpbHNbd29ya3NdWypwXTsKKyAgICAgICAgICB3b3JrcyA9IGQt PnRhYlt3b3Jrc10uZmFpbHNbKnBdOwogICAgICAgICAgIHJ2YWwgPSBUUkFOU0lUX1NUQVRF X0RPTkU7CiAgICAgICAgIH0KICAgICAgIGVsc2UKQEAgLTMxNzAsNyArMzE0NSw3IEBAIG1h dGNoX21iX2NoYXJzZXQgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBzLCBwb3NpdGlvbiBw b3MsIHNpemVfdCBpZHgpCiAgIC8qIG1hdGNoIHdpdGggYSByYW5nZT8gICovCiAgIGZvciAo aSA9IDA7IGkgPCB3b3JrX21iYy0+bnJhbmdlczsgaSsrKQogICAgIHsKLSAgICAgIGlmICh3 b3JrX21iYy0+cmFuZ2Vfc3RzW2ldIDw9IHdjICYmIHdjIDw9IHdvcmtfbWJjLT5yYW5nZV9l bmRzW2ldKQorICAgICAgaWYgKHdvcmtfbWJjLT5yYW5nZXNbaV0uYmVnIDw9IHdjICYmIHdj IDw9IHdvcmtfbWJjLT5yYW5nZXNbaV0uZW5kKQogICAgICAgICBnb3RvIGNoYXJzZXRfbWF0 Y2hlZDsKICAgICB9CiAKQEAgLTMxOTksOSArMzE3NCw4IEBAIHN0YXRpYyBpbnQgKgogY2hl Y2tfbWF0Y2hpbmdfd2l0aF9tdWx0aWJ5dGVfb3BzIChzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9u dW0gcywgc2l6ZV90IGlkeCkKIHsKICAgc2l6ZV90IGk7Ci0gIGludCAqcmFycmF5OworICBp bnQgKnJhcnJheSA9IHhubWFsbG9jIChkLT5zdGF0ZXNbc10ubWJwcy5uZWxlbSwgc2l6ZW9m ICpyYXJyYXkpOwogCi0gIE1BTExPQyAocmFycmF5LCBkLT5zdGF0ZXNbc10ubWJwcy5uZWxl bSk7CiAgIGZvciAoaSA9IDA7IGkgPCBkLT5zdGF0ZXNbc10ubWJwcy5uZWxlbTsgKytpKQog ICAgIHsKICAgICAgIHBvc2l0aW9uIHBvcyA9IGQtPnN0YXRlc1tzXS5tYnBzLmVsZW1zW2ld OwpAQCAtMzQxMCw4ICszMzg0LDggQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBj b25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKIHsKICAgc3RhdGVfbnVtIHMsIHMxOyAgICAgICAg ICAgICAgLyogQ3VycmVudCBzdGF0ZS4gICovCiAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKnA7 ICAgICAgIC8qIEN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyLiAgKi8KLSAgc3RhdGVfbnVtICoq dHJhbnMsICp0OyAgICAgICAgLyogQ29weSBvZiBkLT50cmFucyBzbyBpdCBjYW4gYmUgb3B0 aW1pemVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludG8gYSByZWdp c3Rlci4gICovCisgIHN0cnVjdCBkZmF0YWIgKnRhYjsJCS8qIEhlbHAgdGhlIGNvbXBpbGVy LiAgKi8KKyAgc3RhdGVfbnVtICp0OwogICB1bnNpZ25lZCBjaGFyIGVvbCA9IGVvbGJ5dGU7 ICAvKiBMaWtld2lzZSBmb3IgZW9sYnl0ZS4gICovCiAgIHVuc2lnbmVkIGNoYXIgc2F2ZWRf ZW5kOwogCkBAIC0zNDIwLDE0ICszMzk0LDE0IEBAIGRmYWV4ZWMgKHN0cnVjdCBkZmEgKmQs IGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAKICAgcyA9IHMxID0gMDsKICAgcCA9 ICh1bnNpZ25lZCBjaGFyIGNvbnN0ICopIGJlZ2luOwotICB0cmFucyA9IGQtPnRyYW5zOwor ICB0YWIgPSBkLT50YWI7CiAgIHNhdmVkX2VuZCA9ICoodW5zaWduZWQgY2hhciAqKSBlbmQ7 CiAgICplbmQgPSBlb2w7CiAKICAgaWYgKGQtPm1iX2N1cl9tYXggPiAxKQogICAgIHsKLSAg ICAgIE1BTExPQyAobWJsZW5fYnVmLCBlbmQgLSBiZWdpbiArIDIpOwotICAgICAgTUFMTE9D IChpbnB1dHdjcywgZW5kIC0gYmVnaW4gKyAyKTsKKyAgICAgIG1ibGVuX2J1ZiA9IHhubWFs bG9jIChlbmQgLSBiZWdpbiArIDIsIHNpemVvZiAqbWJsZW5fYnVmKTsKKyAgICAgIGlucHV0 d2NzID0geG5tYWxsb2MgKGVuZCAtIGJlZ2luICsgMiwgc2l6ZW9mICppbnB1dHdjcyk7CiAg ICAgICBtZW1zZXQgKCZtYnMsIDAsIHNpemVvZiAobWJzdGF0ZV90KSk7CiAgICAgICBwcmVw YXJlX3djX2J1ZiAoZCwgKGNvbnN0IGNoYXIgKikgcCwgZW5kKTsKICAgICB9CkBAIC0zNDM2 LDcgKzM0MTAsNyBAQCBkZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdp biwgY2hhciAqZW5kLAogICAgIHsKICAgICAgIGlmIChkLT5tYl9jdXJfbWF4ID4gMSkKICAg ICAgICAgewotICAgICAgICAgIHdoaWxlICgodCA9IHRyYW5zW3NdKSAhPSBOVUxMKQorICAg ICAgICAgIHdoaWxlICgodCA9IHRhYltzXS50cmFucykgIT0gTlVMTCkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgaWYgKHAgPiBidWZfZW5kKQogICAgICAgICAgICAgICAgIGJy ZWFrOwpAQCAtMzQ2NSwxNSArMzQzOSwxNSBAQCBkZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBj aGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAogICAgICAgICAgICAgICAvKiBDYW4gbWF0 Y2ggd2l0aCBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgKGFuZCBtdWx0aSBjaGFyYWN0ZXIKICAg ICAgICAgICAgICAgICAgY29sbGF0aW5nIGVsZW1lbnQpLiAgVHJhbnNpdGlvbiB0YWJsZSBt aWdodCBiZSB1cGRhdGVkLiAgKi8KICAgICAgICAgICAgICAgcyA9IHRyYW5zaXRfc3RhdGUg KGQsIHMsICZwKTsKLSAgICAgICAgICAgICAgdHJhbnMgPSBkLT50cmFuczsKKyAgICAgICAg ICAgICAgdGFiID0gZC0+dGFiOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICBl bHNlCiAgICAgICAgIHsKLSAgICAgICAgICB3aGlsZSAoKHQgPSB0cmFuc1tzXSkgIT0gTlVM TCkKKyAgICAgICAgICB3aGlsZSAoKHQgPSB0YWJbc10udHJhbnMpICE9IE5VTEwpCiAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIHMxID0gdFsqcCsrXTsKLSAgICAgICAgICAgICAg aWYgKCh0ID0gdHJhbnNbczFdKSA9PSBOVUxMKQorICAgICAgICAgICAgICBpZiAoKHQgPSB0 YWJbczFdLnRyYW5zKSA9PSBOVUxMKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgIHN0YXRlX251bSB0bXAgPSBzOwogICAgICAgICAgICAgICAgICAgcyA9IHMxOwpA QCAtMzQ4NCw5ICszNDU4LDkgQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25z dCAqYmVnaW4sIGNoYXIgKmVuZCwKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg ICBpZiAocyA+PSAwICYmIChjaGFyICopIHAgPD0gZW5kICYmIGQtPmZhaWxzW3NdKQorICAg ICAgaWYgKHMgPj0gMCAmJiAoY2hhciAqKSBwIDw9IGVuZCAmJiBkLT50YWJbc10uZmFpbHMp CiAgICAgICAgIHsKLSAgICAgICAgICBpZiAoZC0+c3VjY2Vzc1tzXSAmIHNiaXRbKnBdKQor ICAgICAgICAgIGlmIChkLT50YWJbc10uc3VjY2VzcyAmIHNiaXRbKnBdKQogICAgICAgICAg ICAgewogICAgICAgICAgICAgICBpZiAoYmFja3JlZikKICAgICAgICAgICAgICAgICAqYmFj a3JlZiA9IChkLT5zdGF0ZXNbc10uYmFja3JlZiAhPSAwKTsKQEAgLTM1MDUsMTAgKzM0Nzks MTAgQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIg KmVuZCwKICAgICAgICAgICAgICAgLyogQ2FuIG1hdGNoIHdpdGggYSBtdWx0aWJ5dGUgY2hh cmFjdGVyIChhbmQgbXVsdGljaGFyYWN0ZXIKICAgICAgICAgICAgICAgICAgY29sbGF0aW5n IGVsZW1lbnQpLiAgVHJhbnNpdGlvbiB0YWJsZSBtaWdodCBiZSB1cGRhdGVkLiAgKi8KICAg ICAgICAgICAgICAgcyA9IHRyYW5zaXRfc3RhdGUgKGQsIHMsICZwKTsKLSAgICAgICAgICAg ICAgdHJhbnMgPSBkLT50cmFuczsKKyAgICAgICAgICAgICAgdGFiID0gZC0+dGFiOwogICAg ICAgICAgICAgfQogICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHMgPSBkLT5mYWlsc1tz XVsqcCsrXTsKKyAgICAgICAgICAgIHMgPSBkLT50YWJbc10uZmFpbHNbKnArK107CiAgICAg ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMzUzNywxMyArMzUxMSwxMyBAQCBk ZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAog ICAgICAgaWYgKHMgPj0gMCkKICAgICAgICAgewogICAgICAgICAgIGJ1aWxkX3N0YXRlIChz LCBkKTsKLSAgICAgICAgICB0cmFucyA9IGQtPnRyYW5zOworICAgICAgICAgIHRhYiA9IGQt PnRhYjsKICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICBpZiAocFst MV0gPT0gZW9sICYmIGFsbG93X25sKQogICAgICAgICB7Ci0gICAgICAgICAgcyA9IGQtPm5l d2xpbmVzW3MxXTsKKyAgICAgICAgICBzID0gZC0+dGFiW3MxXS5uZXdsaW5lczsKICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC0zNTY1LDggKzM1MzksNyBAQCBmcmVl X21iZGF0YSAoc3RydWN0IGRmYSAqZCkKICAgICAgIHN0cnVjdCBtYl9jaGFyX2NsYXNzZXMg KnAgPSAmKGQtPm1iY3NldHNbaV0pOwogICAgICAgZnJlZSAocC0+Y2hhcnMpOwogICAgICAg ZnJlZSAocC0+Y2hfY2xhc3Nlcyk7Ci0gICAgICBmcmVlIChwLT5yYW5nZV9zdHMpOwotICAg ICAgZnJlZSAocC0+cmFuZ2VfZW5kcyk7CisgICAgICBmcmVlIChwLT5yYW5nZXMpOwogCiAg ICAgICBmb3IgKGogPSAwOyBqIDwgcC0+bmVxdWl2czsgKytqKQogICAgICAgICBmcmVlIChw LT5lcXVpdnNbal0pOwpAQCAtMzU4OCwyMiArMzU2MSw3IEBAIHZvaWQKIGRmYWluaXQgKHN0 cnVjdCBkZmEgKmQpCiB7CiAgIG1lbXNldCAoZCwgMCwgc2l6ZW9mICpkKTsKLQotICBkLT5j YWxsb2MgPSAxOwotICBNQUxMT0MgKGQtPmNoYXJjbGFzc2VzLCBkLT5jYWxsb2MpOwotCi0g IGQtPnRhbGxvYyA9IDE7Ci0gIE1BTExPQyAoZC0+dG9rZW5zLCBkLT50YWxsb2MpOwotCiAg IGQtPm1iX2N1cl9tYXggPSBNQl9DVVJfTUFYOwotCi0gIGlmIChkLT5tYl9jdXJfbWF4ID4g MSkKLSAgICB7Ci0gICAgICBkLT5ubXVsdGlieXRlX3Byb3AgPSAxOwotICAgICAgTUFMTE9D IChkLT5tdWx0aWJ5dGVfcHJvcCwgZC0+bm11bHRpYnl0ZV9wcm9wKTsKLSAgICAgIGQtPm1i Y3NldHNfYWxsb2MgPSAxOwotICAgICAgTUFMTE9DIChkLT5tYmNzZXRzLCBkLT5tYmNzZXRz X2FsbG9jKTsKLSAgICB9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0zNjcwLDEzICszNjI4LDEw IEBAIGRmYWZyZWUgKHN0cnVjdCBkZmEgKmQpCiAgIGZyZWUgKGQtPmZvbGxvd3MpOwogICBm b3IgKGkgPSAwOyBpIDwgZC0+dHJhbGxvYzsgKytpKQogICAgIHsKLSAgICAgIGZyZWUgKGQt PnRyYW5zW2ldKTsKLSAgICAgIGZyZWUgKGQtPmZhaWxzW2ldKTsKKyAgICAgIGZyZWUgKGQt PnRhYltpXS50cmFucyk7CisgICAgICBmcmVlIChkLT50YWJbaV0uZmFpbHMpOwogICAgIH0K LSAgZnJlZSAoZC0+cmVhbHRyYW5zKTsKLSAgZnJlZSAoZC0+ZmFpbHMpOwotICBmcmVlIChk LT5uZXdsaW5lcyk7Ci0gIGZyZWUgKGQtPnN1Y2Nlc3MpOworICBmcmVlIChkLT50YWIgLSAx KTsKICAgZm9yIChkbSA9IGQtPm11c3RzOyBkbTsgZG0gPSBuZG0pCiAgICAgewogICAgICAg bmRtID0gZG0tPm5leHQ7CkBAIC0zODQ5LDcgKzM4MDQsNyBAQCBlbmxpc3QgKGNoYXIgKipj cHAsIGNoYXIgKm5ldywgc2l6ZV90IGxlbikKICAgICAgICAgY3BwW2ldID0gTlVMTDsKICAg ICAgIH0KICAgLyogQWRkIHRoZSBuZXcgc3RyaW5nLiAgKi8KLSAgUkVBTExPQyAoY3BwLCBp ICsgMik7CisgIGNwcCA9IHhucmVhbGxvYyAoY3BwLCBpICsgMiwgc2l6ZW9mICpjcHApOwog ICBjcHBbaV0gPSBuZXc7CiAgIGNwcFtpICsgMV0gPSBOVUxMOwogICByZXR1cm4gY3BwOwpA QCAtMzk4Miw3ICszOTM3LDcgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKIAogICByZXN1 bHQgPSBlbXB0eV9zdHJpbmc7CiAgIGV4YWN0ID0gMDsKLSAgTUFMTE9DIChtdXN0cywgZC0+ dGluZGV4ICsgMSk7CisgIG11c3RzID0geG5tYWxsb2MgKGQtPnRpbmRleCArIDEsIHNpemVv ZiAqbXVzdHMpOwogICBtcCA9IG11c3RzOwogICBmb3IgKGkgPSAwOyBpIDw9IGQtPnRpbmRl eDsgKytpKQogICAgIG1wW2ldID0gbXVzdDA7CkBAIC00MTY5LDcgKzQxMjQsNyBAQCBkZmFt dXN0IChzdHJ1Y3QgZGZhICpkKQogZG9uZToKICAgaWYgKHN0cmxlbiAocmVzdWx0KSkKICAg ICB7Ci0gICAgICBNQUxMT0MgKGRtLCAxKTsKKyAgICAgIGRtID0geG1hbGxvYyAoc2l6ZW9m ICpkbSk7CiAgICAgICBkbS0+ZXhhY3QgPSBleGFjdDsKICAgICAgIGRtLT5tdXN0ID0geG1l bWR1cCAocmVzdWx0LCBzdHJsZW4gKHJlc3VsdCkgKyAxKTsKICAgICAgIGRtLT5uZXh0ID0g ZC0+bXVzdHM7Ci0tIAoxLjkuMAoK --------------010202020402050004060400-- ------------=_1397800806-1312-1-- From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Fri, 18 Apr 2014 16:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: 17136@debbugs.gnu.org, Paul Eggert Cc: 17136-done@debbugs.gnu.org Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139783958921774 (code B ref 17136); Fri, 18 Apr 2014 16:47:02 +0000 Received: (at 17136) by debbugs.gnu.org; 18 Apr 2014 16:46:29 +0000 Received: from localhost ([127.0.0.1]:52106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbBvo-0005f1-O4 for submit@debbugs.gnu.org; Fri, 18 Apr 2014 12:46:29 -0400 Received: from mail-yk0-f180.google.com ([209.85.160.180]:56871) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbBvj-0005eX-L5; Fri, 18 Apr 2014 12:46:24 -0400 Received: by mail-yk0-f180.google.com with SMTP id 19so1535877ykq.39 for ; Fri, 18 Apr 2014 09:46:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=PRQc/iXatpx1GFJ2sTkY6CqCuY4JlU/TfibeCVHIBU0=; b=VMJSPKlwhpx3xsJtkHq0z9ppsDCrGX41n5L4agJmyHoqfnjkpb7dZXb60T+CtJl2sp XamJP3QvmwhBC+ZeVRp6kebgaLFLbfcFpJQRXW8vu3e3d1SsScfF1oR7kBntF2Fb4W8o 6tcKAlMRpTRT4YZR+GtTJ5MTisFqInnMXWRL8jgMCsmVbk9yFfLUFNqL/3oacyB9hzKa L/5qdu2n5h+TyJ6XJRc9+Q1hIvz4XiJfkXbo9ylK7urvfycXVVRa48IULE+2TSYm/ay7 ciZ36vlTUkuUTG1X2qqLR0/Zkj38K3/e6mfk/rb5FsetELa5unwuu5qi0QwyRgI/4uW6 2IxA== X-Received: by 10.236.139.70 with SMTP id b46mr3464091yhj.63.1397839577652; Fri, 18 Apr 2014 09:46:17 -0700 (PDT) MIME-Version: 1.0 Received: by 10.170.149.193 with HTTP; Fri, 18 Apr 2014 09:45:57 -0700 (PDT) In-Reply-To: <5350BF35.5040407@cs.ucla.edu> References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> From: Jim Meyering Date: Fri, 18 Apr 2014 09:45:57 -0700 X-Google-Sender-Auth: or71anVY5QFZZjbW5XDz1EKYn_g Message-ID: Content-Type: multipart/mixed; boundary=20cf303dd4347ab20704f753e3a2 X-Spam-Score: -0.7 (/) 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 (/) --20cf303dd4347ab20704f753e3a2 Content-Type: text/plain; charset=ISO-8859-1 Thanks for all the improvements. However, one of them introduced a bug that caused many new "make check" failures. I have fixed it with this just-pushed patch: --20cf303dd4347ab20704f753e3a2 Content-Type: text/plain; charset=US-ASCII; name="k.txt" Content-Disposition: attachment; filename="k.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hu5pkidg12 RnJvbSAwMTRkOTMwYjMzZDVjNmRkYjc0ZTEzYTJhM2Q3MGUyMGY2Y2ZlOGU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog RnJpLCAxOCBBcHIgMjAxNCAwOTozNjoyMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGRmYTogYXZv aWQgbmV3IE5VTEwgZGVyZWZlcmVuY2UKCiogc3JjL2RmYS5jIChkZmFfY2hhcmNsYXNzX2luZGV4 KTogUmVzdG9yZSBhICIrIDEiIG1pc3Rha2VubHkgb21pdHRlZApkdXJpbmcgcmVjZW50IGltcHJv dmVtZW50cy4gIEludHJvZHVjZWQgaW4gdjIuMTgtNjYtZzZhNjBmZDUuCi0tLQogc3JjL2RmYS5j IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IGVlY2EyNTcuLjg0NjM3NjIg MTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTY0Myw3ICs2NDMsNyBA QCBkZmFfY2hhcmNsYXNzX2luZGV4IChzdHJ1Y3QgZGZhICpkLCBjaGFyY2xhc3MgY29uc3QgcykK ICAgZm9yIChpID0gMDsgaSA8IGQtPmNpbmRleDsgKytpKQogICAgIGlmIChlcXVhbCAocywgZC0+ Y2hhcmNsYXNzZXNbaV0pKQogICAgICAgcmV0dXJuIGk7Ci0gIGQtPmNoYXJjbGFzc2VzID0gbWF5 YmVfcmVhbGxvYyAoZC0+Y2hhcmNsYXNzZXMsIGQtPmNpbmRleCwgJmQtPmNhbGxvYywKKyAgZC0+ Y2hhcmNsYXNzZXMgPSBtYXliZV9yZWFsbG9jIChkLT5jaGFyY2xhc3NlcywgZC0+Y2luZGV4ICsg MSwgJmQtPmNhbGxvYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yg KmQtPmNoYXJjbGFzc2VzKTsKICAgKytkLT5jaW5kZXg7CiAgIGNvcHlzZXQgKHMsIGQtPmNoYXJj bGFzc2VzW2ldKTsKLS0KMS45LjAucmMzLjkuZ2UyNjVmMWYKCg== --20cf303dd4347ab20704f753e3a2-- From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Fri, 18 Apr 2014 17:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: 17136 <17136@debbugs.gnu.org>, Paul Eggert Cc: 17136-done <17136-done@debbugs.gnu.org> Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139784047323409 (code B ref 17136); Fri, 18 Apr 2014 17:02:02 +0000 Received: (at 17136) by debbugs.gnu.org; 18 Apr 2014 17:01:13 +0000 Received: from localhost ([127.0.0.1]:52115 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbCA4-00065Q-Lo for submit@debbugs.gnu.org; Fri, 18 Apr 2014 13:01:13 -0400 Received: from mail-yk0-f181.google.com ([209.85.160.181]:53153) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbCA0-000651-Pz; Fri, 18 Apr 2014 13:01:09 -0400 Received: by mail-yk0-f181.google.com with SMTP id 131so1544692ykp.26 for ; Fri, 18 Apr 2014 10:01:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=BAM6cNnmK+teE5jhDaCvVqKL3jMImSGNMb7Jq9JDvnA=; b=Ztvq8r4PR8Oey6rHeejKfUFPYLyr/lgKRATiwVgA4NfIbY8CRHlSLLeglSvRssavVB ZfRco2Q4Gj8UoKmAUw3P7Z9KoSbwy8VJFxb3y2AwtaeNUIHvKkzeRka96XuIXLWrmAsV 99MErCbXRIVY9UztEgtu842XeACbEWz/5I6WkIiJGZBvAgJTnhBu0aYM7WcNss4pAvfE H79qf1uZIR+BaO3xvMEChuAn1gfuJoKADtiNYErCopolLPuUhrbcwbmCpZWSLnVJPV2c a91dKqXnJaIMdQ9K3/f0Aw1G1vNwI1/MIDjiRtS5dvWTosIeocj9Ew5+DeHeNbY2NxD1 rGBA== X-Received: by 10.236.82.208 with SMTP id o56mr1734647yhe.136.1397840463141; Fri, 18 Apr 2014 10:01:03 -0700 (PDT) MIME-Version: 1.0 Received: by 10.170.149.193 with HTTP; Fri, 18 Apr 2014 10:00:43 -0700 (PDT) In-Reply-To: References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> From: Jim Meyering Date: Fri, 18 Apr 2014 10:00:43 -0700 X-Google-Sender-Auth: hjob-WJpq7VD2Q61k2_kvIbSsCs Message-ID: Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) 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 (/) On Fri, Apr 18, 2014 at 9:45 AM, Jim Meyering wrote: > Thanks for all the improvements. > However, one of them introduced a bug that caused many new > "make check" failures. I have fixed it with this just-pushed patch: I have just realized this: It was only a bug if one neglected to update to the latest gnulib. With the newer xn2realloc, there is no problem. I will revert it shortly. From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sat, 19 Apr 2014 00:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Jim Meyering , 17136 <17136@debbugs.gnu.org> Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139786798111073 (code B ref 17136); Sat, 19 Apr 2014 00:40:02 +0000 Received: (at 17136) by debbugs.gnu.org; 19 Apr 2014 00:39:41 +0000 Received: from localhost ([127.0.0.1]:52302 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbJJk-0002sX-Mv for submit@debbugs.gnu.org; Fri, 18 Apr 2014 20:39:40 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:39357) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbJJh-0002sE-60 for 17136@debbugs.gnu.org; Fri, 18 Apr 2014 20:39:37 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 23F3139E801B; Fri, 18 Apr 2014 17:39:31 -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 g7rfzQgeb0ER; Fri, 18 Apr 2014 17:39:22 -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 8921DA60026; Fri, 18 Apr 2014 17:39:22 -0700 (PDT) Message-ID: <5351C5BA.6050603@cs.ucla.edu> Date: Fri, 18 Apr 2014 17:39:22 -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 References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) 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 (---) Jim Meyering wrote: > It was only a bug if one neglected to update to the latest gnulib. Yes, sorry, in hindsight I should have mentioned that in the ChangeLog entry. From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Norihiro Tanaka Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sat, 19 Apr 2014 01:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: 17136-done@debbugs.gnu.org Received: via spool by 17136-done@debbugs.gnu.org id=D17136.139786933213831 (code D ref 17136); Sat, 19 Apr 2014 01:03:01 +0000 Received: (at 17136-done) by debbugs.gnu.org; 19 Apr 2014 01:02:12 +0000 Received: from localhost ([127.0.0.1]:52308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbJfX-0003b1-O3 for submit@debbugs.gnu.org; Fri, 18 Apr 2014 21:02:12 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:56210) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbJfU-0003am-8L for 17136-done@debbugs.gnu.org; Fri, 18 Apr 2014 21:02:09 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id BB1BC138025 for <17136-done@debbugs.gnu.org>; Sat, 19 Apr 2014 10:02:05 +0900 (JST) Received: from mail02.kcn.ne.jp ([61.86.6.181]) by imp03 with bizsmtp id rd241n00u3uLcVp01d24Ny; Sat, 19 Apr 2014 10:02:04 +0900 X-OrgRCPT: 17136-done@debbugs.gnu.org Received: from [10.120.1.62] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail02.kcn.ne.jp (Postfix) with ESMTPA id 22CC5BE8001 for <17136-done@debbugs.gnu.org>; Sat, 19 Apr 2014 10:02:04 +0900 (JST) Date: Sat, 19 Apr 2014 10:02:05 +0900 From: Norihiro Tanaka In-Reply-To: <5351C5BA.6050603@cs.ucla.edu> References: <5351C5BA.6050603@cs.ucla.edu> Message-Id: <20140419100204.5CF3.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-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 (/) Jim Meyering wrote: > It was only a bug if one neglected to update to the latest gnulib. Sorry, I also neglected to update gnulib. From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Norihiro Tanaka Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sat, 19 Apr 2014 01:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: 17136@debbugs.gnu.org, eggert@cs.ucla.edu, eggert@cs.ucla.edu Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139787261020544 (code B ref 17136); Sat, 19 Apr 2014 01:57:02 +0000 Received: (at 17136) by debbugs.gnu.org; 19 Apr 2014 01:56:50 +0000 Received: from localhost ([127.0.0.1]:52334 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbKWP-0005LH-SZ for submit@debbugs.gnu.org; Fri, 18 Apr 2014 21:56:50 -0400 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:54716) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbKWN-0005L3-4F for 17136@debbugs.gnu.org; Fri, 18 Apr 2014 21:56:48 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id 9E2628027D for <17136@debbugs.gnu.org>; Sat, 19 Apr 2014 10:56:43 +0900 (JST) Received: from mail02.kcn.ne.jp ([61.86.6.181]) by imp01 with bizsmtp id rdwj1n00D3uLcVp01dwjwi; Sat, 19 Apr 2014 10:56:43 +0900 X-OrgRCPT: 17136@debbugs.gnu.org Received: from [10.120.1.62] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail02.kcn.ne.jp (Postfix) with ESMTPA id 534EFBE8002; Sat, 19 Apr 2014 10:56:43 +0900 (JST) Date: Sat, 19 Apr 2014 10:56:44 +0900 From: Norihiro Tanaka In-Reply-To: <5350BF35.5040407@cs.ucla.edu> References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> Message-Id: <20140419105621.5CFF.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5351D68D000000005CFB_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: 0.3 (/) 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.3 (/) --------_5351D68D000000005CFB_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Shown two warnings around memory allocation in dfa.c even if update gnulib. I submit the log at make and the patch to fix it. Perhaps, I may run accross it in order to use old GCC (4.1.2 on CentOS 5.10). :-) --------_5351D68D000000005CFB_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="warnings.txt" Content-Disposition: attachment; filename="warnings.txt" Content-Transfer-Encoding: base64 dGVzdCAteiAiZ3JlcCIgfHwgcm0gLWYgZ3JlcA0KdGVzdCAteiAiZWdyZXAgZmdyZXAgKi10IiB8 fCBybSAtZiBlZ3JlcCBmZ3JlcCAqLXQNCnJtIC1mICoubw0KJCBlbnYgTEFORz1DIG1ha2UgVj0x DQpkZXBiYXNlPWBlY2hvIGdyZXAubyB8IHNlZCAnc3xbXi9dKiR8LmRlcHMvJnw7c3xcLm8kfHwn YDtcDQpnY2MgLXN0ZD1nbnU5OSAtREhBVkVfQ09ORklHX0ggLUkuIC1JLi4gIC1JLi4vbGliIC1J Li4vbGliICAtV2FsbCAgLWcgLU1UIGdyZXAubyAtTUQgLU1QIC1NRiAkZGVwYmFzZS5UcG8gLWMg LW8gZ3JlcC5vIGdyZXAuYyAmJlwNCm12IC1mICRkZXBiYXNlLlRwbyAkZGVwYmFzZS5Qbw0KZGVw YmFzZT1gZWNobyBzZWFyY2h1dGlscy5vIHwgc2VkICdzfFteL10qJHwuZGVwcy8mfDtzfFwubyR8 fCdgO1wNCmdjYyAtc3RkPWdudTk5IC1ESEFWRV9DT05GSUdfSCAtSS4gLUkuLiAgLUkuLi9saWIg LUkuLi9saWIgIC1XYWxsICAtZyAtTVQgc2VhcmNodXRpbHMubyAtTUQgLU1QIC1NRiAkZGVwYmFz ZS5UcG8gLWMgLW8gc2VhcmNodXRpbHMubyBzZWFyY2h1dGlscy5jICYmXA0KbXYgLWYgJGRlcGJh c2UuVHBvICRkZXBiYXNlLlBvDQpkZXBiYXNlPWBlY2hvIGRmYS5vIHwgc2VkICdzfFteL10qJHwu ZGVwcy8mfDtzfFwubyR8fCdgO1wNCmdjYyAtc3RkPWdudTk5IC1ESEFWRV9DT05GSUdfSCAtSS4g LUkuLiAgLUkuLi9saWIgLUkuLi9saWIgIC1XYWxsICAtZyAtTVQgZGZhLm8gLU1EIC1NUCAtTUYg JGRlcGJhc2UuVHBvIC1jIC1vIGRmYS5vIGRmYS5jICYmXA0KbXYgLWYgJGRlcGJhc2UuVHBvICRk ZXBiYXNlLlBvDQpkZmEuYzogSW4gZnVuY3Rpb24gJ3N0YXRlX2luZGV4JzoNCmRmYS5jOjIwODg6 IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDMgb2YgJ21heWJl X3JlYWxsb2MnIGRpZmZlciBpbiBzaWduZWRuZXNzDQpkZmEuYzogSW4gZnVuY3Rpb24gJ3JlYWxs b2NfdHJhbnNfaWZfbmVjZXNzYXJ5JzoNCmRmYS5jOjI3ODU6IHdhcm5pbmc6IHBvaW50ZXIgdGFy Z2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3gybnJlYWxsb2MnIGRpZmZlciBpbiBzaWdu ZWRuZXNzDQpkZXBiYXNlPWBlY2hvIGRmYXNlYXJjaC5vIHwgc2VkICdzfFteL10qJHwuZGVwcy8m fDtzfFwubyR8fCdgO1wNCmdjYyAtc3RkPWdudTk5IC1ESEFWRV9DT05GSUdfSCAtSS4gLUkuLiAg LUkuLi9saWIgLUkuLi9saWIgIC1XYWxsICAtZyAtTVQgZGZhc2VhcmNoLm8gLU1EIC1NUCAtTUYg JGRlcGJhc2UuVHBvIC1jIC1vIGRmYXNlYXJjaC5vIGRmYXNlYXJjaC5jICYmXA0KbXYgLWYgJGRl cGJhc2UuVHBvICRkZXBiYXNlLlBvDQpkZXBiYXNlPWBlY2hvIGt3c2V0Lm8gfCBzZWQgJ3N8W14v XSokfC5kZXBzLyZ8O3N8XC5vJHx8J2A7XA0KZ2NjIC1zdGQ9Z251OTkgLURIQVZFX0NPTkZJR19I IC1JLiAtSS4uICAtSS4uL2xpYiAtSS4uL2xpYiAgLVdhbGwgIC1nIC1NVCBrd3NldC5vIC1NRCAt TVAgLU1GICRkZXBiYXNlLlRwbyAtYyAtbyBrd3NldC5vIGt3c2V0LmMgJiZcDQptdiAtZiAkZGVw YmFzZS5UcG8gJGRlcGJhc2UuUG8NCmRlcGJhc2U9YGVjaG8ga3dzZWFyY2gubyB8IHNlZCAnc3xb Xi9dKiR8LmRlcHMvJnw7c3xcLm8kfHwnYDtcDQpnY2MgLXN0ZD1nbnU5OSAtREhBVkVfQ09ORklH X0ggLUkuIC1JLi4gIC1JLi4vbGliIC1JLi4vbGliICAtV2FsbCAgLWcgLU1UIGt3c2VhcmNoLm8g LU1EIC1NUCAtTUYgJGRlcGJhc2UuVHBvIC1jIC1vIGt3c2VhcmNoLm8ga3dzZWFyY2guYyAmJlwN Cm12IC1mICRkZXBiYXNlLlRwbyAkZGVwYmFzZS5Qbw0KZGVwYmFzZT1gZWNobyBwY3Jlc2VhcmNo Lm8gfCBzZWQgJ3N8W14vXSokfC5kZXBzLyZ8O3N8XC5vJHx8J2A7XA0KZ2NjIC1zdGQ9Z251OTkg LURIQVZFX0NPTkZJR19IIC1JLiAtSS4uICAtSS4uL2xpYiAtSS4uL2xpYiAgLVdhbGwgIC1nIC1N VCBwY3Jlc2VhcmNoLm8gLU1EIC1NUCAtTUYgJGRlcGJhc2UuVHBvIC1jIC1vIHBjcmVzZWFyY2gu byBwY3Jlc2VhcmNoLmMgJiZcDQptdiAtZiAkZGVwYmFzZS5UcG8gJGRlcGJhc2UuUG8NCmdjYyAt c3RkPWdudTk5IC1XYWxsICAtZyAgIC1vIGdyZXAgZ3JlcC5vIHNlYXJjaHV0aWxzLm8gZGZhLm8g ZGZhc2VhcmNoLm8ga3dzZXQubyBrd3NlYXJjaC5vIHBjcmVzZWFyY2gubyAuLi9saWIvbGliZ3Jl cHV0aWxzLmEgIC4uL2xpYi9saWJncmVwdXRpbHMuYSAgIC1scGNyZSAtUi91c3IvbG9jYWwvbGli DQpncmVwPWBlY2hvIGdyZXAgfCBzZWQgLWUgJ3MseCx4LCdgICAgICAgJiYgXA0KY2FzZSBlZ3Jl cCBpbiBlZ3JlcCkgb3B0aW9uPS1FOzsgZmdyZXApIG9wdGlvbj0tRjs7IGVzYWMgICAgICAgICYm IFwNCnNlZCAtZSAnc3xbQF1TSEVMTEB8L2Jpbi9iYXNofGcnIFwNCiAgICAtZSAic3xbQF1ncmVw QHwkZ3JlcHxnIiBcDQogICAgLWUgInN8W0Bdb3B0aW9uQHwkb3B0aW9ufGciIDwuL2VncmVwLnNo ID5lZ3JlcC10DQpjaG1vZCAreCBlZ3JlcC10DQptdiBlZ3JlcC10IGVncmVwDQpncmVwPWBlY2hv IGdyZXAgfCBzZWQgLWUgJ3MseCx4LCdgICAgICAgJiYgXA0KY2FzZSBmZ3JlcCBpbiBlZ3JlcCkg b3B0aW9uPS1FOzsgZmdyZXApIG9wdGlvbj0tRjs7IGVzYWMgICAgICAgICYmIFwNCnNlZCAtZSAn c3xbQF1TSEVMTEB8L2Jpbi9iYXNofGcnIFwNCiAgICAtZSAic3xbQF1ncmVwQHwkZ3JlcHxnIiBc DQogICAgLWUgInN8W0Bdb3B0aW9uQHwkb3B0aW9ufGciIDwuL2VncmVwLnNoID5mZ3JlcC10DQpj aG1vZCAreCBmZ3JlcC10DQptdiBmZ3JlcC10IGZncmVwDQo= --------_5351D68D000000005CFB_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA2YjgxNDIwY2UzNTYyODExZmEyMzY0ZTRkODMwOTY4YjE0NWFlYTRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTYXQsIDE5IEFwciAyMDE0IDEwOjQ4OjQ5ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogZml4IHdhcm5pbmdzIGFyb3VuZCBtZW1vcnkgYWxsb2NhdGlvbiBpbiBkZmEuYwoKKiBzcmMv ZGZhLmMgKHN0YXRlX2luZGV4KTogRml4IGl0LgoocmVhbGxvY190cmFuc19pZl9uZWNlc3Nhcnkp OiBGaXggaXQuCi0tLQogc3JjL2RmYS5jIHwgOSArKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIv c3JjL2RmYS5jCmluZGV4IGVlY2EyNTcuLjlhNmFhNWIgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYwor KysgYi9zcmMvZGZhLmMKQEAgLTIwODQsNyArMjA4NCw3IEBAIHN0YXRlX2luZGV4IChzdHJ1Y3Qg ZGZhICpkLCBwb3NpdGlvbl9zZXQgY29uc3QgKnMsIGludCBjb250ZXh0KQogICAgIH0KIAogICAv KiBXZSdsbCBoYXZlIHRvIGNyZWF0ZSBhIG5ldyBzdGF0ZS4gICovCi0gIGQtPnN0YXRlcyA9IG1h eWJlX3JlYWxsb2MgKGQtPnN0YXRlcywgZC0+c2luZGV4LCAmZC0+c2FsbG9jLAorICBkLT5zdGF0 ZXMgPSBtYXliZV9yZWFsbG9jIChkLT5zdGF0ZXMsIGQtPnNpbmRleCwgKHNpemVfdCAqKSAmZC0+ c2FsbG9jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKmQtPnN0YXRlcyk7 CiAgIGQtPnN0YXRlc1tpXS5oYXNoID0gaGFzaDsKICAgYWxsb2NfcG9zaXRpb25fc2V0ICgmZC0+ c3RhdGVzW2ldLmVsZW1zLCBzLT5uZWxlbSk7CkBAIC0yNzgwLDEyICsyNzgwLDExIEBAIHJlYWxs b2NfdHJhbnNfaWZfbmVjZXNzYXJ5IChzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gbmV3X3N0YXRl KQogICBpZiAob2xkYWxsb2MgPD0gbmV3X3N0YXRlKQogICAgIHsKICAgICAgIHN0YXRlX251bSAq KnJlYWx0cmFucyA9IGQtPnRyYW5zID8gZC0+dHJhbnMgLSAxIDogTlVMTDsKLSAgICAgIHNpemVf dCBuZXdhbGxvYzsKLSAgICAgIGQtPnRyYWxsb2MgPSBuZXdfc3RhdGUgKyAxOwotICAgICAgcmVh bHRyYW5zID0geDJucmVhbGxvYyAocmVhbHRyYW5zLCAmZC0+dHJhbGxvYywgc2l6ZW9mICpyZWFs dHJhbnMpOworICAgICAgc2l6ZV90IG5ld2FsbG9jID0gbmV3X3N0YXRlICsgMTsKKyAgICAgIHJl YWx0cmFucyA9IHgybnJlYWxsb2MgKHJlYWx0cmFucywgJm5ld2FsbG9jLCBzaXplb2YgKnJlYWx0 cmFucyk7CisgICAgICBkLT50cmFsbG9jID0gbmV3YWxsb2MtLTsKICAgICAgIHJlYWx0cmFuc1sw XSA9IE5VTEw7CiAgICAgICBkLT50cmFucyA9IHJlYWx0cmFucyArIDE7Ci0gICAgICBuZXdhbGxv YyA9IC0tZC0+dHJhbGxvYzsKICAgICAgIGQtPmZhaWxzID0geG5yZWFsbG9jIChkLT5mYWlscywg bmV3YWxsb2MsIHNpemVvZiAqZC0+ZmFpbHMpOwogICAgICAgZC0+c3VjY2VzcyA9IHhucmVhbGxv YyAoZC0+c3VjY2VzcywgbmV3YWxsb2MsIHNpemVvZiAqZC0+c3VjY2Vzcyk7CiAgICAgICBkLT5u ZXdsaW5lcyA9IHhucmVhbGxvYyAoZC0+bmV3bGluZXMsIG5ld2FsbG9jLCBzaXplb2YgKmQtPm5l d2xpbmVzKTsKLS0gCjEuOS4yCgo= --------_5351D68D000000005CFB_MULTIPART_MIXED_-- From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sat, 19 Apr 2014 06:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Norihiro Tanaka , 17136@debbugs.gnu.org Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139788854821091 (code B ref 17136); Sat, 19 Apr 2014 06:23:02 +0000 Received: (at 17136) by debbugs.gnu.org; 19 Apr 2014 06:22:28 +0000 Received: from localhost ([127.0.0.1]:52372 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbOfT-0005U6-HP for submit@debbugs.gnu.org; Sat, 19 Apr 2014 02:22:27 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:49027) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbOfQ-0005Tm-PJ for 17136@debbugs.gnu.org; Sat, 19 Apr 2014 02:22:26 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 80139A60026; Fri, 18 Apr 2014 23:22:18 -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 m7m5DqqsHkcA; Fri, 18 Apr 2014 23:22:14 -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 7D9B8A6002B; Fri, 18 Apr 2014 23:22:14 -0700 (PDT) Message-ID: <53521616.80204@cs.ucla.edu> Date: Fri, 18 Apr 2014 23:22:14 -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 References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> <20140419105621.5CFF.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140419105621.5CFF.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------060801040305010002090005" X-Spam-Score: -3.0 (---) 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. --------------060801040305010002090005 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Norihiro Tanaka wrote: > Perhaps, I may run accross it in order to use old GCC (4.1.2 on CentOS > 5.10). Thanks, it's lucky you did, so that we won't be inundated by other people reporting similar problems. I see now that we were passing -Wno-pointer-sign to GCC, and that this suppressed useful diagnostics on newer GCC instances (but not on your older one). I installed the attached patch to fix both the signedness problem, and the diagnostic-suppression problem. --------------060801040305010002090005 Content-Type: text/plain; charset=UTF-8; name="0001-dfa-fix-pointer-type-conversion-bug.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-dfa-fix-pointer-type-conversion-bug.patch" RnJvbSA1Zjc5MTFlMDE2YTMxYThkOWRlMjYwZTg2MTAzYjFjMmQyODZiM2ZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDE4IEFwciAyMDE0IDIzOjE3OjQxIC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gZGZhOiBmaXggcG9pbnRlciB0eXBlIGNvbnZlcnNpb24gYnVnCgpUaGUgY29kZSBjb252 ZXJ0ZWQgYmV0d2VlbiBzaXplX3QgKiBhbmQgcHRyZGlmZl90ICosIHdoaWNoIHdhc24ndApk aWFnbm9zZWQgYnkgbW9kZXJuIHg4Ni02NCBHQ0MgYnV0IGlzbid0IHBvcnRhYmxlLiAgUHJv YmxlbQpyZXBvcnRlZCBieSBOb3JpaGlybyBUYW5ha2EgaW4gPGh0dHA6Ly9idWdzLmdudS5v cmcvMTcxMzYjMzE+LgoqIGNvbmZpZ3VyZS5hYyAoV0VSUk9SX0NGTEFHUyk6IERvbid0IGFk ZCAtV25vLXBvaW50ZXItc2lnbi4KV2Ugd2FudCBHQ0MgdG8gZGlhZ25vc2UgcG9pbnRlciBz aWduZWRuZXNzIHByb2JsZW1zLCBhcyB0aGV5CnZpb2xhdGUgdGhlIEMgc3RhbmRhcmQgYW5k IG90aGVyIGNvbXBpbGVycyBubyBkb3VidCBjb21wbGFpbiB0b28uCiogc3JjL2RmYS5jIChz dHJ1Y3QgZGZhKTogQ2hhbmdlIHR5cGUgb2Ygc2FsbG9jIHRvIHNpemVfdC4KKHJlYWxsb2Nf dHJhbnNfaWZfbmVjZXNzYXJ5KTogQ29udmVydCBzaWduZWQgdmFsdWUgdG8gc2l6ZV90IGJl Zm9yZQpwYXNzaW5nIGl0cyBhZGRyZXNzIHRvIHgybnJlYWxsb2MuICBDaGFuZ2luZyB0aGUg dHlwZSBvZiB0cmFsbG9jCnRvIHNpemVfdCBtaWdodCBoYXZlIGxlZCB0byBwcm9ibGVtcyBl bHNld2hlcmUuCi0tLQogY29uZmlndXJlLmFjIHwgIDEgLQogc3JjL2RmYS5jICAgIHwgMTAg KysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4 IDg4NjQ0OWIuLjE3YTg5MjAgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25m aWd1cmUuYWMKQEAgLTE0NSw3ICsxNDUsNiBAQCBpZiB0ZXN0ICIkZ2xfZ2NjX3dhcm5pbmdz IiA9IHllczsgdGhlbgogICBkb25lCiAgIGdsX1dBUk5fQUREKFstV25vLW1pc3NpbmctZmll bGQtaW5pdGlhbGl6ZXJzXSkgIyBXZSBuZWVkIHRoaXMgb25lCiAgIGdsX1dBUk5fQUREKFst V25vLXNpZ24tY29tcGFyZV0pICAgICAjIFRvbyBtYW55IHdhcm5pbmdzIGZvciBub3cKLSAg Z2xfV0FSTl9BREQoWy1Xbm8tcG9pbnRlci1zaWduXSkgICAgICMgVG9vIG1hbnkgd2Fybmlu Z3MgZm9yIG5vdwogICBnbF9XQVJOX0FERChbLVduby11bnVzZWQtcGFyYW1ldGVyXSkgIyBU b28gbWFueSB3YXJuaW5ncyBmb3Igbm93CiAKICAgIyBJbiBzcGl0ZSBvZiBleGNsdWRpbmcg LVdsb2dpY2FsLW9wIGFib3ZlLCBpdCBpcyBlbmFibGVkLCBhcyBvZgpkaWZmIC0tZ2l0IGEv c3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IGVlY2EyNTcuLjkwY2Y0YTkgMTAwNjQ0Ci0t LSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTM3OCw3ICszNzgsNyBAQCBzdHJ1 Y3QgZGZhCiAgIC8qIEZpZWxkcyBmaWxsZWQgYnkgdGhlIHN0YXRlIGJ1aWxkZXIuICAqLwog ICBkZmFfc3RhdGUgKnN0YXRlczsgICAgICAgICAgICAvKiBTdGF0ZXMgb2YgdGhlIGRmYS4g ICovCiAgIHN0YXRlX251bSBzaW5kZXg7ICAgICAgICAgICAgIC8qIEluZGV4IGZvciBhZGRp bmcgbmV3IHN0YXRlcy4gICovCi0gIHN0YXRlX251bSBzYWxsb2M7ICAgICAgICAgICAgIC8q IE51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IGFsbG9jYXRlZC4gICovCisgIHNpemVfdCBz YWxsb2M7CQkvKiBOdW1iZXIgb2Ygc3RhdGVzIGN1cnJlbnRseSBhbGxvY2F0ZWQuICAqLwog CiAgIC8qIEZpZWxkcyBmaWxsZWQgYnkgdGhlIHBhcnNlIHRyZWUtPk5GQSBjb252ZXJzaW9u LiAgKi8KICAgcG9zaXRpb25fc2V0ICpmb2xsb3dzOyAgICAgICAgLyogQXJyYXkgb2YgZm9s bG93IHNldHMsIGluZGV4ZWQgYnkgcG9zaXRpb24KQEAgLTI3ODAsMTIgKzI3ODAsMTIgQEAg cmVhbGxvY190cmFuc19pZl9uZWNlc3NhcnkgKHN0cnVjdCBkZmEgKmQsIHN0YXRlX251bSBu ZXdfc3RhdGUpCiAgIGlmIChvbGRhbGxvYyA8PSBuZXdfc3RhdGUpCiAgICAgewogICAgICAg c3RhdGVfbnVtICoqcmVhbHRyYW5zID0gZC0+dHJhbnMgPyBkLT50cmFucyAtIDEgOiBOVUxM OwotICAgICAgc2l6ZV90IG5ld2FsbG9jOwotICAgICAgZC0+dHJhbGxvYyA9IG5ld19zdGF0 ZSArIDE7Ci0gICAgICByZWFsdHJhbnMgPSB4Mm5yZWFsbG9jIChyZWFsdHJhbnMsICZkLT50 cmFsbG9jLCBzaXplb2YgKnJlYWx0cmFucyk7CisgICAgICBzaXplX3QgbmV3YWxsb2MsIG5l d2FsbG9jMTsKKyAgICAgIG5ld2FsbG9jMSA9IG5ld19zdGF0ZSArIDE7CisgICAgICByZWFs dHJhbnMgPSB4Mm5yZWFsbG9jIChyZWFsdHJhbnMsICZuZXdhbGxvYzEsIHNpemVvZiAqcmVh bHRyYW5zKTsKICAgICAgIHJlYWx0cmFuc1swXSA9IE5VTEw7CiAgICAgICBkLT50cmFucyA9 IHJlYWx0cmFucyArIDE7Ci0gICAgICBuZXdhbGxvYyA9IC0tZC0+dHJhbGxvYzsKKyAgICAg IGQtPnRyYWxsb2MgPSBuZXdhbGxvYyA9IG5ld2FsbG9jMSAtIDE7CiAgICAgICBkLT5mYWls cyA9IHhucmVhbGxvYyAoZC0+ZmFpbHMsIG5ld2FsbG9jLCBzaXplb2YgKmQtPmZhaWxzKTsK ICAgICAgIGQtPnN1Y2Nlc3MgPSB4bnJlYWxsb2MgKGQtPnN1Y2Nlc3MsIG5ld2FsbG9jLCBz aXplb2YgKmQtPnN1Y2Nlc3MpOwogICAgICAgZC0+bmV3bGluZXMgPSB4bnJlYWxsb2MgKGQt Pm5ld2xpbmVzLCBuZXdhbGxvYywgc2l6ZW9mICpkLT5uZXdsaW5lcyk7Ci0tIAoxLjkuMAoK --------------060801040305010002090005-- From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sat, 19 Apr 2014 21:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Paul Eggert Cc: Norihiro Tanaka , 17136@debbugs.gnu.org Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139794253014463 (code B ref 17136); Sat, 19 Apr 2014 21:23:01 +0000 Received: (at 17136) by debbugs.gnu.org; 19 Apr 2014 21:22:10 +0000 Received: from localhost ([127.0.0.1]:52836 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wbci9-0003lA-Hn for submit@debbugs.gnu.org; Sat, 19 Apr 2014 17:22:10 -0400 Received: from mail-yh0-f50.google.com ([209.85.213.50]:50040) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wbci6-0003l1-25 for 17136@debbugs.gnu.org; Sat, 19 Apr 2014 17:22:06 -0400 Received: by mail-yh0-f50.google.com with SMTP id t59so550322yho.9 for <17136@debbugs.gnu.org>; Sat, 19 Apr 2014 14:22:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=sc8PK9J2fyDh0ZgSZ3mi63RfnK1yOx7bDjOprm/Jnso=; b=bWb8zAnH28g/LjAnbIeflU+pi9vOSfVag+/INCCaIjkf2frzF0k4lserW2PT4Aws+5 Vzh39/dnOjbrOCAUDyci+pZ3WnvHg3AQ9THnnl2VzFyLlCMHnsHSJbc9mIUtu/D0TmlY JYUQQuFrGHZiH6CKPeBwVRYfPOTyiGcK5X/5MZxk/lDDLTRxAzkvlrZYx5ZoIkLKDn6I GAnmkiElMRgsTGWe7pjm2uByEFpqpVWhxaN3LnX3rW4+cI9F9EMH3QmXQU1W69xw5hcG PxiVx4+Vxj2yhVtgbcAsAuUNSJUOLwY9l/uGctpE7JbD4f9k0hNqYm2CTLAjOHj9D9PX Dt0w== X-Received: by 10.236.135.197 with SMTP id u45mr46037yhi.150.1397942525417; Sat, 19 Apr 2014 14:22:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.170.149.193 with HTTP; Sat, 19 Apr 2014 14:21:45 -0700 (PDT) In-Reply-To: <53521616.80204@cs.ucla.edu> References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> <20140419105621.5CFF.27F6AC2D@kcn.ne.jp> <53521616.80204@cs.ucla.edu> From: Jim Meyering Date: Sat, 19 Apr 2014 14:21:45 -0700 X-Google-Sender-Auth: atmOkq46VgZTkJHZlo-ctIUcyPI Message-ID: Content-Type: multipart/mixed; boundary=20cf3011db9da4f01704f76bdbd8 X-Spam-Score: -0.7 (/) 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 (/) --20cf3011db9da4f01704f76bdbd8 Content-Type: text/plain; charset=ISO-8859-1 On Fri, Apr 18, 2014 at 11:22 PM, Paul Eggert wrote: > Norihiro Tanaka wrote: >> >> Perhaps, I may run accross it in order to use old GCC (4.1.2 on CentOS >> 5.10). > > > Thanks, it's lucky you did, so that we won't be inundated by other people > reporting similar problems. I see now that we were passing > -Wno-pointer-sign to GCC, and that this suppressed useful diagnostics on > newer GCC instances (but not on your older one). I installed the attached > patch to fix both the signedness problem, and the diagnostic-suppression > problem. This has encouraged me to revisit grep's list of disabled gcc warnings. It turns out that we've been disabling many unnecessarily. The attached patch reenables those that do not elicit a warning from gcc-4.9. --20cf3011db9da4f01704f76bdbd8 Content-Type: text/plain; charset=US-ASCII; name="k.txt" Content-Disposition: attachment; filename="k.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hu7eu5q21 RnJvbSBkNjVkY2YzOWYzZDU4NzAyN2NjY2I2YzdkZTZkN2Q3MGZiMzM2ZTU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U2F0LCAxOSBBcHIgMjAxNCAwODoyMzoxNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkOiBy ZWVuYWJsZSBzb21lIGNvbXBpbGVyIHdhcm5pbmcgb3B0aW9ucwoKLS0tCiBjb25maWd1cmUuYWMg fCAyNiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29u ZmlndXJlLmFjCmluZGV4IDE3YTg5MjAuLjZhOTljNDAgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5h YworKysgYi9jb25maWd1cmUuYWMKQEAgLTExNCwyOSArMTE0LDEyIEBAIGlmIHRlc3QgIiRnbF9n Y2Nfd2FybmluZ3MiID0geWVzOyB0aGVuCiAgIG53PSIkbncgLVdsb25nLWxvbmciICAgICAgICAg ICAgICAjIEM5MCBpcyBhbmFjaHJvbmlzdGljIChsaWIvZ2V0aHJ4dGltZS5oKQogICBudz0iJG53 IC1XYysrLWNvbXBhdCIgICAgICAgICAgICAgIyBXZSBkb24ndCBjYXJlIGFib3V0IEMrKyBjb21w aWxlcnMKICAgbnc9IiRudyAtV3VuZGVmIiAgICAgICAgICAgICAgICAgICMgV2FybnMgb24gJyNp ZiBHTlVMSUJfRk9PJyBldGMgaW4gZ251bGliCi0gIG53PSIkbncgLVd0cmFkaXRpb25hbCIgICAg ICAgICAgICAjIFdhcm5zIG9uICNlbGlmIHdoaWNoIHdlIHVzZSBvZnRlbgotICBudz0iJG53IC1X Y2FzdC1xdWFsIiAgICAgICAgICAgICAgIyBUb28gbWFueSB3YXJuaW5ncyBmb3Igbm93Ci0gIG53 PSIkbncgLVdjb252ZXJzaW9uIiAgICAgICAgICAgICAjIFRvbyBtYW55IHdhcm5pbmdzIGZvciBu b3cKICAgbnc9IiRudyAtV3N5c3RlbS1oZWFkZXJzIiAgICAgICAgICMgRG9uJ3QgbGV0IHN5c3Rl bSBoZWFkZXJzIHRyaWdnZXIgd2FybmluZ3MKLSAgbnc9IiRudyAtV3NpZ24tY29udmVyc2lvbiIg ICAgICAgICMgVG9vIG1hbnkgd2FybmluZ3MgZm9yIG5vdwotICBudz0iJG53IC1XdHJhZGl0aW9u YWwtY29udmVyc2lvbiIgIyBUb28gbWFueSB3YXJuaW5ncyBmb3Igbm93Ci0gIG53PSIkbncgLVd1 bnJlYWNoYWJsZS1jb2RlIiAgICAgICAjIFRvbyBtYW55IHdhcm5pbmdzIGZvciBub3cKICAgbnc9 IiRudyAtV3BhZGRlZCIgICAgICAgICAgICAgICAgICMgT3VyIHN0cnVjdHMgYXJlIG5vdCBwYWRk ZWQKLSAgbnc9IiRudyAtV3JlZHVuZGFudC1kZWNscyIgICAgICAgICMgb3BlbmF0LmggZGVjbGFy ZXMgZS5nLiwgbWtkaXJhdAotICBudz0iJG53IC1XbG9naWNhbC1vcCIgICAgICAgICAgICAgIyBh bnkgdXNlIG9mIGZ3cml0ZSBwcm92b2tlcyB0aGlzCi0gIG53PSIkbncgLVdmb3JtYXQtbm9ubGl0 ZXJhbCIgICAgICAjIHdoby5jIGFuZCBwaW5reS5jIHN0cmZ0aW1lIHVzZXMKICAgbnc9IiRudyAt V3ZsYSIgICAgICAgICAgICAgICAgICAgICMgd2FybmluZ3MgaW4gZ2V0dGV4dC5oCi0gIG53PSIk bncgLVduZXN0ZWQtZXh0ZXJucyIgICAgICAgICAjIHVzZSBvZiBYQVJHTUFUQ0gvdmVyaWZ5X2Z1 bmN0aW9uX18KLSAgbnc9IiRudyAtV3N3aXRjaC1lbnVtIiAgICAgICAgICAgICMgVG9vIG1hbnkg d2FybmluZ3MgZm9yIG5vdwogICBudz0iJG53IC1Xc3dpdGNoLWRlZmF1bHQiICAgICAgICAgIyBU b28gbWFueSB3YXJuaW5ncyBmb3Igbm93Ci0gIG53PSIkbncgLVdzdGFjay1wcm90ZWN0b3IiICAg ICAgICAjIG5vdCB3b3J0aCB3b3JraW5nIGFyb3VuZAotICAjIHRoaW5ncyBJIG1pZ2h0IGZpeCBz b29uOgotICBudz0iJG53IC1XZmxvYXQtZXF1YWwiICAgICAgICAgICAgIyBzb3J0LmMsIHNlcS5j Ci0gIG53PSIkbncgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiICMgY29weS5jCi0gIG53PSIk bncgLVd1bnNhZmUtbG9vcC1vcHRpbWl6YXRpb25zIiAjIGEgZmV3IHNyYy8qLmMKLSAgbnc9IiRu dyAtV2lubGluZSIgICAgICAgICAgICAgICAgICMgc3lzdGVtLmgncyByZWFkZGlyX2lnbm9yaW5n X2RvdF9hbmRfZG90ZG90Ci0gIG53PSIkbncgLVdzdHJpY3Qtb3ZlcmZsb3ciICAgICAgICAjIGV4 cHIuYywgcHIuYywgdHIuYywgZmFjdG9yLmMKLSAgIyA/PyAtV3N0cmljdC1vdmVyZmxvdworICBu dz0iJG53IC1XaW5saW5lIiAgICAgICAgICAgICAgICAgIyBzdHJlcS5oJ3Mgc3RyZXE0LCBzdHJl cTYgYW5kIHN0cmNhc2VlcTYKKyAgbnc9IiRudyAtV3N0cmljdC1vdmVyZmxvdyIgICAgICAgICMg cmVnZXhlYy5jCgogICBnbF9NQU5ZV0FSTl9BTExfR0NDKFt3c10pCiAgIGdsX01BTllXQVJOX0NP TVBMRU1FTlQoW3dzXSwgWyR3c10sIFskbnddKQpAQCAtMTY2LDEyICsxNDksNyBAQCBpZiB0ZXN0 ICIkZ2xfZ2NjX3dhcm5pbmdzIiA9IHllczsgdGhlbgogICAjIFdlIHVzZSBhIHNsaWdodGx5IHNt YWxsZXIgc2V0IG9mIHdhcm5pbmcgb3B0aW9ucyBmb3IgbGliLy4KICAgIyBSZW1vdmUgdGhlIGZv bGxvd2luZyBhbmQgc2F2ZSB0aGUgcmVzdWx0IGluIEdOVUxJQl9XQVJOX0NGTEFHUy4KICAgbnc9 Ci0gICNudz0iJG53IC1XdW5pbml0aWFsaXplZCIKICAgbnc9IiRudyAtV3VudXNlZC1tYWNyb3Mi Ci0gICNudz0iJG53IC1XbWlzc2luZy1wcm90b3R5cGVzIgotICBudz0iJG53IC1Xb2xkLXN0eWxl LWRlZmluaXRpb24iCi0gIG53PSIkbncgLVdjYXN0LWFsaWduIgotICBudz0iJG53IC1XdW5zdWZm aXhlZC1mbG9hdC1jb25zdGFudHMiCiAgIGdsX1dBUk5fQUREKFstV25vLWZvcm1hdC1ub25saXRl cmFsXSkKICAgZ2xfTUFOWVdBUk5fQ09NUExFTUVOVChbR05VTElCX1dBUk5fQ0ZMQUdTXSwgWyRX QVJOX0NGTEFHU10sIFskbnddKQogICBBQ19TVUJTVChbR05VTElCX1dBUk5fQ0ZMQUdTXSkKLS0g CjEuOS4yLjQ1OS5nNjg3NzNhYwoK --20cf3011db9da4f01704f76bdbd8-- From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 24 Apr 2014 08:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Jim Meyering Cc: 17136@debbugs.gnu.org Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139832710722032 (code B ref 17136); Thu, 24 Apr 2014 08:12:02 +0000 Received: (at 17136) by debbugs.gnu.org; 24 Apr 2014 08:11:47 +0000 Received: from localhost ([127.0.0.1]:56843 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WdEl1-0005jI-37 for submit@debbugs.gnu.org; Thu, 24 Apr 2014 04:11:47 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:60046) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WdEky-0005j7-Dz for 17136@debbugs.gnu.org; Thu, 24 Apr 2014 04:11:45 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id A81F539E8014; Thu, 24 Apr 2014 01:11:43 -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 IDhKrbbMhFWI; Thu, 24 Apr 2014 01:11:39 -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 5776D39E8012; Thu, 24 Apr 2014 01:11:39 -0700 (PDT) Message-ID: <5358C736.7010307@cs.ucla.edu> Date: Thu, 24 Apr 2014 01:11:34 -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 References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> <20140419105621.5CFF.27F6AC2D@kcn.ne.jp> <53521616.80204@cs.ucla.edu> In-Reply-To: Content-Type: multipart/mixed; boundary="------------070903070809050505050104" X-Spam-Score: -3.0 (---) 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. --------------070903070809050505050104 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Jim Meyering wrote: > The attached patch reenables those that do not elicit a warning > from gcc-4.9. Thanks, with an unusual configuration I ran into another warning from GCC 4.9.0 and installed the attached followup patch. --------------070903070809050505050104 Content-Type: text/plain; charset=UTF-8; name="0001-build-suppress-unsafe-loop-optimizations-warnings.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-build-suppress-unsafe-loop-optimizations-warnings.patch" RnJvbSBmNzJjNDNjNjA2YjIxOTIwNDAwNGNjZGIzMjdjNzMyMGY5MTA2Y2U3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDI0IEFwciAyMDE0IDAxOjEwOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gYnVpbGQ6IHN1cHByZXNzIHVuc2FmZS1sb29wLW9wdGltaXphdGlvbnMgd2FybmluZ3MK CkkgcmFuIGludG8gb25lIG9mIHRoZXNlIHdoaWxlIHRyeWluZyBvdXQgR0NDIDQuOS4wJ3Mg bmV3Ci1mc2FuaXRpemU9dW5kZWZpbmVkIG9wdGlvbi4gIFRoZSB3YXJuaW5nIHRvbGQgbWUg dGhhdCBHQ0MgZGlkbid0CmRvIGFuIHVuc2FmZSBvcHRpbWl6YXRpb24sIGJ1dCBpbiAnZ3Jl cCcgdGhpcyBpcyBub3QgdHlwaWNhbGx5IGEKc3ltcHRvbSBvZiBhIHByb2dyYW1taW5nIGVy cm9yLgoqIGNvbmZpZ3VyZS5hYyAoV0VSUk9SX0NGTEFHUyk6IFN1cHByZXNzIC1XdW5zYWZl LWxvb3Atb3B0aW1pemF0aW9ucy4KLS0tCiBjb25maWd1cmUuYWMgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2Nv bmZpZ3VyZS5hYwppbmRleCA2YTk5YzQwLi5jMzAxZWJlIDEwMDY0NAotLS0gYS9jb25maWd1 cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0xMTgsNiArMTE4LDcgQEAgaWYgdGVzdCAi JGdsX2djY193YXJuaW5ncyIgPSB5ZXM7IHRoZW4KICAgbnc9IiRudyAtV3BhZGRlZCIgICAg ICAgICAgICAgICAgICMgT3VyIHN0cnVjdHMgYXJlIG5vdCBwYWRkZWQKICAgbnc9IiRudyAt V3ZsYSIgICAgICAgICAgICAgICAgICAgICMgd2FybmluZ3MgaW4gZ2V0dGV4dC5oCiAgIG53 PSIkbncgLVdzd2l0Y2gtZGVmYXVsdCIgICAgICAgICAjIFRvbyBtYW55IHdhcm5pbmdzIGZv ciBub3cKKyAgbnc9IiRudyAtV3Vuc2FmZS1sb29wLW9wdGltaXphdGlvbnMiICMgT0sgdG8g c3VwcHJlc3MgdW5zYWZlIG9wdGltaXphdGlvbnMKICAgbnc9IiRudyAtV2lubGluZSIgICAg ICAgICAgICAgICAgICMgc3RyZXEuaCdzIHN0cmVxNCwgc3RyZXE2IGFuZCBzdHJjYXNlZXE2 CiAgIG53PSIkbncgLVdzdHJpY3Qtb3ZlcmZsb3ciICAgICAgICAjIHJlZ2V4ZWMuYwogCi0t IAoxLjkuMAoK --------------070903070809050505050104-- From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 24 Apr 2014 16:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: 17136 <17136@debbugs.gnu.org>, Paul Eggert Cc: 17136-done <17136-done@debbugs.gnu.org> Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.139835658518498 (code B ref 17136); Thu, 24 Apr 2014 16:24:02 +0000 Received: (at 17136) by debbugs.gnu.org; 24 Apr 2014 16:23:05 +0000 Received: from localhost ([127.0.0.1]:57451 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WdMQR-0004oB-Ve for submit@debbugs.gnu.org; Thu, 24 Apr 2014 12:23:04 -0400 Received: from mail-yk0-f179.google.com ([209.85.160.179]:48012) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WdMQO-0004nX-Mq; Thu, 24 Apr 2014 12:23:01 -0400 Received: by mail-yk0-f179.google.com with SMTP id 9so2250004ykp.38 for ; Thu, 24 Apr 2014 09:23:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=z40xUTkDmbIdERM3ZIwT0L1w0gI71hIkwl4MkWZAGGQ=; b=o+BON1s0RuQI7kHYKybXJLGmh2vFqym8Wq54MDuZOqWTuaMZu2BnaoRAUgGEWuuEp0 JwUSFXfuA/XmkGh+pmAnUWtkCEWB+mrtO2C8Q7TZmkxXgCdhgbvQWYRTH1p79rGhJtT5 rR3m8Kuluk1SB+FlwXw4/IXohd1OhAG5f9mHWanPLAQJo/63zvLfk48xw10hfRIA1PcL psQ35kEWxt1VaxVVBgr8i52t8AiMHR6f2pSGDbEH3UJENWX8BC0j7SFyV82VI3C3mWk2 xtNYS7E2NEh+JHo/R2GqyLup+wcg2n6a8+eIptZRb8R3SO/j4LScaQKkonub8PDq6gfu DRxw== X-Received: by 10.236.151.83 with SMTP id a59mr3960303yhk.48.1398356580025; Thu, 24 Apr 2014 09:23:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.170.149.193 with HTTP; Thu, 24 Apr 2014 09:22:38 -0700 (PDT) In-Reply-To: <5350BF35.5040407@cs.ucla.edu> References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> From: Jim Meyering Date: Thu, 24 Apr 2014 09:22:38 -0700 X-Google-Sender-Auth: bSjIF391q-1zobBYdfBOy7mw1m4 Message-ID: Content-Type: multipart/mixed; boundary=20cf303a30eb38e09f04f7cc435d X-Spam-Score: -0.7 (/) 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 (/) --20cf303a30eb38e09f04f7cc435d Content-Type: text/plain; charset=ISO-8859-1 On Thu, Apr 17, 2014 at 10:59 PM, Paul Eggert wrote: > I merged that patch into the grep trunk and am closing this bug report. > While merging, I removed one part of the patch that had a small but > measurable performance degradation, namely, the introduction of struct > dfatab. I found some other minor simplifications and threw them in. There > seems to be no significant change in CPU performance. The patch's causes > the dfa module's text size to shrink by 8% on my platform (x86-64 Fedora > 20), which I suppose is a small win, but the main point of the patch is > simplifying the source. I'm attaching what I installed, broken into 12 > little patches to ease review. Running the tests with ASAN-enabled grep exposed a buffer overrun that was introduced by the "simplify range char allocation" one. I've fixed it with the attached patch: --20cf303a30eb38e09f04f7cc435d Content-Type: text/plain; charset=US-ASCII; name="k.txt" Content-Disposition: attachment; filename="k.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hue9c0ks12 RnJvbSA5ZWUxMDA5ODVjNTVkYTdkMjU2OGIwNjQ5MmVkM2JlZTAyNWIyYmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog VGh1LCAyNCBBcHIgMjAxNCAwOTowMzozOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGdyZXA6IGZp eCBuZXcgaGVhcCB3cml0ZSBidWZmZXIgb3ZlcnJ1bgoKKiBzcmMvZGZhLmMgKHBhcnNlX2JyYWNr ZXRfZXhwKTogRml4IG9mZi1ieS1vbmUgYWxsb2NhdGlvbiBlcnJvci4KRXhwb3NlZCBieSBydW5u aW5nIHRoZSB0ZXN0cyB3aXRoIGFuIEFTQU4tZW5hYmxlZCBiaW5hcnkgKGkuZS4sCmNyZWF0ZWQg dXNpbmcgZ2NjJ3MgLWZzYW5pdGl6ZT1hZGRyZXNzIG9wdGlvbikuIEhlcmUncyB0aGUgc3RhY2sK dHJhY2UgeW91IGdldCB3aXRoIGVhY2ggYWJvcnQ6Cgo9PTc0MDEwPT1FUlJPUjogQWRkcmVzc1Nh bml0aXplcjogaGVhcC1idWZmZXItb3ZlcmZsb3cgb24gYWRkcmVzc1wKIDB4NjAyMDAwMDBjODk4 IGF0IHBjIDB4MTA2ZTJjYmU5IGJwIDB4N2ZmZjU4ZGRlYzQwIHNwIDB4N2ZmZjU4ZGRlYzM4CldS SVRFIG9mIHNpemUgNCBhdCAweDYwMjAwMDAwYzg5OCB0aHJlYWQgVDAKICAgICMwIDB4MTA2ZTJj YmU4IGluIHBhcnNlX2JyYWNrZXRfZXhwIGRmYS5jOjExMzcKICAgICMxIDB4MTA2ZTJlYjM0IGlu IGxleCBkZmEuYzoxNTIzCiAgICAjMiAweDEwNmUzMDUxMCBpbiBkZmFwYXJzZSBkZmEuYzoxOTQz CiAgICAjMyAweDEwNmUzZTI0ZCBpbiBkZmFjb21wIGRmYS5jOjM1NDcKICAgICM0IDB4MTA2ZTQz OWVlIGluIEdFQWNvbXBpbGUgZGZhc2VhcmNoLmM6MTk5CiAgICAjNSAweDEwNmUyNDk5YSBpbiBH Y29tcGlsZSBncmVwLmM6MTY0OAogICAgIzYgMHgxMDZlMjdjYTggaW4gbWFpbiBncmVwLmM6MjMz OQoKSW50cm9kdWNlZCBieSBjb21taXQgdjIuMTgtNzAtZ2QzZDk2MTIsCiJkZmE6IHNpbXBsaWZ5 IHJhbmdlIGNoYXIgYWxsb2NhdGlvbiIuCi0tLQogc3JjL2RmYS5jIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Rm YS5jIGIvc3JjL2RmYS5jCmluZGV4IDVkYzBmMDkuLjI0YjRkNWMgMTAwNjQ0Ci0tLSBhL3NyYy9k ZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTExMjUsNyArMTEyNSw3IEBAIHBhcnNlX2JyYWNrZXRf ZXhwICh2b2lkKQogICAgICAgICAgICAgICAgICAgICAgaXMgd3JvbmcgaW4gbXVsdGlwbGUgd2F5 cywgaXQncyBuZXZlciB1c2VkIGluIHByYWN0aWNlLgogICAgICAgICAgICAgICAgICAgICAgRklY TUU6IFJlbW92ZSB0aGlzIChhbmQgcmVsYXRlZCkgdW51c2VkIGNvZGUuICAqLwogICAgICAgICAg ICAgICAgICAgd29ya19tYmMtPnJhbmdlcwotICAgICAgICAgICAgICAgICAgICA9IG1heWJlX3Jl YWxsb2MgKHdvcmtfbWJjLT5yYW5nZXMsIHdvcmtfbWJjLT5ucmFuZ2VzICsgMSwKKyAgICAgICAg ICAgICAgICAgICAgPSBtYXliZV9yZWFsbG9jICh3b3JrX21iYy0+cmFuZ2VzLCB3b3JrX21iYy0+ bnJhbmdlcyArIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJhbmdl c19hbCwgc2l6ZW9mICp3b3JrX21iYy0+cmFuZ2VzKTsKICAgICAgICAgICAgICAgICAgIHdvcmtf bWJjLT5yYW5nZXNbd29ya19tYmMtPm5yYW5nZXNdLmJlZwogICAgICAgICAgICAgICAgICAgICA9 IGNhc2VfZm9sZCA/IHRvd2xvd2VyICh3YykgOiB3YzsKLS0gCjEuOS4yLjQ1OS5nNjg3NzNhYwoK --20cf303a30eb38e09f04f7cc435d-- From unknown Sat Jun 21 05:14:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17136: [PATCH] dfa: speed up memory allocation, port to IRIX Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 24 Apr 2014 19:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17136 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Jim Meyering , 17136 <17136@debbugs.gnu.org> Received: via spool by 17136-submit@debbugs.gnu.org id=B17136.13983692849894 (code B ref 17136); Thu, 24 Apr 2014 19:55:02 +0000 Received: (at 17136) by debbugs.gnu.org; 24 Apr 2014 19:54:44 +0000 Received: from localhost ([127.0.0.1]:57491 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WdPjH-0002ZV-Ne for submit@debbugs.gnu.org; Thu, 24 Apr 2014 15:54:44 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:34129) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WdPjE-0002ZL-DF for 17136@debbugs.gnu.org; Thu, 24 Apr 2014 15:54:41 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 63A8339E8014; Thu, 24 Apr 2014 12:54:39 -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 0Pz3loHBxu0M; Thu, 24 Apr 2014 12:54:34 -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 A4D1939E8011; Thu, 24 Apr 2014 12:54:34 -0700 (PDT) Message-ID: <53596BFA.8000808@cs.ucla.edu> Date: Thu, 24 Apr 2014 12:54:34 -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 References: <533621D9.2010506@cs.ucla.edu> <5350BF35.5040407@cs.ucla.edu> In-Reply-To: Content-Type: multipart/mixed; boundary="------------010600030702090707060600" X-Spam-Score: -3.0 (---) 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. --------------010600030702090707060600 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Thanks for fixing that bug, which I introduced. I added the attached change to fix the comment (which I also wrote) that led me astray. --------------010600030702090707060600 Content-Type: text/x-patch; name="0001-dfa-fix-incorrect-comment-that-led-to-heap-overrun.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-dfa-fix-incorrect-comment-that-led-to-heap-overrun.patc"; filename*1="h" >From 59f3fac48e8b5456f4e0a45dfd99fba38d8b7af5 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 24 Apr 2014 12:49:58 -0700 Subject: [PATCH] dfa: fix incorrect comment that led to heap overrun * dfa.c (maybe_realloc): Fix comment to match behavior. --- src/dfa.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index 8fc3d6f..f9938b0 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -624,10 +624,14 @@ equal (charclass const s1, charclass const s2) return memcmp (s1, s2, sizeof (charclass)) == 0; } -/* If needed, reallocate *PTR so that it holds at least NITEMS items. - The array holds *NALLOC items; *NALLOC is updated on reallocation. - ITEMSIZE is the size of one item. Avoid O(N**2) behavior on arrays - growing linearly. */ +/* Ensure that the array addressed by PTR holds at least NITEMS + + (PTR || !NITEMS) items. Either return PTR, or reallocate the array + and return its new address. Although PTR may be null, the returned + value is never null. + + The array holds *NALLOC items; *NALLOC must be zero if PTR is null, + and is updated on reallocation. ITEMSIZE is the size of one item. + Avoid O(N**2) behavior on arrays growing linearly. */ static void * maybe_realloc (void *ptr, size_t nitems, size_t *nalloc, size_t itemsize) { -- 1.9.0 --------------010600030702090707060600--