From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25862 invoked by alias); 29 Jun 2017 09:08:06 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 41375 Received: (qmail 15207 invoked from network); 29 Jun 2017 09:08:06 -0000 X-Qmail-Scanner-Diagnostics: from aok120.rev.netart.pl by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(85.128.245.120):SA:0(0.0/5.0):. Processed in 0.562461 secs); 29 Jun 2017 09:08:06 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: psprint@zdharma.org X-Qmail-Scanner-Mime-Attachments: |final_uplift_gdbm2.diff| X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at zdharma.org does not designate permitted sender hosts) X-Virus-Scanned: by amavisd-new using ClamAV (15) Date: Thu, 29 Jun 2017 11:08:02 +0200 From: Sebastian Gniazdowski To: zsh-workers@zsh.org Message-ID: In-Reply-To: References: Subject: Re: [PATCH] gdbm bugfixes X-Mailer: Airmail (442) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="5954c372_761f7d96_168" --5954c372_761f7d96_168 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline PS. Missed one C++ comment, it's removed in current patch On 29.06.2017 at 10:32:16, Sebastian Gniazdowski (psprint@zdharma.org) wrote: -- Sebastian Gniazdowski psprint /at/ zdharma.org --5954c372_761f7d96_168 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?utf-8?Q?final=5Fuplift=5Fgdbm2.diff?=" ZGlmZiAtLWdpdCBhL1NyYy9Nb2R1bGVzL2RiX2dkYm0uYyBiL1NyYy9Nb2R1bGVzL2RiX2dkYm0u YwppbmRleCAwYWIwZmU3Li5jZjEzMjI0IDEwMDY0NAotLS0gYS9TcmMvTW9kdWxlcy9kYl9nZGJt LmMKKysrIGIvU3JjL01vZHVsZXMvZGJfZ2RibS5jCkBAIC00Miw3ICs0Miw5IEBAIHN0YXRpYyBQ YXJhbSBjcmVhdGVoYXNoKCBjaGFyICpuYW1lLCBpbnQgZmxhZ3MgKTsKIHN0YXRpYyBpbnQgYXBw ZW5kX3RpZWRfbmFtZSggY29uc3QgY2hhciAqbmFtZSApOwogc3RhdGljIGludCByZW1vdmVfdGll ZF9uYW1lKCBjb25zdCBjaGFyICpuYW1lICk7CiBzdGF0aWMgY2hhciAqdW5tZXRhZnlfemFsbG9j KGNvbnN0IGNoYXIgKnRvX2NvcHksIGludCAqbmV3X2xlbik7Ci1zdGF0aWMgdm9pZCBzZXRfbGVu Z3RoKGNoYXIgKmJ1ZiwgaW50IHNpemUpOworc3RhdGljIHZvaWQgbXlmcmVlcGFyYW1ub2RlKEhh c2hOb2RlIGhuKTsKKworc3RhdGljIGludCBub19kYXRhYmFzZV9hY3Rpb24gPSAwOwogCiAvKgog ICogTWFrZSBzdXJlIHdlIGhhdmUgYWxsIHRoZSBiaXRzIEknbSB1c2luZyBmb3IgbWVtb3J5IG1h cHBpbmcsIG90aGVyd2lzZQpAQCAtNzIsNyArNzQsNyBAQCBzdGF0aWMgY2hhciAqYmFja3R5cGUg PSAiZGIvZ2RibSI7CiAgKi8KIAogc3RydWN0IGdzdV9zY2FsYXJfZXh0IHsKLSAgICBzdHJ1Y3Qg Z3N1X3NjYWxhciBzdGQ7CisgICAgc3RydWN0IGdzdV9zY2FsYXIgc3RkOyAvKiBTaXplIG9mIHRo cmVlIHBvaW50ZXJzICovCiAgICAgR0RCTV9GSUxFIGRiZjsKICAgICBjaGFyICpkYmZpbGVfcGF0 aDsKIH07CkBAIC0xMDYsNiArMTA4LDcgQEAgc3RhdGljIHN0cnVjdCBwYXJhbWRlZiBwYXRhYltd ID0gewogc3RhdGljIGludAogYmluX3p0aWUoY2hhciAqbmFtLCBjaGFyICoqYXJncywgT3B0aW9u cyBvcHMsIFVOVVNFRChpbnQgZnVuYykpCiB7CisgICAgc3RydWN0IGdzdV9zY2FsYXJfZXh0ICpk YmZfY2FycmllcjsKICAgICBjaGFyICpyZXNvdXJjZV9uYW1lLCAqcG1uYW1lOwogICAgIEdEQk1f RklMRSBkYmYgPSBOVUxMOwogICAgIGludCByZWFkX3dyaXRlID0gR0RCTV9TWU5DLCBwbWZsYWdz ID0gUE1fUkVNT1ZBQkxFOwpAQCAtMTY0LDIxICsxNjcsMTcgQEAgYmluX3p0aWUoY2hhciAqbmFt LCBjaGFyICoqYXJncywgT3B0aW9ucyBvcHMsIFVOVVNFRChpbnQgZnVuYykpCiAKICAgICBpZiAo ISh0aWVkX3BhcmFtID0gY3JlYXRlaGFzaChwbW5hbWUsIHBtZmxhZ3MpKSkgewogICAgICAgICB6 d2Fybm5hbShuYW0sICJjYW5ub3QgY3JlYXRlIHRoZSByZXF1ZXN0ZWQgcGFyYW1ldGVyICVzIiwg cG1uYW1lKTsKLQlmZHRhYmxlW2dkYm1fZmRlc2MoZGJmKV0gPSBGRFRfVU5VU0VEOwogCWdkYm1f Y2xvc2UoZGJmKTsKIAlyZXR1cm4gMTsKICAgICB9CiAKLSAgICBhZGRtb2R1bGVmZChnZGJtX2Zk ZXNjKGRiZiksIEZEVF9NT0RVTEUpOwotICAgIGFwcGVuZF90aWVkX25hbWUocG1uYW1lKTsKLQog ICAgIHRpZWRfcGFyYW0tPmdzdS5oID0gJmdkYm1faGFzaF9nc3U7CiAKICAgICAvKiBBbGxvY2F0 ZSBwYXJhbWV0ZXIgc3ViLWdzdSwgZmlsbCBkYmYgZmllbGQuIAogICAgICAqIGRiZiBhbGxvY2F0 aW9uIGlzIDEgdG8gMSBhY2NvbXBhbmllZCBieQogICAgICAqIGdzdV9zY2FsYXJfZXh0IGFsbG9j YXRpb24uICovCiAKLSAgICBzdHJ1Y3QgZ3N1X3NjYWxhcl9leHQgKmRiZl9jYXJyaWVyID0gKHN0 cnVjdCBnc3Vfc2NhbGFyX2V4dCAqKSB6YWxsb2Moc2l6ZW9mKHN0cnVjdCBnc3Vfc2NhbGFyX2V4 dCkpOworICAgIGRiZl9jYXJyaWVyID0gKHN0cnVjdCBnc3Vfc2NhbGFyX2V4dCAqKSB6YWxsb2Mo c2l6ZW9mKHN0cnVjdCBnc3Vfc2NhbGFyX2V4dCkpOwogICAgIGRiZl9jYXJyaWVyLT5zdGQgPSBn ZGJtX2dzdV9leHQuc3RkOwogICAgIGRiZl9jYXJyaWVyLT5kYmYgPSBkYmY7CiAgICAgdGllZF9w YXJhbS0+dS5oYXNoLT50bXBkYXRhID0gKHZvaWQgKilkYmZfY2FycmllcjsKQEAgLTE5MCw2ICsx ODksMTAgQEAgYmluX3p0aWUoY2hhciAqbmFtLCBjaGFyICoqYXJncywgT3B0aW9ucyBvcHMsIFVO VVNFRChpbnQgZnVuYykpCiAgICAgICAgIHJlc291cmNlX25hbWUgPSB4c3ltbGluayhyZXNvdXJj ZV9uYW1lLCAxKTsKICAgICB9CiAgICAgZGJmX2NhcnJpZXItPmRiZmlsZV9wYXRoID0genRyZHVw KHJlc291cmNlX25hbWUpOworCisgICAgYWRkbW9kdWxlZmQoZ2RibV9mZGVzYyhkYmYpLCBGRFRf SU5URVJOQUwpOworICAgIGFwcGVuZF90aWVkX25hbWUocG1uYW1lKTsKKwogICAgIHJldHVybiAw OwogfQogCkBAIC0yMTUsOCArMjE4LDkgQEAgYmluX3p1bnRpZShjaGFyICpuYW0sIGNoYXIgKiph cmdzLCBPcHRpb25zIG9wcywgVU5VU0VEKGludCBmdW5jKSkKIAl9CiAKIAlxdWV1ZV9zaWduYWxz KCk7Ci0JaWYgKE9QVF9JU1NFVChvcHMsJ3UnKSkKLQkgICAgZ2RibXVudGllKHBtKTsJLyogY2xl YXIgcmVhZC1vbmx5LW5lc3MgKi8KKwlpZiAoT1BUX0lTU0VUKG9wcywndScpKSB7CisgICAgICAg ICAgICBwbS0+bm9kZS5mbGFncyAmPSB+UE1fUkVBRE9OTFk7CisgICAgICAgIH0KIAlpZiAodW5z ZXRwYXJhbV9wbShwbSwgMCwgMSkpIHsKIAkgICAgLyogYXNzdW1lIGFscmVhZHkgcmVwb3J0ZWQg Ki8KIAkgICAgcmV0ID0gMTsKQEAgLTI3MCw4ICsyNzQsNyBAQCBiaW5femdkYm1wYXRoKGNoYXIg Km5hbSwgY2hhciAqKmFyZ3MsIE9wdGlvbnMgb3BzLCBVTlVTRUQoaW50IGZ1bmMpKQogICoKICAq IEl0IHdpbGwgYmUgbGVmdCBpbiB0aGlzIHN0YXRlIGlmIGRhdGFiYXNlIGRvZXNuJ3QKICAqIGNv bnRhaW4gc3VjaCBrZXkuIFRoYXQgbWlnaHQgYmUgYSBkcmF3YmFjaywgbWF5YmUKLSAqIHNldHRp bmcgdG8gZW1wdHkgdmFsdWUgaGFzIHNlbnNlLCBhcyBubyBvdGhlciB3cml0ZXIKLSAqIGNhbiBl eGlzdC4gVGhpcyB3b3VsZCByZW1vdmUgc3VidGxlIGhjYWxsb2MoMSkgbGVhay4KKyAqIHNldHRp bmcgdG8gZW1wdHkgdmFsdWUgaGFzIHNlbnNlLgogICovCiAKIC8qKi8KQEAgLTI3OSw3ICsyODIs OCBAQCBzdGF0aWMgY2hhciAqCiBnZGJtZ2V0Zm4oUGFyYW0gcG0pCiB7CiAgICAgZGF0dW0ga2V5 LCBjb250ZW50OwotICAgIGludCByZXQ7CisgICAgaW50IHJldCwgdW1sZW47CisgICAgY2hhciAq dW1rZXk7CiAgICAgR0RCTV9GSUxFIGRiZjsKIAogICAgIC8qIEtleSBhbHJlYWR5IHJldHJpZXZl ZD8gVGhlcmUgaXMgbm8gc2Vuc2Ugb2YgYXNraW5nIHRoZQpAQCAtMjkyLDEzICsyOTYsMTMgQEAg Z2RibWdldGZuKFBhcmFtIHBtKQogICAgICAqIC0gaWYgd2UgYXJlIHJlYWRlcnMsIHdlIGZvciBz dXJlIGhhdmUgbmV3ZXN0IGNvcHkgb2YgZGF0YQogICAgICAqLwogICAgIGlmICggcG0tPm5vZGUu ZmxhZ3MgJiBQTV9VUFRPREFURSApIHsKLSAgICAgICAgcmV0dXJuIHBtLT51LnN0ciA/IHBtLT51 LnN0ciA6IChjaGFyICopIGhjYWxsb2MoMSk7CisgICAgICAgIHJldHVybiBwbS0+dS5zdHIgPyBw bS0+dS5zdHIgOiAiIjsKICAgICB9CiAKICAgICAvKiBVbm1ldGFmeSBrZXkuIEdEQk0gZml0cyBu aWNlIGludG8gdGhpcwogICAgICAqIHByb2Nlc3MsIGFzIGl0IHVzZXMgbGVuZ3RoIG9mIGRhdGEg Ki8KLSAgICBpbnQgdW1sZW4gPSAwOwotICAgIGNoYXIgKnVta2V5ID0gdW5tZXRhZnlfemFsbG9j KHBtLT5ub2RlLm5hbSwmdW1sZW4pOworICAgIHVtbGVuID0gMDsKKyAgICB1bWtleSA9IHVubWV0 YWZ5X3phbGxvYyhwbS0+bm9kZS5uYW0sJnVtbGVuKTsKIAogICAgIGtleS5kcHRyID0gdW1rZXk7 CiAgICAga2V5LmRzaXplID0gdW1sZW47CkBAIC0zMTQsMjYgKzMxOCwyNiBAQCBnZGJtZ2V0Zm4o UGFyYW0gcG0pCiAgICAgICAgIC8qIEVuc3VyZSB0aGVyZSdzIG5vIGxlYWsgKi8KICAgICAgICAg aWYgKHBtLT51LnN0cikgewogICAgICAgICAgICAgenNmcmVlKHBtLT51LnN0cik7CisgICAgICAg ICAgICBwbS0+dS5zdHIgPSBOVUxMOwogICAgICAgICB9CiAKICAgICAgICAgLyogTWV0YWZ5IHJl dHVybmVkIGRhdGEuIEFsbCBmaXRzIC0gbWV0YWZ5CiAgICAgICAgICAqIGNhbiBvYnRhaW4gZGF0 YSBsZW5ndGggdG8gYXZvaWQgdXNpbmcgXDAgKi8KICAgICAgICAgcG0tPnUuc3RyID0gbWV0YWZ5 KGNvbnRlbnQuZHB0ciwgY29udGVudC5kc2l6ZSwgTUVUQV9EVVApOworICAgICAgICAvKiBnZGJt IGFsbG9jYXRlcyB3aXRoIG1hbGxvYyAqLworICAgICAgICBmcmVlKGNvbnRlbnQuZHB0cik7CiAK LSAgICAgICAgLyogRnJlZSBrZXksIHJlc3RvcmluZyBpdHMgb3JpZ2luYWwgbGVuZ3RoICovCi0g ICAgICAgIHNldF9sZW5ndGgodW1rZXksIHVtbGVuKTsKLSAgICAgICAgenNmcmVlKHVta2V5KTsK KyAgICAgICAgLyogRnJlZSBrZXkgKi8KKyAgICAgICAgemZyZWUodW1rZXksIHVtbGVuKzEpOwog CiAgICAgICAgIC8qIENhbiByZXR1cm4gcG9pbnRlciwgY29ycmVjdGx5IHNhdmVkIGluc2lkZSBo YXNoICovCiAgICAgICAgIHJldHVybiBwbS0+dS5zdHI7CiAgICAgfQogCi0gICAgLyogRnJlZSBr ZXksIHJlc3RvcmluZyBpdHMgb3JpZ2luYWwgbGVuZ3RoICovCi0gICAgc2V0X2xlbmd0aCh1bWtl eSwgdW1sZW4pOwotICAgIHpzZnJlZSh1bWtleSk7CisgICAgLyogRnJlZSBrZXkgKi8KKyAgICB6 ZnJlZSh1bWtleSwgdW1sZW4rMSk7CiAKLSAgICAvKiBDYW4gdGhpcyBiZSAiIiA/ICovCi0gICAg cmV0dXJuIChjaGFyICopIGhjYWxsb2MoMSk7CisgICAgcmV0dXJuICIiOwogfQogCiAvKiovCkBA IC0zNjEsNyArMzY1LDcgQEAgZ2RibXNldGZuKFBhcmFtIHBtLCBjaGFyICp2YWwpCiAKICAgICAv KiBEYXRhYmFzZSAqLwogICAgIGRiZiA9ICgoc3RydWN0IGdzdV9zY2FsYXJfZXh0ICopcG0tPmdz dS5zKS0+ZGJmOwotICAgIGlmIChkYmYpIHsKKyAgICBpZiAoZGJmICYmIG5vX2RhdGFiYXNlX2Fj dGlvbiA9PSAwKSB7CiAgICAgICAgIGludCB1bWxlbiA9IDA7CiAgICAgICAgIGNoYXIgKnVta2V5 ID0gdW5tZXRhZnlfemFsbG9jKHBtLT5ub2RlLm5hbSwmdW1sZW4pOwogCkBAIC0zNzgsMTUgKzM4 MiwxMyBAQCBnZGJtc2V0Zm4oUGFyYW0gcG0sIGNoYXIgKnZhbCkKICAgICAgICAgICAgICh2b2lk KWdkYm1fc3RvcmUoZGJmLCBrZXksIGNvbnRlbnQsIEdEQk1fUkVQTEFDRSk7CiAKICAgICAgICAg ICAgIC8qIEZyZWUgKi8KLSAgICAgICAgICAgIHNldF9sZW5ndGgodW12YWwsIHVtbGVuKTsKLSAg ICAgICAgICAgIHpzZnJlZSh1bXZhbCk7CisgICAgICAgICAgICB6ZnJlZSh1bXZhbCwgdW1sZW4r MSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAodm9pZClnZGJtX2RlbGV0ZShkYmYs IGtleSk7CiAgICAgICAgIH0KIAogICAgICAgICAvKiBGcmVlIGtleSAqLwotICAgICAgICBzZXRf bGVuZ3RoKHVta2V5LCBrZXkuZHNpemUpOwotICAgICAgICB6c2ZyZWUodW1rZXkpOworICAgICAg ICB6ZnJlZSh1bWtleSwga2V5LmRzaXplKzEpOwogICAgIH0KIH0KIApAQCAtNDI3LDcgKzQyOSw3 IEBAIGdldGdkYm1ub2RlKEhhc2hUYWJsZSBodCwgY29uc3QgY2hhciAqbmFtZSkKICAgICAgICAg dmFsX3BtID0gKFBhcmFtKSB6c2hjYWxsb2MoIHNpemVvZiAoKnZhbF9wbSkgKTsKICAgICAgICAg dmFsX3BtLT5ub2RlLmZsYWdzID0gUE1fU0NBTEFSIHwgUE1fSEFTSEVMRU07IC8qIG5vIFBNX1VQ VE9EQVRFICovCiAgICAgICAgIHZhbF9wbS0+Z3N1LnMgPSAoR3N1U2NhbGFyKSBodC0+dG1wZGF0 YTsKLSAgICAgICAgaHQtPmFkZG5vZGUoIGh0LCB6dHJkdXAoIG5hbWUgKSwgdmFsX3BtICk7IC8v IHNldHMgcG0tPm5vZGUubmFtCisgICAgICAgIGh0LT5hZGRub2RlKCBodCwgenRyZHVwKCBuYW1l ICksIHZhbF9wbSApOyAvKiBzZXRzIHBtLT5ub2RlLm5hbSAqLwogICAgIH0KIAogICAgIHJldHVy biAoSGFzaE5vZGUpIHZhbF9wbTsKQEAgLTQzNyw3ICs0MzksNyBAQCBnZXRnZGJtbm9kZShIYXNo VGFibGUgaHQsIGNvbnN0IGNoYXIgKm5hbWUpCiBzdGF0aWMgdm9pZAogc2NhbmdkYm1rZXlzKEhh c2hUYWJsZSBodCwgU2NhbkZ1bmMgZnVuYywgaW50IGZsYWdzKQogewotICAgIGRhdHVtIGtleTsK KyAgICBkYXR1bSBrZXksIHByZXZfa2V5OwogICAgIEdEQk1fRklMRSBkYmYgPSAoKHN0cnVjdCBn c3Vfc2NhbGFyX2V4dCAqKWh0LT50bXBkYXRhKS0+ZGJmOwogCiAgICAgLyogSXRlcmF0ZSBrZXlz IGFkZGluZyB0aGVtIHRvIGhhc2gsIHNvCkBAIC00NTYsNyArNDU4LDkgQEAgc2NhbmdkYm1rZXlz KEhhc2hUYWJsZSBodCwgU2NhbkZ1bmMgZnVuYywgaW50IGZsYWdzKQogCiAgICAgICAgIC8qIEl0 ZXJhdGUgLSBubyBwcm9ibGVtIGFzIGludGVyZmFjaW5nIFBhcmFtCiAgICAgICAgICAqIHdpbGwg ZG8gYXQgbW9zdCBvbmx5IGZldGNoZXMsIG5vdCBzdG9yZXMgKi8KKyAgICAgICAgcHJldl9rZXkg PSBrZXk7CiAgICAgICAgIGtleSA9IGdkYm1fbmV4dGtleShkYmYsIGtleSk7CisgICAgICAgIGZy ZWUocHJldl9rZXkuZHB0cik7CiAgICAgfQogCiB9CkBAIC00ODksOCArNDkzLDE1IEBAIGdkYm1o YXNoc2V0Zm4oUGFyYW0gcG0sIEhhc2hUYWJsZSBodCkKIAlrZXkgPSBnZGJtX2ZpcnN0a2V5KGRi Zik7CiAgICAgfQogCi0gICAgLyoganVzdCBkZWxldGVkIGV2ZXJ5dGhpbmcsIGNsZWFuIHVwICov Ci0gICAgKHZvaWQpZ2RibV9yZW9yZ2FuaXplKGRiZik7CisgICAgLyogSnVzdCBkZWxldGVkIGV2 ZXJ5dGhpbmcsIGNsZWFuIHVwIGlmIG5vIG5ldyBkYXRhLgorICAgICAqIFVzZXIgY2FuIGFsc28g cmVvcmdhbml6ZSB2aWEgZ2RibXRvb2wuICovCisgICAgaWYgKCFodCB8fCBodC0+aHNpemUgPT0g MCkgeworICAgICAgICAodm9pZClnZGJtX3Jlb3JnYW5pemUoZGJmKTsKKyAgICB9CisKKyAgICBu b19kYXRhYmFzZV9hY3Rpb24gPSAxOworICAgIGVtcHR5aGFzaHRhYmxlKHBtLT51Lmhhc2gpOwor ICAgIG5vX2RhdGFiYXNlX2FjdGlvbiA9IDA7CiAKICAgICBpZiAoIWh0KQogCXJldHVybjsKQEAg LTQ5OCw5ICs1MDksMTEgQEAgZ2RibWhhc2hzZXRmbihQYXJhbSBwbSwgSGFzaFRhYmxlIGh0KQog ICAgICAvKiBQdXQgbmV3IHN0cmluZ3MgaW50byBkYXRhYmFzZSwgd2FpdGluZwogICAgICAgKiBm b3IgdGhlaXIgaW50ZXJmYWNpbmctUGFyYW1zIHRvIGJlIGNyZWF0ZWQgKi8KIAotICAgIGZvciAo aSA9IDA7IGkgPCBodC0+aHNpemU7IGkrKykKKyAgICBmb3IgKGkgPSAwOyBpIDwgaHQtPmhzaXpl OyBpKyspIHsKIAlmb3IgKGhuID0gaHQtPm5vZGVzW2ldOyBobjsgaG4gPSBobi0+bmV4dCkgewog CSAgICBzdHJ1Y3QgdmFsdWUgdjsKKyAgICAgICAgICAgIGludCB1bWxlbiA9IDA7CisgICAgICAg ICAgICBjaGFyICp1bWtleSwgKnVtdmFsOwogCiAJICAgIHYuaXNhcnIgPSB2LmZsYWdzID0gdi5z dGFydCA9IDA7CiAJICAgIHYuZW5kID0gLTE7CkBAIC01MDgsOCArNTIxLDcgQEAgZ2RibWhhc2hz ZXRmbihQYXJhbSBwbSwgSGFzaFRhYmxlIGh0KQogCSAgICB2LnBtID0gKFBhcmFtKSBobjsKIAog ICAgICAgICAgICAgLyogVW5tZXRhZnkga2V5ICovCi0gICAgICAgICAgICBpbnQgdW1sZW4gPSAw OwotICAgICAgICAgICAgY2hhciAqdW1rZXkgPSB1bm1ldGFmeV96YWxsb2Modi5wbS0+bm9kZS5u YW0sJnVtbGVuKTsKKyAgICAgICAgICAgIHVta2V5ID0gdW5tZXRhZnlfemFsbG9jKHYucG0tPm5v ZGUubmFtLCZ1bWxlbik7CiAKIAkgICAga2V5LmRwdHIgPSB1bWtleTsKIAkgICAga2V5LmRzaXpl ID0gdW1sZW47CkBAIC01MTcsMjMgKzUyOSwyMyBAQCBnZGJtaGFzaHNldGZuKFBhcmFtIHBtLCBI YXNoVGFibGUgaHQpCiAJICAgIHF1ZXVlX3NpZ25hbHMoKTsKIAogICAgICAgICAgICAgLyogVW5t ZXRhZnkgKi8KLSAgICAgICAgICAgIGNoYXIgKnVtdmFsID0gdW5tZXRhZnlfemFsbG9jKGdldHN0 cnZhbHVlKCZ2KSwmdW1sZW4pOworICAgICAgICAgICAgdW12YWwgPSB1bm1ldGFmeV96YWxsb2Mo Z2V0c3RydmFsdWUoJnYpLCZ1bWxlbik7CiAKICAgICAgICAgICAgIC8qIFN0b3JlICovCiAJICAg IGNvbnRlbnQuZHB0ciA9IHVtdmFsOwogCSAgICBjb250ZW50LmRzaXplID0gdW1sZW47CiAJICAg ICh2b2lkKWdkYm1fc3RvcmUoZGJmLCBrZXksIGNvbnRlbnQsIEdEQk1fUkVQTEFDRSk7CQogCi0g ICAgICAgICAgICAvKiBGcmVlIC0gdW5tZXRhZnlfemFsbG9jIGFsbG9jYXRlcyBleGFjdCByZXF1 aXJlZAotICAgICAgICAgICAgICogc3BhY2UsIGhvd2V2ZXIgdW5tZXRhZmllZCBzdHJpbmcgY2Fu IGhhdmUgemVyb3MKLSAgICAgICAgICAgICAqIGluIGNvbnRlbnQsIHNvIHdlIG11c3QgZmlyc3Qg ZmlsbCB3aXRoIG5vbi0wIGJ5dGVzICovCi0gICAgICAgICAgICBzZXRfbGVuZ3RoKHVtdmFsLCBj b250ZW50LmRzaXplKTsKLSAgICAgICAgICAgIHpzZnJlZSh1bXZhbCk7Ci0gICAgICAgICAgICBz ZXRfbGVuZ3RoKHVta2V5LCBrZXkuZHNpemUpOwotICAgICAgICAgICAgenNmcmVlKHVta2V5KTsK KyAgICAgICAgICAgIC8qIEZyZWUgLSB1bm1ldGFmeV96YWxsb2MgYWxsb2NhdGVzCisgICAgICAg ICAgICAgKiBleGFjdCByZXF1aXJlZCBzcGFjZSArIDEgbnVsbCBieXRlICovCisgICAgICAgICAg ICB6ZnJlZSh1bXZhbCwgY29udGVudC5kc2l6ZSsxKTsKKyAgICAgICAgICAgIHpmcmVlKHVta2V5 LCBrZXkuZHNpemUrMSk7CiAKIAkgICAgdW5xdWV1ZV9zaWduYWxzKCk7CiAJfQorICAgIH0KKyAg ICAvKiBXZSByZXVzZSBvdXIgaGFzaCwgdGhlIGlucHV0IGlzIHRvIGJlIGRlbGV0ZWQgKi8KKyAg ICBkZWxldGVwYXJhbXRhYmxlKGh0KTsKIH0KIAogLyoqLwpAQCAtNTY2LDE0ICs1NzgsMTYgQEAg Z2RibXVudGllKFBhcmFtIHBtKQogc3RhdGljIHZvaWQKIGdkYm1oYXNodW5zZXRmbihQYXJhbSBw bSwgVU5VU0VEKGludCBleHApKQogeworICAgIHN0cnVjdCBnc3Vfc2NhbGFyX2V4dCAqIGdzdV9l eHQ7CisKICAgICBnZGJtdW50aWUocG0pOwogCiAgICAgLyogUmVtZW1iZXIgY3VzdG9tIEdTVSBz dHJ1Y3R1cmUgYXNzaWduZWQgdG8KICAgICAgKiB1Lmhhc2gtPnRtcGRhdGEgYmVmb3JlIGhhc2gg Z2V0cyBkZWxldGVkICovCi0gICAgc3RydWN0IGdzdV9zY2FsYXJfZXh0ICogZ3N1X2V4dCA9IHBt LT51Lmhhc2gtPnRtcGRhdGE7CisgICAgZ3N1X2V4dCA9IHBtLT51Lmhhc2gtPnRtcGRhdGE7CiAK LSAgICAvKiBVc2VzIG5vcm1hbCB1bnNldHRlci4gV2lsbCBkZWxldGUgYWxsIG93bmVkCi0gICAg ICogcGFyYW1ldGVycyBhbmQgYWxzbyBoYXNodGFibGUuICovCisgICAgLyogVXNlcyBub3JtYWwg dW5zZXR0ZXIgKGJlY2F1c2UgZ2RibXVudGllIGlzIGNhbGxlZCBhYm92ZSkuCisgICAgICogV2ls bCBkZWxldGUgYWxsIG93bmVkIGZpZWxkLXBhcmFtZXRlcnMgYW5kIGFsc28gaGFzaHRhYmxlLiAq LwogICAgIHBtLT5nc3UuaC0+c2V0Zm4ocG0sIE5VTEwpOwogCiAgICAgLyogRG9uJ3QgbmVlZCBj dXN0b20gR1NVIHN0cnVjdHVyZSB3aXRoIGl0cwpAQCAtNjU0LDEzICs2NjgsMTcgQEAgc3RhdGlj IFBhcmFtIGNyZWF0ZWhhc2goIGNoYXIgKm5hbWUsIGludCBmbGFncyApIHsKIAlwbS0+bGV2ZWwg PSBsb2NhbGxldmVsOwogCiAgICAgLyogVGhpcyBjcmVhdGVzIHN0YW5kYXJkIGhhc2guICovCi0g ICAgaHQgPSBwbS0+dS5oYXNoID0gbmV3cGFyYW10YWJsZSgzMiwgbmFtZSk7CisgICAgaHQgPSBw bS0+dS5oYXNoID0gbmV3cGFyYW10YWJsZSgxNywgbmFtZSk7CiAgICAgaWYgKCFwbS0+dS5oYXNo KSB7CiAgICAgICAgIHBhcmFtdGFiLT5yZW1vdmVub2RlKHBhcmFtdGFiLCBuYW1lKTsKICAgICAg ICAgcGFyYW10YWItPmZyZWVub2RlKCZwbS0+bm9kZSk7Ci0gICAgICAgIHp3YXJubmFtKG5hbWUs ICJPdXQgb2YgbWVtb3J5IHdoZW4gYWxsb2NhdGluZyBoYXNoIik7CisgICAgICAgIHp3YXJubmFt KG5hbWUsICJvdXQgb2YgbWVtb3J5IHdoZW4gYWxsb2NhdGluZyBoYXNoIik7CisgICAgICAgIHJl dHVybiBOVUxMOwogICAgIH0KIAorICAgIC8qIERvZXMgZnJlZSBQYXJhbSAodW5zZXRmbiBpcyBj YWxsZWQpICovCisgICAgaHQtPmZyZWVub2RlID0gbXlmcmVlcGFyYW1ub2RlOworCiAgICAgLyog VGhlc2UgcHJvdmlkZSBzcGVjaWFsIGZlYXR1cmVzICovCiAgICAgaHQtPmdldG5vZGUgPSBodC0+ Z2V0bm9kZTIgPSBnZXRnZGJtbm9kZTsKICAgICBodC0+c2NhbnRhYiA9IHNjYW5nZGJta2V5czsK QEAgLTY5OSw2ICs3MTcsNyBAQCBzdGF0aWMgaW50IGFwcGVuZF90aWVkX25hbWUoIGNvbnN0IGNo YXIgKm5hbWUgKSB7CiAKIHN0YXRpYyBpbnQgcmVtb3ZlX3RpZWRfbmFtZSggY29uc3QgY2hhciAq bmFtZSApIHsKICAgICBpbnQgb2xkX2xlbiA9IGFycmxlbih6Z2RibV90aWVkKTsKKyAgICBpbnQg bmV3X2xlbjsKIAogICAgIC8qIFR3byBzdGFnZSwgdG8gYWx3YXlzIGhhdmUgYXJybGVuKCkgPT0g emZyZWUtc2l6ZSAtIDEuCiAgICAgICogQ291bGQgZG8gYWxsb2NhdGlvbiBhbmQgcmV2ZXJ0IHdo ZW4gYG5vdCBmb3VuZGAsIGJ1dApAQCAtNzIxLDEzICs3NDAsMTQgQEAgc3RhdGljIGludCByZW1v dmVfdGllZF9uYW1lKCBjb25zdCBjaGFyICpuYW1lICkgewogCiAgICAgLyogU2Vjb25kIHN0YWdl LiBTaXplIGNoYW5nZWQ/IE9ubHkgb2xkX3NpemUtMQogICAgICAqIGNoYW5nZSBpcyBwb3NzaWJs ZSwgYnV0Li4gcGFyYW5vaWEgd2F5ICovCi0gICAgaW50IG5ld19sZW4gPSBhcnJsZW4oemdkYm1f dGllZCk7CisgICAgbmV3X2xlbiA9IGFycmxlbih6Z2RibV90aWVkKTsKICAgICBpZiAobmV3X2xl biAhPSBvbGRfbGVuKSB7CisgICAgICAgIGNoYXIgKipkc3Q7CiAgICAgICAgIGNoYXIgKipuZXdf emdkYm1fdGllZCA9IHpzaGNhbGxvYygobmV3X2xlbisxKSAqIHNpemVvZihjaGFyICopKTsKIAog ICAgICAgICAvKiBDb3B5ICovCiAgICAgICAgIHAgPSB6Z2RibV90aWVkOwotICAgICAgICBjaGFy ICoqZHN0ID0gbmV3X3pnZGJtX3RpZWQ7CisgICAgICAgIGRzdCA9IG5ld196Z2RibV90aWVkOwog ICAgICAgICB3aGlsZSAoKnApIHsKICAgICAgICAgICAgICpkc3QrKyA9ICpwKys7CiAgICAgICAg IH0KQEAgLTc0NiwxMCArNzY2LDkgQEAgc3RhdGljIGludCByZW1vdmVfdGllZF9uYW1lKCBjb25z dCBjaGFyICpuYW1lICkgewogICogLSBkdXBsaWNhdGVzIGJ1ZmVyIHRvIHdvcmsgb24gaXQsCiAg KiAtIGRvZXMgemFsbG9jIG9mIGV4YWN0IHNpemUgZm9yIHRoZSBuZXcgc3RyaW5nLAogICogLSBy ZXN0b3JlcyB3b3JrIGJ1ZmZlciB0byBvcmlnaW5hbCBjb250ZW50LCB0byByZXN0b3JlIHN0cmxl bgotICoKLSAqIE5vIHpzZnJlZSgpLWNvbmZ1c2luZyBzdHJpbmcgd2lsbCBiZSBwcm9kdWNlZC4K ICAqLwotc3RhdGljIGNoYXIgKnVubWV0YWZ5X3phbGxvYyhjb25zdCBjaGFyICp0b19jb3B5LCBp bnQgKm5ld19sZW4pIHsKK3N0YXRpYyBjaGFyICoKK3VubWV0YWZ5X3phbGxvYyhjb25zdCBjaGFy ICp0b19jb3B5LCBpbnQgKm5ld19sZW4pIHsKICAgICBjaGFyICp3b3JrLCAqdG9fcmV0dXJuOwog ICAgIGludCBteV9uZXdfbGVuID0gMDsKIApAQCAtNzYxLDcgKzc4MCw3IEBAIHN0YXRpYyBjaGFy ICp1bm1ldGFmeV96YWxsb2MoY29uc3QgY2hhciAqdG9fY29weSwgaW50ICpuZXdfbGVuKSB7CiAK ICAgICAvKiBUaGlzIHN0cmluZyBjYW4gYmUgY29ycmVjdGx5IHpzZnJlZSgpLWQgKi8KICAgICB0 b19yZXR1cm4gPSAoY2hhciAqKSB6YWxsb2MoKG15X25ld19sZW4rMSkqc2l6ZW9mKGNoYXIpKTsK LSAgICBtZW1jcHkodG9fcmV0dXJuLCB3b3JrLCBzaXplb2YoY2hhcikqbXlfbmV3X2xlbik7IC8v IG1lbWNweSBoYW5kbGVzICQnXDAnCisgICAgbWVtY3B5KHRvX3JldHVybiwgd29yaywgc2l6ZW9m KGNoYXIpKm15X25ld19sZW4pOyAvKiBtZW1jcHkgaGFuZGxlcyAkJ1wwJyAqLwogICAgIHRvX3Jl dHVybltteV9uZXdfbGVuXT0nXDAnOwogCiAgICAgLyogUmVzdG9yZSBvcmlnaW5hbCBzdHJsZW4g YW5kIGNvcnJlY3RseSBmcmVlICovCkBAIC03NzEsMTYgKzc5MCwyNyBAQCBzdGF0aWMgY2hhciAq dW5tZXRhZnlfemFsbG9jKGNvbnN0IGNoYXIgKnRvX2NvcHksIGludCAqbmV3X2xlbikgewogICAg IHJldHVybiB0b19yZXR1cm47CiB9CiAKLS8qCi0gKiBGb3IgenNoLWFsbG9jYXRvciwgcmVzdCBv ZiBac2ggc2VlbXMgdG8gdXNlCi0gKiBmcmVlKCkgaW5zdGVhZCBvZiB6c2ZyZWUoKSwgYW5kIHN1 Y2ggbGVuZ3RoCi0gKiByZXN0b3JhdGlvbiBjYXVzZXMgc2xvd2Rvd24sIGJ1dCBhbGwgaXMgdGhp cwotICogd2F5IHN0cmljdCAtIGNvcnJlY3QgKi8KLXN0YXRpYyB2b2lkIHNldF9sZW5ndGgoY2hh ciAqYnVmLCBpbnQgc2l6ZSkgewotICAgIGJ1ZltzaXplXT0nXDAnOwotICAgIHdoaWxlICggLS0g c2l6ZSA+PSAwICkgewotICAgICAgICBidWZbc2l6ZV09JyAnOworc3RhdGljIHZvaWQKK215ZnJl ZXBhcmFtbm9kZShIYXNoTm9kZSBobikKK3sKKyAgICBQYXJhbSBwbSA9IChQYXJhbSkgaG47CisK KyAgICAvKiBVcHN0cmVhbTogVGhlIHNlY29uZCBhcmd1bWVudCBvZiB1bnNldGZuKCkgaXMgdXNl ZCBieSBtb2R1bGVzIHRvCisgICAgICogZGlmZmVyZW50aWF0ZSAiZXhwImxpY2l0IHVuc2V0IGZy b20gaW1wbGljaXQgdW5zZXQsIGFzIHdoZW4KKyAgICAgKiBhIHBhcmFtZXRlciBpcyBnb2luZyBv dXQgb2Ygc2NvcGUuICBJdCdzIG5vdCBjbGVhciB3aGljaAorICAgICAqIG9mIHRoZXNlIGFwcGxp ZXMgaGVyZSwgYnV0IHBhc3NpbmcgMSBoYXMgYWx3YXlzIHdvcmtlZC4KKyAgICAgKi8KKworICAg IC8qIGlmIChkZWx1bnNldCkgKi8KKyAgICBwbS0+Z3N1LnMtPnVuc2V0Zm4ocG0sIDEpOworCisg ICAgenNmcmVlKHBtLT5ub2RlLm5hbSk7CisgICAgLyogSWYgdGhpcyB2YXJpYWJsZSB3YXMgdGll ZCBieSB0aGUgdXNlciwgZW5hbWUgd2FzIHp0cmR1cCdkICovCisgICAgaWYgKHBtLT5ub2RlLmZs YWdzICYgUE1fVElFRCAmJiBwbS0+ZW5hbWUpIHsKKyAgICAgICAgenNmcmVlKHBtLT5lbmFtZSk7 CisgICAgICAgIHBtLT5lbmFtZSA9IE5VTEw7CiAgICAgfQorICAgIHpmcmVlKHBtLCBzaXplb2Yo c3RydWN0IHBhcmFtKSk7CiB9CiAKICNlbHNlCg== --5954c372_761f7d96_168--