From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14365 invoked by alias); 23 Mar 2011 14:57:30 -0000 Received: (qmail 13278 invoked by uid 22791); 23 Mar 2011 14:57:01 -0000 X-SWARE-Spam-Status: No, hits=1.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KAM_STOCKTIP,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_BJ,TW_CP,TW_DB X-Spam-Check-By: sourceware.org Received: from mail-qy0-f176.google.com (HELO mail-qy0-f176.google.com) (209.85.216.176) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 23 Mar 2011 14:56:31 +0000 Received: by qyk30 with SMTP id 30so7642391qyk.0 for ; Wed, 23 Mar 2011 07:56:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.114.80 with SMTP id d16mr6059659qcq.18.1300892189149; Wed, 23 Mar 2011 07:56:29 -0700 (PDT) Received: by 10.229.97.206 with HTTP; Wed, 23 Mar 2011 07:56:29 -0700 (PDT) In-Reply-To: <201103231444.34735.pedro@codesourcery.com> References: <201103231244.33842.pedro@codesourcery.com> <201103231444.34735.pedro@codesourcery.com> Date: Wed, 23 Mar 2011 15:29:00 -0000 Message-ID: Subject: Re: [patch gdb]: Fix some DOS-path related issues in gdb From: Kai Tietz To: Pedro Alves Cc: gdb-patches@sourceware.org, Eli Zaretskii , Joel Brobecker Content-Type: multipart/mixed; boundary=000e0cd6b216d34916049f2790c6 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-03/txt/msg01027.txt.bz2 --000e0cd6b216d34916049f2790c6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2633 2011/3/23 Pedro Alves : > On Wednesday 23 March 2011 14:07:01, Kai Tietz wrote: >> @@ -1023,12 +1025,13 @@ elfstab_offset_sections (struct objfile >> =A0 =A0struct stab_section_info *maybe =3D dbx->stab_section_info; >> =A0 =A0struct stab_section_info *questionable =3D 0; >> =A0 =A0int i; >> - =A0char *p; >> + =A0const char *p; >> >> =A0 =A0/* The ELF symbol info doesn't include path names, so strip the p= ath >> =A0 =A0 =A0 (if any) from the psymtab filename. =A0*/ >> - =A0while (0 !=3D (p =3D strchr (filename, '/'))) >> - =A0 =A0filename =3D p + 1; >> + =A0p =3D lbasename (filename); >> + =A0if (p !=3D filename) >> + =A0 =A0filename =3D p; > > These three lines are the same as just: > > =A0filename =3D lbasename (filename); > > You can then drop the unnecessary `p' local. > > The patch looked good to me with that change. > > -- > Pedro Alves > Thanks for the detailed review. Attached updated patch attached. 2011-03-23 Kai Tietz * breakpoint.c (clear_command): Use filename_cmp instead of strcmp for comparison. * buildsym.c (watch_main_source_file_lossage): Likewise. (patch_subfile_names): Use IS_DIR_SEPARATOR instead of checking just for slash. * dbxread.c (read_dbx_symtab): Use lbasename instead of strrchr and filename_cmp instead of strcmp for filenames. (add_old_header_file): Use filename_cmp instead of strcmp for comparison. * exec.c (exec_set_section_address): Likewise. * macrotab.c (macro_lookup_inclusion): Likewise. (macro_lookup_inclusion): Likewise. * elfread.c (_initialize_elfread): Likewise. (elfstab_offset_sections): Likewise. (elfstab_offset_sections): Use lbasename instead of strrchr. * mdebugread.c (parse_partial_symbols): Likewise. (arse_partial_symbols): Use filename_(n)cmp instead of str(n)cmp for comparison. * minsyms.c (lookup_minimal_symbol): Likewise. * psymtab.c (read_psymtabs_with_filename): Likewise. * solib.c (solib_read_symbols): Likewise. (reload_shared_libraries_1): Likewise. * symmisc.c (maintenance_print_symbols): Likewise. * symfile.c (separate_debug_file_exists): Likewise. (reread_symbols): Likewise. (find_separate_debug_file_by_debuglink): Likewise. * remote-fileio.c (remote_fileio_func_rename): Likewise. * source.c (add_path): Likewise. * symtab.c (filename_seen): Likewise. (file_matches): Likewise. (print_symbol_info): Likewise. (maybe_add_partial_symtab_filename): Likewise. (make_source_files_completion_list): Likewise. * xml-syscall.c (init_sysinfo): Likewise. * windows-nat.c (_initialize_check_for_gdb_ini): Use IS_DIR_SEPARATOR for checking for trailing path separator. Regards, Kai --000e0cd6b216d34916049f2790c6 Content-Type: text/plain; charset=US-ASCII; name="gdb_filename.txt" Content-Disposition: attachment; filename="gdb_filename.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glmdm9d10 Content-length: 29459 SW5kZXg6IGdkYi9icmVha3BvaW50LmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2RiLm9yaWcvYnJlYWtwb2ludC5jCTIwMTEtMDMtMjMgMTQ6MDM6 MzAuNTMxODExNjAwICswMTAwCisrKyBnZGIvYnJlYWtwb2ludC5jCTIwMTEt MDMtMjMgMTQ6MDg6NDcuNDA0NDM2MjAwICswMTAwCkBAIC0zOSw2ICszOSw3 IEBACiAjaW5jbHVkZSAibGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJnZGJfc3Ry aW5nLmgiCiAjaW5jbHVkZSAiZGVtYW5nbGUuaCIKKyNpbmNsdWRlICJmaWxl bmFtZXMuaCIKICNpbmNsdWRlICJhbm5vdGF0ZS5oIgogI2luY2x1ZGUgInN5 bWZpbGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgpAQCAtOTUyNCw4ICs5 NTI1LDggQEAgY2xlYXJfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90 dHkpCiAJCQkJICAgICYmIGItPnNvdXJjZV9maWxlICE9IE5VTEwKIAkJCQkg ICAgJiYgc2FsLnN5bXRhYiAhPSBOVUxMCiAJCQkJICAgICYmIHNhbC5wc3Bh Y2UgPT0gbG9jLT5wc3BhY2UKLQkJCQkgICAgJiYgc3RyY21wIChiLT5zb3Vy Y2VfZmlsZSwKLQkJCQkJICAgICAgIHNhbC5zeW10YWItPmZpbGVuYW1lKSA9 PSAwCisJCQkJICAgICYmIGZpbGVuYW1lX2NtcCAoYi0+c291cmNlX2ZpbGUs CisJCQkJCQkgICAgIHNhbC5zeW10YWItPmZpbGVuYW1lKSA9PSAwCiAJCQkJ ICAgICYmIGItPmxpbmVfbnVtYmVyID09IHNhbC5saW5lKTsKIAkJICBpZiAo cGNfbWF0Y2ggfHwgbGluZV9tYXRjaCkKIAkJICAgIHsKSW5kZXg6IGdkYi9i dWlsZHN5bS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmln L2J1aWxkc3ltLmMJMjAxMS0wMy0yMyAxNDowMzozMC41MzI4MTE2MDAgKzAx MDAKKysrIGdkYi9idWlsZHN5bS5jCTIwMTEtMDMtMjMgMTQ6MDg6NDcuNDQ4 NDQxODAwICswMTAwCkBAIC02NDMsNyArNjQzLDcgQEAgdm9pZAogcGF0Y2hf c3ViZmlsZV9uYW1lcyAoc3RydWN0IHN1YmZpbGUgKnN1YmZpbGUsIGNoYXIg Km5hbWUpCiB7CiAgIGlmIChzdWJmaWxlICE9IE5VTEwgJiYgc3ViZmlsZS0+ ZGlybmFtZSA9PSBOVUxMICYmIHN1YmZpbGUtPm5hbWUgIT0gTlVMTAotICAg ICAgJiYgc3ViZmlsZS0+bmFtZVtzdHJsZW4gKHN1YmZpbGUtPm5hbWUpIC0g MV0gPT0gJy8nKQorICAgICAgJiYgSVNfRElSX1NFUEFSQVRPUiAoc3ViZmls ZS0+bmFtZVtzdHJsZW4gKHN1YmZpbGUtPm5hbWUpIC0gMV0pKQogICAgIHsK ICAgICAgIHN1YmZpbGUtPmRpcm5hbWUgPSBzdWJmaWxlLT5uYW1lOwogICAg ICAgc3ViZmlsZS0+bmFtZSA9IHhzdHJkdXAgKG5hbWUpOwpAQCAtODc4LDcg Kzg3OCw3IEBAIHdhdGNoX21haW5fc291cmNlX2ZpbGVfbG9zc2FnZSAodm9p ZCkKIAkgICBzdWJmaWxlLT5uZXh0OwogCSAgIHN1YmZpbGUgPSBzdWJmaWxl LT5uZXh0KQogCXsKLQkgIGlmIChzdHJjbXAgKGxiYXNlbmFtZSAoc3ViZmls ZS0+bmFtZSksIG1haW5iYXNlKSA9PSAwKQorCSAgaWYgKGZpbGVuYW1lX2Nt cCAobGJhc2VuYW1lIChzdWJmaWxlLT5uYW1lKSwgbWFpbmJhc2UpID09IDAp CiAJICAgIHsKIAkgICAgICArK25yX21hdGNoZXM7CiAJICAgICAgbWFpbnN1 Yl9hbGlhcyA9IHN1YmZpbGU7CkluZGV4OiBnZGIvZGJ4cmVhZC5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL2RieHJlYWQuYwkyMDEx LTAzLTIzIDE0OjAzOjMwLjUzMzgxMTYwMCArMDEwMAorKysgZ2RiL2RieHJl YWQuYwkyMDExLTAzLTIzIDE0OjA4OjQ3LjQ1OTQ0MzIwMCArMDEwMApAQCAt NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUg ImdkYmNvcmUuaCIJCS8qIGZvciBiZmQgc3R1ZmYgKi8KICNpbmNsdWRlICJs aWJhb3V0LmgiCQkvKiBGSVhNRSBTZWNyZXQgaW50ZXJuYWwgQkZEIHN0dWZm IGZvciBhLm91dCAqLworI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1 ZGUgIm9iamZpbGVzLmgiCiAjaW5jbHVkZSAiYnVpbGRzeW0uaCIKICNpbmNs dWRlICJzdGFic3JlYWQuaCIKQEAgLTM0Niw3ICszNDcsNyBAQCBhZGRfb2xk X2hlYWRlcl9maWxlIChjaGFyICpuYW1lLCBpbnQgaW5zCiAgIGludCBpOwog CiAgIGZvciAoaSA9IDA7IGkgPCBOX0hFQURFUl9GSUxFUyAoY3VycmVudF9v YmpmaWxlKTsgaSsrKQotICAgIGlmIChzdHJjbXAgKHBbaV0ubmFtZSwgbmFt ZSkgPT0gMCAmJiBpbnN0YW5jZSA9PSBwW2ldLmluc3RhbmNlKQorICAgIGlm IChmaWxlbmFtZV9jbXAgKHBbaV0ubmFtZSwgbmFtZSkgPT0gMCAmJiBpbnN0 YW5jZSA9PSBwW2ldLmluc3RhbmNlKQogICAgICAgewogCWFkZF90aGlzX29i amVjdF9oZWFkZXJfZmlsZSAoaSk7CiAJcmV0dXJuOwpAQCAtMTQ2NSw3ICsx NDY2LDcgQEAgcmVhZF9kYnhfc3ltdGFiIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZQogCSAgICBDT1JFX0FERFIgdmFsdTsKIAkgICAgc3RhdGljIGludCBw cmV2X3NvX3N5bW51bSA9IC0xMDsKIAkgICAgc3RhdGljIGludCBmaXJzdF9z b19zeW1udW07Ci0JICAgIGNoYXIgKnA7CisJICAgIGNvbnN0IGNoYXIgKnA7 CiAJICAgIHN0YXRpYyBjaGFyICpkaXJuYW1lX25zbzsKIAkgICAgaW50IHBy ZXZfdGV4dGxvd19ub3Rfc2V0OwogCkBAIC0xNTIyLDggKzE1MjMsOCBAQCBy ZWFkX2RieF9zeW10YWIgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAJICAg ICAgIElmIHBzdCBleGlzdHMsIGlzIGVtcHR5LCBhbmQgaGFzIGEgZmlsZW5h bWUgZW5kaW5nIGluICcvJywKIAkgICAgICAgd2UgYXNzdW1lIHRoZSBwcmV2 aW91cyBOX1NPIHdhcyBhIGRpcmVjdG9yeSBuYW1lLiAgKi8KIAotCSAgICBw ID0gc3RycmNociAobmFtZXN0cmluZywgJy8nKTsKLQkgICAgaWYgKHAgJiYg KihwICsgMSkgPT0gJ1wwMDAnKQorCSAgICBwID0gbGJhc2VuYW1lIChuYW1l c3RyaW5nKTsKKwkgICAgaWYgKHAgIT0gbmFtZXN0cmluZyAmJiAqcCA9PSAn XDAwMCcpCiAJICAgICAgewogCQkvKiBTYXZlIHRoZSBkaXJlY3RvcnkgbmFt ZSBTT3MgbG9jYWxseSwgdGhlbiBzYXZlIGl0IGludG8KIAkJICAgdGhlIHBz eW10YWIgd2hlbiBpdCdzIGNyZWF0ZWQgYmVsb3cuICAqLwpAQCAtMTYxMiwx MyArMTYxMywxMyBAQCByZWFkX2RieF9zeW10YWIgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlCiAJICAgICAgIHRoaW5ncyBsaWtlICJicmVhayBjLWV4cC55 OjQzNSIgbmVlZCB0byB3b3JrIChJCiAJICAgICAgIHN1cHBvc2UgdGhlIHBz eW10YWJfaW5jbHVkZV9saXN0IGNvdWxkIGJlIGhhc2hlZCBvciBwdXQKIAkg ICAgICAgaW4gYSBiaW5hcnkgdHJlZSwgaWYgcHJvZmlsaW5nIHNob3dzIHRo aXMgaXMgYSBtYWpvciBob2cpLiAgKi8KLQkgICAgaWYgKHBzdCAmJiBzdHJj bXAgKG5hbWVzdHJpbmcsIHBzdC0+ZmlsZW5hbWUpID09IDApCisJICAgIGlm IChwc3QgJiYgZmlsZW5hbWVfY21wIChuYW1lc3RyaW5nLCBwc3QtPmZpbGVu YW1lKSA9PSAwKQogCSAgICAgIGNvbnRpbnVlOwogCSAgICB7CiAJICAgICAg aW50IGk7CiAKIAkgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5jbHVkZXNfdXNl ZDsgaSsrKQotCQlpZiAoc3RyY21wIChuYW1lc3RyaW5nLCBwc3ltdGFiX2lu Y2x1ZGVfbGlzdFtpXSkgPT0gMCkKKwkJaWYgKGZpbGVuYW1lX2NtcCAobmFt ZXN0cmluZywgcHN5bXRhYl9pbmNsdWRlX2xpc3RbaV0pID09IDApCiAJCSAg ewogCQkgICAgaSA9IC0xOwogCQkgICAgYnJlYWs7CkluZGV4OiBnZGIvZWxm cmVhZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL2Vs ZnJlYWQuYwkyMDExLTAzLTIzIDE0OjAzOjMwLjUzNTgxMTYwMCArMDEwMAor KysgZ2RiL2VsZnJlYWQuYwkyMDExLTAzLTIzIDE1OjUzOjQ1LjgzNjIzNTUw MCArMDEwMApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNvbXBsYWlu dHMuaCIKICNpbmNsdWRlICJkZW1hbmdsZS5oIgogI2luY2x1ZGUgInBzeW1w cml2LmgiCisjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCiAKIGV4dGVybiB2b2lk IF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpOwogCkBAIC03MDcsNyArNzA4 LDggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0 cgogICAgICAgYnVpbGRfaWRfbmFtZSA9IGJ1aWxkX2lkX3RvX2RlYnVnX2Zp bGVuYW1lIChidWlsZF9pZCk7CiAgICAgICB4ZnJlZSAoYnVpbGRfaWQpOwog ICAgICAgLyogUHJldmVudCBsb29waW5nIG9uIGEgc3RyaXBwZWQgLmRlYnVn IGZpbGUuICAqLwotICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVMTCAm JiBzdHJjbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDAp CisgICAgICBpZiAoYnVpbGRfaWRfbmFtZSAhPSBOVUxMCisJICAmJiBmaWxl bmFtZV9jbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDAp CiAgICAgICAgIHsKIAkgIHdhcm5pbmcgKF8oIlwiJXNcIjogc2VwYXJhdGUg ZGVidWcgaW5mbyBmaWxlIGhhcyBubyBkZWJ1ZyBpbmZvIiksCiAJCSAgIGJ1 aWxkX2lkX25hbWUpOwpAQCAtMTAyMywxMiArMTAyNSwxMCBAQCBlbGZzdGFi X29mZnNldF9zZWN0aW9ucyAoc3RydWN0IG9iamZpbGUKICAgc3RydWN0IHN0 YWJfc2VjdGlvbl9pbmZvICptYXliZSA9IGRieC0+c3RhYl9zZWN0aW9uX2lu Zm87CiAgIHN0cnVjdCBzdGFiX3NlY3Rpb25faW5mbyAqcXVlc3Rpb25hYmxl ID0gMDsKICAgaW50IGk7Ci0gIGNoYXIgKnA7CiAKICAgLyogVGhlIEVMRiBz eW1ib2wgaW5mbyBkb2Vzbid0IGluY2x1ZGUgcGF0aCBuYW1lcywgc28gc3Ry aXAgdGhlIHBhdGgKICAgICAgKGlmIGFueSkgZnJvbSB0aGUgcHN5bXRhYiBm aWxlbmFtZS4gICovCi0gIHdoaWxlICgwICE9IChwID0gc3RyY2hyIChmaWxl bmFtZSwgJy8nKSkpCi0gICAgZmlsZW5hbWUgPSBwICsgMTsKKyAgZmlsZW5h bWUgPSBsYmFzZW5hbWUgKGZpbGVuYW1lKTsKIAogICAvKiBGSVhNRTogIFRo aXMgbGluZWFyIHNlYXJjaCBjb3VsZCBzcGVlZCB1cCBzaWduaWZpY2FudGx5 CiAgICAgIGlmIGl0IHdhcyBjaGFpbmVkIGluIHRoZSByaWdodCBvcmRlciB0 byBtYXRjaCBob3cgd2Ugc2VhcmNoIGl0LApAQCAtMTAzNiw3ICsxMDM2LDcg QEAgZWxmc3RhYl9vZmZzZXRfc2VjdGlvbnMgKHN0cnVjdCBvYmpmaWxlCiAg IGZvciAoOyBtYXliZTsgbWF5YmUgPSBtYXliZS0+bmV4dCkKICAgICB7CiAg ICAgICBpZiAoZmlsZW5hbWVbMF0gPT0gbWF5YmUtPmZpbGVuYW1lWzBdCi0J ICAmJiBzdHJjbXAgKGZpbGVuYW1lLCBtYXliZS0+ZmlsZW5hbWUpID09IDAp CisJICAmJiBmaWxlbmFtZV9jbXAgKGZpbGVuYW1lLCBtYXliZS0+ZmlsZW5h bWUpID09IDApCiAJewogCSAgLyogV2UgZm91bmQgYSBtYXRjaC4gIEJ1dCB0 aGVyZSBtaWdodCBiZSBzZXZlcmFsIHNvdXJjZSBmaWxlcwogCSAgICAgKGZy b20gZGlmZmVyZW50IGRpcmVjdG9yaWVzKSB3aXRoIHRoZSBzYW1lIG5hbWUu ICAqLwpJbmRleDogZ2RiL2V4ZWMuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnZGIub3JpZy9leGVjLmMJMjAxMS0wMy0yMyAxNDowMzozMC41MzY4 MTE2MDAgKzAxMDAKKysrIGdkYi9leGVjLmMJMjAxMS0wMy0yMyAxNDowODo0 Ny40ODg5NDcwMDAgKzAxMDAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRl ICJ0YXJnZXQuaCIKICNpbmNsdWRlICJnZGJjbWQuaCIKICNpbmNsdWRlICJs YW5ndWFnZS5oIgorI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUg InN5bWZpbGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgogI2luY2x1ZGUg ImNvbXBsZXRlci5oIgpAQCAtODQ1LDcgKzg0Niw3IEBAIGV4ZWNfc2V0X3Nl Y3Rpb25fYWRkcmVzcyAoY29uc3QgY2hhciAqZmkKICAgdGFibGUgPSBjdXJy ZW50X3RhcmdldF9zZWN0aW9uczsKICAgZm9yIChwID0gdGFibGUtPnNlY3Rp b25zOyBwIDwgdGFibGUtPnNlY3Rpb25zX2VuZDsgcCsrKQogICAgIHsKLSAg ICAgIGlmIChzdHJjbXAgKGZpbGVuYW1lLCBwLT5iZmQtPmZpbGVuYW1lKSA9 PSAwCisgICAgICBpZiAoZmlsZW5hbWVfY21wIChmaWxlbmFtZSwgcC0+YmZk LT5maWxlbmFtZSkgPT0gMAogCSAgJiYgaW5kZXggPT0gcC0+dGhlX2JmZF9z ZWN0aW9uLT5pbmRleCkKIAl7CiAJICBwLT5lbmRhZGRyICs9IGFkZHJlc3Mg LSBwLT5hZGRyOwpJbmRleDogZ2RiL21hY3JvdGFiLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gZ2RiLm9yaWcvbWFjcm90YWIuYwkyMDExLTAzLTIz IDE0OjAzOjMwLjUzNzgxMTYwMCArMDEwMAorKysgZ2RiL21hY3JvdGFiLmMJ MjAxMS0wMy0yMyAxNDowODo0Ny40OTY0NDc5MDAgKzAxMDAKQEAgLTIxLDYg KzIxLDcgQEAKICNpbmNsdWRlICJkZWZzLmgiCiAjaW5jbHVkZSAiZ2RiX29i c3RhY2suaCIKICNpbmNsdWRlICJzcGxheS10cmVlLmgiCisjaW5jbHVkZSAi ZmlsZW5hbWVzLmgiCiAjaW5jbHVkZSAic3ltdGFiLmgiCiAjaW5jbHVkZSAi c3ltZmlsZS5oIgogI2luY2x1ZGUgIm9iamZpbGVzLmgiCkBAIC01MDAsNyAr NTAxLDcgQEAgc3RydWN0IG1hY3JvX3NvdXJjZV9maWxlICoKIG1hY3JvX2xv b2t1cF9pbmNsdXNpb24gKHN0cnVjdCBtYWNyb19zb3VyY2VfZmlsZSAqc291 cmNlLCBjb25zdCBjaGFyICpuYW1lKQogewogICAvKiBJcyBTT1VSQ0UgaXRz ZWxmIG5hbWVkIE5BTUU/ICAqLwotICBpZiAoc3RyY21wIChuYW1lLCBzb3Vy Y2UtPmZpbGVuYW1lKSA9PSAwKQorICBpZiAoZmlsZW5hbWVfY21wIChuYW1l LCBzb3VyY2UtPmZpbGVuYW1lKSA9PSAwKQogICAgIHJldHVybiBzb3VyY2U7 CiAKICAgLyogVGhlIGZpbGVuYW1lIGluIHRoZSBzb3VyY2Ugc3RydWN0dXJl IGlzIHByb2JhYmx5IGEgZnVsbCBwYXRoLCBidXQKQEAgLTUxMCwxMSArNTEx LDEyIEBAIG1hY3JvX2xvb2t1cF9pbmNsdXNpb24gKHN0cnVjdCBtYWNyb19z b3UKICAgICBpbnQgc3JjX25hbWVfbGVuID0gc3RybGVuIChzb3VyY2UtPmZp bGVuYW1lKTsKIAogICAgIC8qIFdlIGRvIG1lYW4gPCBoZXJlLCBhbmQgbm90 IDw9OyBpZiB0aGUgbGVuZ3RocyBhcmUgdGhlIHNhbWUsCi0gICAgICAgdGhl biB0aGUgc3RyY21wIGFib3ZlIHNob3VsZCBoYXZlIHRyaWdnZXJlZCwgYW5k IHdlIG5lZWQgdG8KKyAgICAgICB0aGVuIHRoZSBmaWxlbmFtZV9jbXAgYWJv dmUgc2hvdWxkIGhhdmUgdHJpZ2dlcmVkLCBhbmQgd2UgbmVlZCB0bwogICAg ICAgIGNoZWNrIGZvciBhIHNsYXNoIGhlcmUuICAqLwogICAgIGlmIChuYW1l X2xlbiA8IHNyY19uYW1lX2xlbgotICAgICAgICAmJiBzb3VyY2UtPmZpbGVu YW1lW3NyY19uYW1lX2xlbiAtIG5hbWVfbGVuIC0gMV0gPT0gJy8nCi0gICAg ICAgICYmIHN0cmNtcCAobmFtZSwgc291cmNlLT5maWxlbmFtZSArIHNyY19u YW1lX2xlbiAtIG5hbWVfbGVuKSA9PSAwKQorICAgICAgICAmJiBJU19ESVJf U0VQQVJBVE9SIChzb3VyY2UtPmZpbGVuYW1lW3NyY19uYW1lX2xlbiAtIG5h bWVfbGVuIC0gMV0pCisgICAgICAgICYmIGZpbGVuYW1lX2NtcCAobmFtZSwK KwkJCSBzb3VyY2UtPmZpbGVuYW1lICsgc3JjX25hbWVfbGVuIC0gbmFtZV9s ZW4pID09IDApCiAgICAgICByZXR1cm4gc291cmNlOwogICB9CiAKSW5kZXg6 IGdkYi9tZGVidWdyZWFkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Z2RiLm9yaWcvbWRlYnVncmVhZC5jCTIwMTEtMDMtMjMgMTQ6MDM6MzAuNTM4 ODExNjAwICswMTAwCisrKyBnZGIvbWRlYnVncmVhZC5jCTIwMTEtMDMtMjMg MTQ6MDg6NDcuNTA2NDQ5MjAwICswMTAwCkBAIC00NSw2ICs0NSw3IEBACiAj aW5jbHVkZSAic3ltdGFiLmgiCiAjaW5jbHVkZSAiZ2RidHlwZXMuaCIKICNp bmNsdWRlICJnZGJjb3JlLmgiCisjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCiAj aW5jbHVkZSAib2JqZmlsZXMuaCIKICNpbmNsdWRlICJnZGJfb2JzdGFjay5o IgogI2luY2x1ZGUgImJ1aWxkc3ltLmgiCkBAIC0yOTU5LDcgKzI5NjAsNyBA QCBwYXJzZV9wYXJ0aWFsX3N5bWJvbHMgKHN0cnVjdCBvYmpmaWxlICpvCiAJ CSAgICAgIENPUkVfQUREUiB2YWx1OwogCQkgICAgICBzdGF0aWMgaW50IHBy ZXZfc29fc3ltbnVtID0gLTEwOwogCQkgICAgICBzdGF0aWMgaW50IGZpcnN0 X3NvX3N5bW51bTsKLQkJICAgICAgY2hhciAqcDsKKwkJICAgICAgY29uc3Qg Y2hhciAqcDsKIAkJICAgICAgaW50IHByZXZfdGV4dGxvd19ub3Rfc2V0Owog CiAJCSAgICAgIHZhbHUgPSBzaC52YWx1ZSArIEFOT0ZGU0VUIChvYmpmaWxl LT5zZWN0aW9uX29mZnNldHMsCkBAIC0zMDEyLDkgKzMwMTMsOCBAQCBwYXJz ZV9wYXJ0aWFsX3N5bWJvbHMgKHN0cnVjdCBvYmpmaWxlICpvCiAJCQkgdGhl IHNlY29uZCB0aGUgZmlsZSBuYW1lLiAgSWYgcHN0IGV4aXN0cywgaXMKIAkJ CSBlbXB0eSwgYW5kIGhhcyBhIGZpbGVuYW1lIGVuZGluZyBpbiAnLycsIHdl IGFzc3VtZQogCQkJIHRoZSBwcmV2aW91cyBOX1NPIHdhcyBhIGRpcmVjdG9y eSBuYW1lLiAgKi8KLQotCQkgICAgICBwID0gc3RycmNociAobmFtZXN0cmlu ZywgJy8nKTsKLQkJICAgICAgaWYgKHAgJiYgKihwICsgMSkgPT0gJ1wwMDAn KQorCQkgICAgICBwID0gbGJhc2VuYW1lIChuYW1lc3RyaW5nKTsKKwkJICAg ICAgaWYgKHAgIT0gbmFtZXN0cmluZyAmJiAqcCA9PSAnXDAwMCcpCiAJCQlj b250aW51ZTsJCS8qIFNpbXBseSBpZ25vcmUgZGlyZWN0b3J5CiAJCQkJCQkg ICBuYW1lIFNPcy4gICovCiAKQEAgLTMwNjUsMTUgKzMwNjUsMTUgQEAgcGFy c2VfcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqbwogCQkJIHdv cmsgKEkgc3VwcG9zZSB0aGUgcHN5bXRhYl9pbmNsdWRlX2xpc3QgY291bGQg YmUKIAkJCSBoYXNoZWQgb3IgcHV0IGluIGEgYmluYXJ5IHRyZWUsIGlmIHBy b2ZpbGluZyBzaG93cwogCQkJIHRoaXMgaXMgYSBtYWpvciBob2cpLiAgKi8K LQkJICAgICAgaWYgKHBzdCAmJiBzdHJjbXAgKG5hbWVzdHJpbmcsIHBzdC0+ ZmlsZW5hbWUpID09IDApCisJCSAgICAgIGlmIChwc3QgJiYgZmlsZW5hbWVf Y21wIChuYW1lc3RyaW5nLCBwc3QtPmZpbGVuYW1lKSA9PSAwKQogCQkJY29u dGludWU7CiAKIAkJICAgICAgewogCQkJaW50IGk7CiAKIAkJCWZvciAoaSA9 IDA7IGkgPCBpbmNsdWRlc191c2VkOyBpKyspCi0JCQkgIGlmIChzdHJjbXAg KG5hbWVzdHJpbmcsCi0JCQkJICAgICAgcHN5bXRhYl9pbmNsdWRlX2xpc3Rb aV0pID09IDApCisJCQkgIGlmIChmaWxlbmFtZV9jbXAgKG5hbWVzdHJpbmcs CisJCQkJCSAgICBwc3ltdGFiX2luY2x1ZGVfbGlzdFtpXSkgPT0gMCkKIAkJ CSAgICB7CiAJCQkgICAgICBpID0gLTE7CiAJCQkgICAgICBicmVhazsKSW5k ZXg6IGdkYi9taW5zeW1zLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Z2RiLm9yaWcvbWluc3ltcy5jCTIwMTEtMDMtMjMgMTQ6MDM6MzAuNTM5ODEx NjAwICswMTAwCisrKyBnZGIvbWluc3ltcy5jCTIwMTEtMDMtMjMgMTQ6MDg6 NDcuNTI5NDUyMTAwICswMTAwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVk ZSAiZ2RiX3N0cmluZy5oIgogI2luY2x1ZGUgInN5bXRhYi5oIgogI2luY2x1 ZGUgImJmZC5oIgorI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUg InN5bWZpbGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgogI2luY2x1ZGUg ImRlbWFuZ2xlLmgiCkBAIC0yNTUsNyArMjU2LDcgQEAgbG9va3VwX21pbmlt YWxfc3ltYm9sIChjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgbXN0X2ZpbGVfZGF0YToKICAgICAgICAgICAgICAgICAg ICAgICBjYXNlIG1zdF9maWxlX2JzczoKICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIChzZmlsZSA9PSBOVUxMCi0JCQkgICAgfHwgc3RyY21wIChtc3lt Ym9sLT5maWxlbmFtZSwgc2ZpbGUpID09IDApCisJCQkgICAgfHwgZmlsZW5h bWVfY21wIChtc3ltYm9sLT5maWxlbmFtZSwgc2ZpbGUpID09IDApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2ZpbGVfc3ltYm9sID0gbXN5 bWJvbDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCkluZGV4 OiBnZGIvcHN5bXRhYi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdk Yi5vcmlnL3BzeW10YWIuYwkyMDExLTAzLTIzIDE0OjAzOjMwLjU0MDgxMTYw MCArMDEwMAorKysgZ2RiL3BzeW10YWIuYwkyMDExLTAzLTIzIDE0OjA4OjQ3 LjUzODk1MzMwMCArMDEwMApAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgcmVhZF9w c3ltdGFic193aXRoX2ZpbGVuYW1lIChzdHJ1Y3Qgb2JqZgogCiAgIEFMTF9P QkpGSUxFX1BTWU1UQUJTX1JFUVVJUkVEIChvYmpmaWxlLCBwKQogICAgIHsK LSAgICAgIGlmIChzdHJjbXAgKGZpbGVuYW1lLCBwLT5maWxlbmFtZSkgPT0g MCkKKyAgICAgIGlmIChmaWxlbmFtZV9jbXAgKGZpbGVuYW1lLCBwLT5maWxl bmFtZSkgPT0gMCkKIAlQU1lNVEFCX1RPX1NZTVRBQiAocCk7CiAgICAgfQog fQpAQCAtMTczNSw3ICsxNzM1LDcgQEAgcHJpbnQtcHN5bWJvbHMgdGFrZXMg YW4gb3V0cHV0IGZpbGUgbmFtZQogCiAgIGltbWVkaWF0ZV9xdWl0Kys7CiAg IEFMTF9QU1lNVEFCUyAob2JqZmlsZSwgcHMpCi0gICAgaWYgKHN5bW5hbWUg PT0gTlVMTCB8fCBzdHJjbXAgKHN5bW5hbWUsIHBzLT5maWxlbmFtZSkgPT0g MCkKKyAgICBpZiAoc3ltbmFtZSA9PSBOVUxMIHx8IGZpbGVuYW1lX2NtcCAo c3ltbmFtZSwgcHMtPmZpbGVuYW1lKSA9PSAwKQogICAgIGR1bXBfcHN5bXRh YiAob2JqZmlsZSwgcHMsIG91dGZpbGUpOwogICBpbW1lZGlhdGVfcXVpdC0t OwogICBkb19jbGVhbnVwcyAoY2xlYW51cHMpOwpJbmRleDogZ2RiL3JlbW90 ZS1maWxlaW8uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIub3Jp Zy9yZW1vdGUtZmlsZWlvLmMJMjAxMS0wMy0yMyAxNDowMzozMC41NDE4MTE2 MDAgKzAxMDAKKysrIGdkYi9yZW1vdGUtZmlsZWlvLmMJMjAxMS0wMy0yMyAx NDowODo0Ny41NTA0NTQ4MDAgKzAxMDAKQEAgLTMxLDYgKzMxLDcgQEAKICNp bmNsdWRlICJyZW1vdGUtZmlsZWlvLmgiCiAjaW5jbHVkZSAiZXZlbnQtbG9v cC5oIgogI2luY2x1ZGUgInRhcmdldC5oIgorI2luY2x1ZGUgImZpbGVuYW1l cy5oIgogCiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxzeXMvdGlt ZS5oPgpAQCAtMTAyMCw4ICsxMDIxLDggQEAgcmVtb3RlX2ZpbGVpb19mdW5j X3JlbmFtZSAoY2hhciAqYnVmKQogCQkgIGN5Z3dpbl9jb252X3BhdGggKEND UF9XSU5fQV9UT19QT1NJWCwgbmV3cGF0aCwgbmV3ZnVsbHBhdGgsCiAJCQkJ ICAgIFBBVEhfTUFYKTsKIAkJICBsZW4gPSBzdHJsZW4gKG9sZGZ1bGxwYXRo KTsKLQkJICBpZiAobmV3ZnVsbHBhdGhbbGVuXSA9PSAnLycKLQkJICAgICAg JiYgIXN0cm5jbXAgKG9sZGZ1bGxwYXRoLCBuZXdmdWxscGF0aCwgbGVuKSkK KwkJICBpZiAoSVNfRElSX1NFUEFSQVRPUiAobmV3ZnVsbHBhdGhbbGVuXSkK KwkJICAgICAgJiYgIWZpbGVuYW1lX25jbXAgKG9sZGZ1bGxwYXRoLCBuZXdm dWxscGF0aCwgbGVuKSkKIAkJICAgIGVycm5vID0gRUlOVkFMOwogCQkgIGVs c2UKIAkJICAgIGVycm5vID0gRUVYSVNUOwpJbmRleDogZ2RiL3NvbGliLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2RiLm9yaWcvc29saWIuYwky MDExLTAzLTIzIDE0OjAzOjMwLjU0MjgxMTYwMCArMDEwMAorKysgZ2RiL3Nv bGliLmMJMjAxMS0wMy0yMyAxNDowODo0Ny41NjA0NTYwMDAgKzAxMDAKQEAg LTYzOCw3ICs2MzgsNyBAQCBzb2xpYl9yZWFkX3N5bWJvbHMgKHN0cnVjdCBz b19saXN0ICpzbywKIAkgIC8qIEhhdmUgd2UgYWxyZWFkeSBsb2FkZWQgdGhp cyBzaGFyZWQgb2JqZWN0PyAgKi8KIAkgIEFMTF9PQkpGSUxFUyAoc28tPm9i amZpbGUpCiAJICAgIHsKLQkgICAgICBpZiAoc3RyY21wIChzby0+b2JqZmls ZS0+bmFtZSwgc28tPnNvX25hbWUpID09IDAKKwkgICAgICBpZiAoZmlsZW5h bWVfY21wIChzby0+b2JqZmlsZS0+bmFtZSwgc28tPnNvX25hbWUpID09IDAK IAkJICAmJiBzby0+b2JqZmlsZS0+YWRkcl9sb3cgPT0gc28tPmFkZHJfbG93 KQogCQlicmVhazsKIAkgICAgfQpAQCAtNzYyLDcgKzc2Miw3IEBAIHVwZGF0 ZV9zb2xpYl9saXN0IChpbnQgZnJvbV90dHksIHN0cnVjdAogCSAgICB9CiAJ ICBlbHNlCiAJICAgIHsKLQkgICAgICBpZiAoISBzdHJjbXAgKGdkYi0+c29f b3JpZ2luYWxfbmFtZSwgaS0+c29fb3JpZ2luYWxfbmFtZSkpCisJICAgICAg aWYgKCEgZmlsZW5hbWVfY21wIChnZGItPnNvX29yaWdpbmFsX25hbWUsIGkt PnNvX29yaWdpbmFsX25hbWUpKQogCQlicmVhazsJICAgICAgCiAJICAgIH0K IApAQCAtMTMzOSw3ICsxMzM5LDcgQEAgcmVsb2FkX3NoYXJlZF9saWJyYXJp ZXNfMSAoaW50IGZyb21fdHR5KQogCSBzeW1ib2wgZmlsZSwgY2xvc2UgdGhh dC4gICovCiAgICAgICBpZiAoKGZvdW5kX3BhdGhuYW1lID09IE5VTEwgJiYg d2FzX2xvYWRlZCkKIAkgIHx8IChmb3VuZF9wYXRobmFtZSAhPSBOVUxMCi0J ICAgICAgJiYgc3RyY21wIChmb3VuZF9wYXRobmFtZSwgc28tPnNvX25hbWUp ICE9IDApKQorCSAgICAgICYmIGZpbGVuYW1lX2NtcCAoZm91bmRfcGF0aG5h bWUsIHNvLT5zb19uYW1lKSAhPSAwKSkKIAl7CiAJICBpZiAoc28tPm9iamZp bGUgJiYgISAoc28tPm9iamZpbGUtPmZsYWdzICYgT0JKRl9VU0VSTE9BREVE KSkKIAkgICAgZnJlZV9vYmpmaWxlIChzby0+b2JqZmlsZSk7CkBAIC0xMzUx LDcgKzEzNTEsNyBAQCByZWxvYWRfc2hhcmVkX2xpYnJhcmllc18xIChpbnQg ZnJvbV90dHkpCiAJIGZpbGUsIG9wZW4gaXQuICAqLwogICAgICAgaWYgKGZv dW5kX3BhdGhuYW1lICE9IE5VTEwKIAkgICYmICghd2FzX2xvYWRlZAotCSAg ICAgIHx8IHN0cmNtcCAoZm91bmRfcGF0aG5hbWUsIHNvLT5zb19uYW1lKSAh PSAwKSkKKwkgICAgICB8fCBmaWxlbmFtZV9jbXAgKGZvdW5kX3BhdGhuYW1l LCBzby0+c29fbmFtZSkgIT0gMCkpCiAJewogCSAgdm9sYXRpbGUgc3RydWN0 IGdkYl9leGNlcHRpb24gZTsKIApJbmRleDogZ2RiL3NvdXJjZS5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL3NvdXJjZS5jCTIwMTEt MDMtMjMgMTQ6MDM6MzAuNTQzODExNjAwICswMTAwCisrKyBnZGIvc291cmNl LmMJMjAxMS0wMy0yMyAxNDo1OToxMS45Njc1MDcwMDAgKzAxMDAKQEAgLTU2 OSwxNSArNTY5LDEwIEBAIGFkZF9wYXRoIChjaGFyICpkaXJuYW1lLCBjaGFy ICoqd2hpY2hfcGEKIAlwID0gKndoaWNoX3BhdGg7CiAJd2hpbGUgKDEpCiAJ ICB7Ci0JICAgIC8qIEZJWE1FOiBzdHJuY21wIGxvc2VzIGluIGludGVyZXN0 aW5nIHdheXMgb24gTVMtRE9TIGFuZAotCSAgICAgICBNUy1XaW5kb3dzIGJl Y2F1c2Ugb2YgY2FzZS1pbnNlbnNpdGl2aXR5IGFuZCB0d28gZGlmZmVyZW50 Ci0JICAgICAgIGJ1dCBmdW5jdGlvbmFsbHkgaWRlbnRpY2FsIHNsYXNoIGNo YXJhY3RlcnMuICBXZSBuZWVkIGEKLQkgICAgICAgc3BlY2lhbCBmaWxlc3lz dGVtLWRlcGVuZGVudCBmaWxlLW5hbWUgY29tcGFyaXNvbiBmdW5jdGlvbi4K LQotCSAgICAgICBBY3R1YWxseSwgZXZlbiBvbiBVbml4IEkgd291bGQgdXNl IHJlYWxwYXRoKCkgb3IgaXRzIHdvcmstCi0JICAgICAgIGFsaWtlIGJlZm9y ZSBjb21wYXJpbmcuICBUaGVuIGFsbCB0aGUgY29kZSBhYm92ZSB3aGljaAor CSAgICAvKiBGSVhNRTogd2Ugc2hvdWxkIHVzZSByZWFscGF0aCgpIG9yIGl0 cyB3b3JrLWFsaWtlCisJICAgICAgIGJlZm9yZSBjb21wYXJpbmcuICBUaGVu IGFsbCB0aGUgY29kZSBhYm92ZSB3aGljaAogCSAgICAgICByZW1vdmVzIGV4 Y2VzcyBzbGFzaGVzIGFuZCBkb3RzIGNvdWxkIHNpbXBseSBnbyBhd2F5LiAg Ki8KLQkgICAgaWYgKCFzdHJuY21wIChwLCBuYW1lLCBsZW4pCisJICAgIGlm ICghZmlsZW5hbWVfbmNtcCAocCwgbmFtZSwgbGVuKQogCQkmJiAocFtsZW5d ID09ICdcMCcgfHwgcFtsZW5dID09IERJUk5BTUVfU0VQQVJBVE9SKSkKIAkg ICAgICB7CiAJCS8qIEZvdW5kIGl0IGluIHRoZSBzZWFyY2ggcGF0aCwgcmVt b3ZlIG9sZCBjb3B5LiAgKi8KSW5kZXg6IGdkYi9zeW1maWxlLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gZ2RiLm9yaWcvc3ltZmlsZS5jCTIwMTEt MDMtMjMgMTQ6MDM6MzAuNTQ0ODExNjAwICswMTAwCisrKyBnZGIvc3ltZmls ZS5jCTIwMTEtMDMtMjMgMTQ6MDg6NDcuNTg0NDU5MTAwICswMTAwCkBAIC0x MzI1LDcgKzEzMjUsNyBAQCBzZXBhcmF0ZV9kZWJ1Z19maWxlX2V4aXN0cyAo Y29uc3QgY2hhciAqCiAgICAgICIuZGVidWciIHN1ZmZpeCBhcyAiL3Vzci9s aWIvZGVidWcvcGF0aC90by9maWxlIiBpcyBhIHNlcGFyYXRlIHRyZWUgd2hl cmUKICAgICAgdGhlIHNlcGFyYXRlIGRlYnVnIGluZm9zIHdpdGggdGhlIHNh bWUgYmFzZW5hbWUgY2FuIGV4aXN0LiAgKi8KIAotICBpZiAoc3RyY21wIChu YW1lLCBwYXJlbnRfb2JqZmlsZS0+bmFtZSkgPT0gMCkKKyAgaWYgKGZpbGVu YW1lX2NtcCAobmFtZSwgcGFyZW50X29iamZpbGUtPm5hbWUpID09IDApCiAg ICAgcmV0dXJuIDA7CiAKICAgYWJmZCA9IGJmZF9vcGVuX21heWJlX3JlbW90 ZSAobmFtZSk7CkBAIC0xMzMzLDcgKzEzMzMsNyBAQCBzZXBhcmF0ZV9kZWJ1 Z19maWxlX2V4aXN0cyAoY29uc3QgY2hhciAqCiAgIGlmICghYWJmZCkKICAg ICByZXR1cm4gMDsKIAotICAvKiBWZXJpZnkgc3ltbGlua3Mgd2VyZSBub3Qg dGhlIGNhdXNlIG9mIHN0cmNtcCBuYW1lIGRpZmZlcmVuY2UgYWJvdmUuCisg IC8qIFZlcmlmeSBzeW1saW5rcyB3ZXJlIG5vdCB0aGUgY2F1c2Ugb2YgZmls ZW5hbWVfY21wIG5hbWUgZGlmZmVyZW5jZSBhYm92ZS4KIAogICAgICBTb21l IG9wZXJhdGluZyBzeXN0ZW1zLCBlLmcuIFdpbmRvd3MsIGRvIG5vdCBwcm92 aWRlIGEgbWVhbmluZ2Z1bAogICAgICBzdF9pbm87IHRoZXkgYWx3YXlzIHNl dCBpdCB0byB6ZXJvLiAgKFdpbmRvd3MgZG9lcyBwcm92aWRlIGEKQEAgLTE0 NzEsNyArMTQ3MSw4IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9k ZWJ1Z2xpbmsgKHMKICAgICAgIC8qIElmIHRoZSBmaWxlIGlzIGluIHRoZSBz eXNyb290LCB0cnkgdXNpbmcgaXRzIGJhc2UgcGF0aCBpbiB0aGUKIAkgZ2xv YmFsIGRlYnVnZmlsZSBkaXJlY3RvcnkuICAqLwogICAgICAgaWYgKGNhbm9u X25hbWUKLQkgICYmIHN0cm5jbXAgKGNhbm9uX25hbWUsIGdkYl9zeXNyb290 LCBzdHJsZW4gKGdkYl9zeXNyb290KSkgPT0gMAorCSAgJiYgZmlsZW5hbWVf bmNtcCAoY2Fub25fbmFtZSwgZ2RiX3N5c3Jvb3QsCisJCQkgICAgc3RybGVu IChnZGJfc3lzcm9vdCkpID09IDAKIAkgICYmIElTX0RJUl9TRVBBUkFUT1Ig KGNhbm9uX25hbWVbc3RybGVuIChnZGJfc3lzcm9vdCldKSkKIAl7CiAJICBt ZW1jcHkgKGRlYnVnZmlsZSwgZGVidWdkaXIsIGRlYnVnZGlyX2VuZCAtIGRl YnVnZGlyKTsKQEAgLTIzNzUsOCArMjM3Niw5IEBAIHJlcmVhZF9zeW1ib2xz ICh2b2lkKQogCSAgLyogV2UgbmVlZCB0byBkbyB0aGlzIHdoZW5ldmVyIGFu eSBzeW1ib2xzIGdvIGF3YXkuICAqLwogCSAgbWFrZV9jbGVhbnVwIChjbGVh cl9zeW10YWJfdXNlcnNfY2xlYW51cCwgMCAvKmlnbm9yZSovKTsKIAotCSAg aWYgKGV4ZWNfYmZkICE9IE5VTEwgJiYgc3RyY21wIChiZmRfZ2V0X2ZpbGVu YW1lIChvYmpmaWxlLT5vYmZkKSwKLQkJCQkJICBiZmRfZ2V0X2ZpbGVuYW1l IChleGVjX2JmZCkpID09IDApCisJICBpZiAoZXhlY19iZmQgIT0gTlVMTAor CSAgICAgICYmIGZpbGVuYW1lX2NtcCAoYmZkX2dldF9maWxlbmFtZSAob2Jq ZmlsZS0+b2JmZCksCisJCQkgICAgICAgYmZkX2dldF9maWxlbmFtZSAoZXhl Y19iZmQpKSA9PSAwKQogCSAgICB7CiAJICAgICAgLyogUmVsb2FkIEVYRUNf QkZEIHdpdGhvdXQgYXNraW5nIGFueXRoaW5nLiAgKi8KIApJbmRleDogZ2Ri L3N5bW1pc2MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIub3Jp Zy9zeW1taXNjLmMJMjAxMS0wMy0yMyAxNDowMzozMC41NDU4MTE2MDAgKzAx MDAKKysrIGdkYi9zeW1taXNjLmMJMjAxMS0wMy0yMyAxNDowODo0Ny42MDU0 NjE4MDAgKzAxMDAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJzeW10 YWIuaCIKICNpbmNsdWRlICJnZGJ0eXBlcy5oIgogI2luY2x1ZGUgImJmZC5o IgorI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUgInN5bWZpbGUu aCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgogI2luY2x1ZGUgImJyZWFrcG9p bnQuaCIKQEAgLTQ3NSw3ICs0NzYsNyBAQCBtYWludGVuYW5jZV9wcmludF9z eW1ib2xzIChjaGFyICphcmdzLCBpCiAKICAgaW1tZWRpYXRlX3F1aXQrKzsK ICAgQUxMX1NZTVRBQlMgKG9iamZpbGUsIHMpCi0gICAgaWYgKHN5bW5hbWUg PT0gTlVMTCB8fCBzdHJjbXAgKHN5bW5hbWUsIHMtPmZpbGVuYW1lKSA9PSAw KQorICAgIGlmIChzeW1uYW1lID09IE5VTEwgfHwgZmlsZW5hbWVfY21wIChz eW1uYW1lLCBzLT5maWxlbmFtZSkgPT0gMCkKICAgICBkdW1wX3N5bXRhYiAo b2JqZmlsZSwgcywgb3V0ZmlsZSk7CiAgIGltbWVkaWF0ZV9xdWl0LS07CiAg IGRvX2NsZWFudXBzIChjbGVhbnVwcyk7CkluZGV4OiBnZGIvc3ltdGFiLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2RiLm9yaWcvc3ltdGFiLmMJ MjAxMS0wMy0yMyAxNDowMzozMC41NDY4MTE2MDAgKzAxMDAKKysrIGdkYi9z eW10YWIuYwkyMDExLTAzLTIzIDE0OjA4OjQ3LjYxNDQ2MjkwMCArMDEwMApA QCAtMjc2MSw3ICsyNzYxLDcgQEAgZmlsZW5hbWVfc2VlbiAoY29uc3QgY2hh ciAqZmlsZSwgaW50IGFkZAogCiAgIC8qIElzIEZJTEUgaW4gdGFiPyAgKi8K ICAgZm9yIChwID0gdGFiOyBwIDwgdGFiICsgdGFiX2N1cl9zaXplOyBwKysp Ci0gICAgaWYgKHN0cmNtcCAoKnAsIGZpbGUpID09IDApCisgICAgaWYgKGZp bGVuYW1lX2NtcCAoKnAsIGZpbGUpID09IDApCiAgICAgICByZXR1cm4gMTsK IAogICAvKiBObzsgbWF5YmUgYWRkIGl0IHRvIHRhYi4gICovCkBAIC0yODYy LDcgKzI4NjIsNyBAQCBmaWxlX21hdGNoZXMgKGNvbnN0IGNoYXIgKmZpbGUs IGNoYXIgKmZpCiAgICAgewogICAgICAgZm9yIChpID0gMDsgaSA8IG5maWxl czsgaSsrKQogCXsKLQkgIGlmIChzdHJjbXAgKGZpbGVzW2ldLCBsYmFzZW5h bWUgKGZpbGUpKSA9PSAwKQorCSAgaWYgKGZpbGVuYW1lX2NtcCAoZmlsZXNb aV0sIGxiYXNlbmFtZSAoZmlsZSkpID09IDApCiAJICAgIHJldHVybiAxOwog CX0KICAgICB9CkBAIC0zMjYwLDcgKzMyNjAsNyBAQCBzdGF0aWMgdm9pZAog cHJpbnRfc3ltYm9sX2luZm8gKGRvbWFpbl9lbnVtIGtpbmQsIHN0cnVjdCBz eW10YWIgKnMsIHN0cnVjdCBzeW1ib2wgKnN5bSwKIAkJICAgaW50IGJsb2Nr LCBjaGFyICpsYXN0KQogewotICBpZiAobGFzdCA9PSBOVUxMIHx8IHN0cmNt cCAobGFzdCwgcy0+ZmlsZW5hbWUpICE9IDApCisgIGlmIChsYXN0ID09IE5V TEwgfHwgZmlsZW5hbWVfY21wIChsYXN0LCBzLT5maWxlbmFtZSkgIT0gMCkK ICAgICB7CiAgICAgICBmcHV0c19maWx0ZXJlZCAoIlxuRmlsZSAiLCBnZGJf c3Rkb3V0KTsKICAgICAgIGZwdXRzX2ZpbHRlcmVkIChzLT5maWxlbmFtZSwg Z2RiX3N0ZG91dCk7CkBAIC00MDczLDcgKzQwNzMsNyBAQCBub3RfaW50ZXJl c3RpbmdfZm5hbWUgKGNvbnN0IGNoYXIgKmZuYW1lCiAKICAgZm9yIChpID0g MDsgaWxsZWdhbF9hbGllbnNbaV07IGkrKykKICAgICB7Ci0gICAgICBpZiAo c3RyY21wIChmbmFtZSwgaWxsZWdhbF9hbGllbnNbaV0pID09IDApCisgICAg ICBpZiAoZmlsZW5hbWVfY21wIChmbmFtZSwgaWxsZWdhbF9hbGllbnNbaV0p ID09IDApCiAJcmV0dXJuIDE7CiAgICAgfQogICByZXR1cm4gMDsKQEAgLTQx MDIsMTIgKzQxMDIsNyBAQCBtYXliZV9hZGRfcGFydGlhbF9zeW10YWJfZmls ZW5hbWUgKGNvbnN0CiAgIGlmIChub3RfaW50ZXJlc3RpbmdfZm5hbWUgKGZp bGVuYW1lKSkKICAgICByZXR1cm47CiAgIGlmICghZmlsZW5hbWVfc2VlbiAo ZmlsZW5hbWUsIDEsIGRhdGEtPmZpcnN0KQotI2lmIEhBVkVfRE9TX0JBU0VE X0ZJTEVfU1lTVEVNCi0gICAgICAmJiBzdHJuY2FzZWNtcCAoZmlsZW5hbWUs IGRhdGEtPnRleHQsIGRhdGEtPnRleHRfbGVuKSA9PSAwCi0jZWxzZQotICAg ICAgJiYgc3RybmNtcCAoZmlsZW5hbWUsIGRhdGEtPnRleHQsIGRhdGEtPnRl eHRfbGVuKSA9PSAwCi0jZW5kaWYKLSAgICAgICkKKyAgICAgICYmIGZpbGVu YW1lX25jbXAgKGZpbGVuYW1lLCBkYXRhLT50ZXh0LCBkYXRhLT50ZXh0X2xl bikgPT0gMCkKICAgICB7CiAgICAgICAvKiBUaGlzIGZpbGUgbWF0Y2hlcyBm b3IgYSBjb21wbGV0aW9uOyBhZGQgaXQgdG8gdGhlCiAJIGN1cnJlbnQgbGlz dCBvZiBtYXRjaGVzLiAgKi8KQEAgLTQxMjAsMTIgKzQxMTUsNyBAQCBtYXli ZV9hZGRfcGFydGlhbF9zeW10YWJfZmlsZW5hbWUgKGNvbnN0CiAKICAgICAg IGlmIChiYXNlX25hbWUgIT0gZmlsZW5hbWUKIAkgICYmICFmaWxlbmFtZV9z ZWVuIChiYXNlX25hbWUsIDEsIGRhdGEtPmZpcnN0KQotI2lmIEhBVkVfRE9T X0JBU0VEX0ZJTEVfU1lTVEVNCi0JICAmJiBzdHJuY2FzZWNtcCAoYmFzZV9u YW1lLCBkYXRhLT50ZXh0LCBkYXRhLT50ZXh0X2xlbikgPT0gMAotI2Vsc2UK LQkgICYmIHN0cm5jbXAgKGJhc2VfbmFtZSwgZGF0YS0+dGV4dCwgZGF0YS0+ dGV4dF9sZW4pID09IDAKLSNlbmRpZgotCSAgKQorCSAgJiYgZmlsZW5hbWVf bmNtcCAoYmFzZV9uYW1lLCBkYXRhLT50ZXh0LCBkYXRhLT50ZXh0X2xlbikg PT0gMCkKIAlhZGRfZmlsZW5hbWVfdG9fbGlzdCAoYmFzZV9uYW1lLCBkYXRh LT50ZXh0LCBkYXRhLT53b3JkLAogCQkJICAgICAgZGF0YS0+bGlzdCwgZGF0 YS0+bGlzdF91c2VkLCBkYXRhLT5saXN0X2FsbG9jZWQpOwogICAgIH0KQEAg LTQxNTksMTIgKzQxNDksNyBAQCBtYWtlX3NvdXJjZV9maWxlc19jb21wbGV0 aW9uX2xpc3QgKGNoYXIKICAgICAgIGlmIChub3RfaW50ZXJlc3RpbmdfZm5h bWUgKHMtPmZpbGVuYW1lKSkKIAljb250aW51ZTsKICAgICAgIGlmICghZmls ZW5hbWVfc2VlbiAocy0+ZmlsZW5hbWUsIDEsICZmaXJzdCkKLSNpZiBIQVZF X0RPU19CQVNFRF9GSUxFX1NZU1RFTQotCSAgJiYgc3RybmNhc2VjbXAgKHMt PmZpbGVuYW1lLCB0ZXh0LCB0ZXh0X2xlbikgPT0gMAotI2Vsc2UKLQkgICYm IHN0cm5jbXAgKHMtPmZpbGVuYW1lLCB0ZXh0LCB0ZXh0X2xlbikgPT0gMAot I2VuZGlmCi0JICApCisJICAmJiBmaWxlbmFtZV9uY21wIChzLT5maWxlbmFt ZSwgdGV4dCwgdGV4dF9sZW4pID09IDApCiAJewogCSAgLyogVGhpcyBmaWxl IG1hdGNoZXMgZm9yIGEgY29tcGxldGlvbjsgYWRkIGl0IHRvIHRoZSBjdXJy ZW50CiAJICAgICBsaXN0IG9mIG1hdGNoZXMuICAqLwpAQCAtNDE4MCwxMiAr NDE2NSw3IEBAIG1ha2Vfc291cmNlX2ZpbGVzX2NvbXBsZXRpb25fbGlzdCAo Y2hhcgogCSAgYmFzZV9uYW1lID0gbGJhc2VuYW1lIChzLT5maWxlbmFtZSk7 CiAJICBpZiAoYmFzZV9uYW1lICE9IHMtPmZpbGVuYW1lCiAJICAgICAgJiYg IWZpbGVuYW1lX3NlZW4gKGJhc2VfbmFtZSwgMSwgJmZpcnN0KQotI2lmIEhB VkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNCi0JICAgICAgJiYgc3RybmNhc2Vj bXAgKGJhc2VfbmFtZSwgdGV4dCwgdGV4dF9sZW4pID09IDAKLSNlbHNlCi0J ICAgICAgJiYgc3RybmNtcCAoYmFzZV9uYW1lLCB0ZXh0LCB0ZXh0X2xlbikg PT0gMAotI2VuZGlmCi0JICAgICAgKQorCSAgICAgICYmIGZpbGVuYW1lX25j bXAgKGJhc2VfbmFtZSwgdGV4dCwgdGV4dF9sZW4pID09IDApCiAJICAgIGFk ZF9maWxlbmFtZV90b19saXN0IChiYXNlX25hbWUsIHRleHQsIHdvcmQsCiAJ CQkJICAmbGlzdCwgJmxpc3RfdXNlZCwgJmxpc3RfYWxsb2NlZCk7CiAJfQpJ bmRleDogZ2RiL3htbC1zeXNjYWxsLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2RiLm9yaWcveG1sLXN5c2NhbGwuYwkyMDExLTAzLTIzIDE0OjAz OjMwLjU4MzgxMTYwMCArMDEwMAorKysgZ2RiL3htbC1zeXNjYWxsLmMJMjAx MS0wMy0yMyAxNDowODo0Ny42MzY5NjU4MDAgKzAxMDAKQEAgLTI4MSw3ICsy ODEsNyBAQCBzdGF0aWMgdm9pZAogaW5pdF9zeXNpbmZvICh2b2lkKQogewog ICAvKiBTaG91bGQgd2UgcmUtcmVhZCB0aGUgWE1MIGluZm8gZm9yIHRoaXMg dGFyZ2V0PyAgKi8KLSAgaWYgKG15X2dkYl9kYXRhZGlyICYmIHN0cmNtcCAo bXlfZ2RiX2RhdGFkaXIsIGdkYl9kYXRhZGlyKSAhPSAwKQorICBpZiAobXlf Z2RiX2RhdGFkaXIgJiYgZmlsZW5hbWVfY21wIChteV9nZGJfZGF0YWRpciwg Z2RiX2RhdGFkaXIpICE9IDApCiAgICAgewogICAgICAgLyogVGhlIGRhdGEt ZGlyZWN0b3J5IGNoYW5nZWQgZnJvbSB0aGUgbGFzdCB0aW1lIHdlIHVzZWQg aXQuCiAJIEl0IG1lYW5zIHRoYXQgd2UgaGF2ZSB0byByZS1yZWFkIHRoZSBY TUwgaW5mby4gICovCkluZGV4OiBnZGIvd2luZG93cy1uYXQuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBnZGIub3JpZy93aW5kb3dzLW5hdC5jCTIw MTEtMDMtMjMgMTQ6MDM6MzAuNTQ3ODExNjAwICswMTAwCisrKyBnZGIvd2lu ZG93cy1uYXQuYwkyMDExLTAzLTIzIDE0OjA4OjQ3LjY0Mjk2NjUwMCArMDEw MApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPHNpZ25hbC5oPgogCiAj aW5jbHVkZSAiYnVpbGRzeW0uaCIKKyNpbmNsdWRlICJmaWxlbmFtZXMuaCIK ICNpbmNsdWRlICJzeW1maWxlLmgiCiAjaW5jbHVkZSAib2JqZmlsZXMuaCIK ICNpbmNsdWRlICJnZGJfb2JzdGFjay5oIgpAQCAtMjU4Niw3ICsyNTg3LDcg QEAgX2luaXRpYWxpemVfY2hlY2tfZm9yX2dkYl9pbmkgKHZvaWQpCiAJCQkJ ICAgICAgc2l6ZW9mICgiL2dkYi5pbmkiKSk7CiAgICAgICBzdHJjcHkgKG9s ZGluaSwgaG9tZWRpcik7CiAgICAgICBwID0gc3RyY2hyIChvbGRpbmksICdc MCcpOwotICAgICAgaWYgKHAgPiBvbGRpbmkgJiYgcFstMV0gIT0gJy8nKQor ICAgICAgaWYgKHAgPiBvbGRpbmkgJiYgIUlTX0RJUl9TRVBBUkFUT1IgKHBb LTFdKSkKIAkqcCsrID0gJy8nOwogICAgICAgc3RyY3B5IChwLCAiZ2RiLmlu aSIpOwogICAgICAgaWYgKGFjY2VzcyAob2xkaW5pLCAwKSA9PSAwKQo= --000e0cd6b216d34916049f2790c6--