From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17250 invoked by alias); 11 Jun 2011 00:19:28 -0000 Received: (qmail 17239 invoked by uid 22791); 11 Jun 2011 00:19:26 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,TW_VP,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (74.125.121.67) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 11 Jun 2011 00:19:09 +0000 Received: from kpbe17.cbf.corp.google.com (kpbe17.cbf.corp.google.com [172.25.105.81]) by smtp-out.google.com with ESMTP id p5B0J7e6013837 for ; Fri, 10 Jun 2011 17:19:07 -0700 Received: from ywl41 (ywl41.prod.google.com [10.192.12.41]) by kpbe17.cbf.corp.google.com with ESMTP id p5B0J5xC010180 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Fri, 10 Jun 2011 17:19:06 -0700 Received: by ywl41 with SMTP id 41so1764016ywl.18 for ; Fri, 10 Jun 2011 17:19:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.24.38 with SMTP id 38mr2502893anx.112.1307751545537; Fri, 10 Jun 2011 17:19:05 -0700 (PDT) Received: by 10.100.93.20 with HTTP; Fri, 10 Jun 2011 17:19:05 -0700 (PDT) Date: Sat, 11 Jun 2011 00:19:00 -0000 Message-ID: Subject: [PATCH] Make interrupting tab-completion safe. From: Sterling Augustine To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016e646916c5383f404a564a281 X-System-Of-Record: true 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-06/txt/msg00147.txt.bz2 --0016e646916c5383f404a564a281 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1596 As discussed on IRC, gdb can crash on the following sequence: gdb b [ctrl-c before tab-completion is done] b (segmentation fault) The problem comes because the dwarf2read.c tries to discover the full linkage name of symbols, and assumes that it won't be interrupted. But the *_type_print* and *_print_type* functions do contain calls to QUIT. I'm sure it also occurs at times other than tab-completion--any time a psymtab being converted to a symtab is interrupted. This patch adjusts the functions in question to conditionally call quit based on the variable show, which is -1 when they are called to discover the full linkage name--among other times. Sterling 2011-06-10 Sterling Augustine * typeprint.h (TYPE_PRINT_QUIT): New macro. * psymtab.c (map_symbol_filenames_psymtab): Call QUIT. * p-typeprint.c (pascal_type_print_varspec_prefix): Call TYPE_PRINT_QUIT instead of QUIT. (pascal_type_print_varspec_suffix): Likewise. (pascal_type_print_base): Likewise. * m2-typeprint.c (m2_print_type): Likewise. * jv-typeprint.c (java_type_print_base): Likewise. * f-typeprint.c: Include typeprint.h. (f_type_print_varspec_prefix): Call TYPE_PRINT_QUIT instead of QUIT. (f_type_print_varspec_suffix): Likewise. (f_type_print_base): Likewise. * c-typeprint.c (c_type_print_varspec_prefix): Likewise. (c_type_print_varspec_suffix): Likewise. (c_type_print_base): Likewise. Remove extraneous calls to QUIT. * ada-typeprint.c (print_enum_type): Add show parameter. Call TYPE_PRINT_QUIT. (ada_print_type): Likewise. --0016e646916c5383f404a564a281 Content-Type: text/x-patch; charset=US-ASCII; name="conditional-type-print-quit.patch" Content-Disposition: attachment; filename="conditional-type-print-quit.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gorthc0s0 Content-length: 12591 SW5kZXg6IGFkYS10eXBlcHJpbnQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2FkYS10eXBlcHJpbnQuYyx2 CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MApkaWZmIC11IC1yMS40MCBhZGEt dHlwZXByaW50LmMKLS0tIGFkYS10eXBlcHJpbnQuYwkxIEphbiAyMDExIDE1 OjMyOjU2IC0wMDAwCTEuNDAKKysrIGFkYS10eXBlcHJpbnQuYwkxMSBKdW4g MjAxMSAwMDowNzoxNiAtMDAwMApAQCAtMjcxLDcgKzI3MSw3IEBACiAvKiBQ cmludCBlbnVtZXJhdGVkIHR5cGUgVFlQRSBvbiBTVFJFQU0uICAqLwogCiBz dGF0aWMgdm9pZAotcHJpbnRfZW51bV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKK3ByaW50X2VudW1fdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCBzaG93KQogewogICBpbnQgbGVuID0gVFlQRV9ORklFTERTICh0eXBlKTsK ICAgaW50IGksIGxhc3R2YWw7CkBAIC0yODIsNyArMjgyLDcgQEAKICAgbGFz dHZhbCA9IDA7CiAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKICAgICB7 Ci0gICAgICBRVUlUOworICAgICAgVFlQRV9QUklOVF9RVUlUIChzaG93KTsK ICAgICAgIGlmIChpKQogCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiwg Iik7CiAgICAgICB3cmFwX2hlcmUgKCIgICAgIik7CkBAIC01NzAsNyArNTcw LDcgQEAKIAogICBmb3IgKGkgPSBmbGQwOyBpIDw9IGZsZDE7IGkgKz0gMSkK ICAgICB7Ci0gICAgICBRVUlUOworICAgICAgVFlQRV9QUklOVF9RVUlUIChz aG93KTsKIAogICAgICAgaWYgKGFkYV9pc19wYXJlbnRfZmllbGQgKHR5cGUs IGkpIHx8IGFkYV9pc19pZ25vcmVkX2ZpZWxkICh0eXBlLCBpKSkKIAk7CkBA IC04NDYsNyArODQ2LDcgQEAKIAlpZiAoc2hvdyA8IDApCiAJICBmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIoLi4uKSIpOwogCWVsc2UKLQkgIHByaW50 X2VudW1fdHlwZSAodHlwZSwgc3RyZWFtKTsKKwkgIHByaW50X2VudW1fdHlw ZSAodHlwZSwgc3RyZWFtLCBzaG93KTsKIAlicmVhazsKICAgICAgIGNhc2Ug VFlQRV9DT0RFX1NUUlVDVDoKIAlpZiAoYWRhX2lzX2FycmF5X2Rlc2NyaXB0 b3JfdHlwZSAodHlwZSkpCkluZGV4OiBjLXR5cGVwcmludC5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvYy10 eXBlcHJpbnQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43MApkaWZmIC11 IC1yMS43MCBjLXR5cGVwcmludC5jCi0tLSBjLXR5cGVwcmludC5jCTIyIE1h ciAyMDExIDE3OjM1OjIyIC0wMDAwCTEuNzAKKysrIGMtdHlwZXByaW50LmMJ MTEgSnVuIDIwMTEgMDA6MDc6MTYgLTAwMDAKQEAgLTI0Nyw3ICsyNDcsNyBA QAogICBpZiAoVFlQRV9OQU1FICh0eXBlKSAmJiBzaG93IDw9IDApCiAgICAg cmV0dXJuOwogCi0gIFFVSVQ7CisgIFRZUEVfUFJJTlRfUVVJVCAoc2hvdyk7 CiAKICAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUpKQogICAgIHsKQEAgLTYx Myw3ICs2MTMsNyBAQAogICBpZiAoVFlQRV9OQU1FICh0eXBlKSAmJiBzaG93 IDw9IDApCiAgICAgcmV0dXJuOwogCi0gIFFVSVQ7CisgIFRZUEVfUFJJTlRf UVVJVCAoc2hvdyk7CiAKICAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUpKQog ICAgIHsKQEAgLTczMCw3ICs3MzAsNyBAQAogICBpbnQgbmVlZF9hY2Nlc3Nf bGFiZWwgPSAwOwogICBpbnQgaiwgbGVuMjsKIAotICBRVUlUOworICBUWVBF X1BSSU5UX1FVSVQgKHNob3cpOwogCiAgIHdyYXBfaGVyZSAoIiAgICAiKTsK ICAgaWYgKHR5cGUgPT0gTlVMTCkKQEAgLTg0Miw3ICs4NDIsNiBAQAogCiAJ ICBpZiAoVFlQRV9ERUNMQVJFRF9DTEFTUyAodHlwZSkpCiAJICAgIHsKLQkg ICAgICBRVUlUOwogCSAgICAgIGxlbiA9IFRZUEVfTkZJRUxEUyAodHlwZSk7 CiAJICAgICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsg aSA8IGxlbjsgaSsrKQogCQlpZiAoIVRZUEVfRklFTERfUFJJVkFURSAodHlw ZSwgaSkpCkBAIC04NTAsNyArODQ5LDYgQEAKIAkJICAgIG5lZWRfYWNjZXNz X2xhYmVsID0gMTsKIAkJICAgIGJyZWFrOwogCQkgIH0KLQkgICAgICBRVUlU OwogCSAgICAgIGlmICghbmVlZF9hY2Nlc3NfbGFiZWwpCiAJCXsKIAkJICBs ZW4yID0gVFlQRV9ORk5fRklFTERTICh0eXBlKTsKQEAgLTg3MSw3ICs4Njks NiBAQAogCSAgICB9CiAJICBlbHNlCiAJICAgIHsKLQkgICAgICBRVUlUOwog CSAgICAgIGxlbiA9IFRZUEVfTkZJRUxEUyAodHlwZSk7CiAJICAgICAgZm9y IChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsgaSA8IGxlbjsgaSsr KQogCQlpZiAoVFlQRV9GSUVMRF9QUklWQVRFICh0eXBlLCBpKQpAQCAtODgw LDEzICs4NzcsMTIgQEAKIAkJICAgIG5lZWRfYWNjZXNzX2xhYmVsID0gMTsK IAkJICAgIGJyZWFrOwogCQkgIH0KLQkgICAgICBRVUlUOwogCSAgICAgIGlm ICghbmVlZF9hY2Nlc3NfbGFiZWwpCiAJCXsKIAkJICBsZW4yID0gVFlQRV9O Rk5fRklFTERTICh0eXBlKTsKIAkJICBmb3IgKGogPSAwOyBqIDwgbGVuMjsg aisrKQogCQkgICAgewotCQkgICAgICBRVUlUOworCQkgICAgICBUWVBFX1BS SU5UX1FVSVQgKHNob3cpOwogCQkgICAgICBsZW4gPSBUWVBFX0ZOX0ZJRUxE TElTVF9MRU5HVEggKHR5cGUsIGopOwogCQkgICAgICBmb3IgKGkgPSAwOyBp IDwgbGVuOyBpKyspCiAJCQlpZiAoVFlQRV9GTl9GSUVMRF9QUk9URUNURUQg KFRZUEVfRk5fRklFTERMSVNUMSAodHlwZSwKQEAgLTkxMSw3ICs5MDcsNyBA QAogCSAgdnB0cl9maWVsZG5vID0gZ2V0X3ZwdHJfZmllbGRubyAodHlwZSwg JmJhc2V0eXBlKTsKIAkgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAo dHlwZSk7IGkgPCBsZW47IGkrKykKIAkgICAgewotCSAgICAgIFFVSVQ7CisJ ICAgICAgVFlQRV9QUklOVF9RVUlUIChzaG93KTsKIAogCSAgICAgIC8qIElm IHdlIGhhdmUgYSB2aXJ0dWFsIHRhYmxlIHBvaW50ZXIsIG9taXQgaXQuICBF dmVuIGlmCiAJCSB2aXJ0dWFsIHRhYmxlIHBvaW50ZXJzIGFyZSBub3Qgc3Bl Y2lmaWNhbGx5IG1hcmtlZCBpbgpAQCAtMTAxMSw3ICsxMDA3LDcgQEAKIAkJ ICBpZiAoVFlQRV9GTl9GSUVMRF9BUlRJRklDSUFMIChmLCBqKSkKIAkJICAg IGNvbnRpbnVlOwogCi0JCSAgUVVJVDsKKwkJICBUWVBFX1BSSU5UX1FVSVQg KHNob3cpOwogCQkgIGlmIChUWVBFX0ZOX0ZJRUxEX1BST1RFQ1RFRCAoZiwg aikpCiAJCSAgICB7CiAJCSAgICAgIGlmIChzZWN0aW9uX3R5cGUgIT0gc19w cm90ZWN0ZWQpCkBAIC0xMTkyLDcgKzExODgsNyBAQAogCSAgbGFzdHZhbCA9 IDA7CiAJICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCiAJICAgIHsKLQkg ICAgICBRVUlUOworCSAgICAgIFRZUEVfUFJJTlRfUVVJVCAoc2hvdyk7CiAJ ICAgICAgaWYgKGkpCiAJCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiwg Iik7CiAJICAgICAgd3JhcF9oZXJlICgiICAgICIpOwpJbmRleDogZi10eXBl cHJpbnQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz L3NyYy9zcmMvZ2RiL2YtdHlwZXByaW50LmMsdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMzUKZGlmZiAtdSAtcjEuMzUgZi10eXBlcHJpbnQuYwotLS0gZi10 eXBlcHJpbnQuYwk3IEphbiAyMDExIDE5OjM2OjE2IC0wMDAwCTEuMzUKKysr IGYtdHlwZXByaW50LmMJMTEgSnVuIDIwMTEgMDA6MDc6MTYgLTAwMDAKQEAg LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJnZGJjb3JlLmgiCiAjaW5jbHVk ZSAidGFyZ2V0LmgiCiAjaW5jbHVkZSAiZi1sYW5nLmgiCisjaW5jbHVkZSAi dHlwZXByaW50LmgiCiAKICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCiAjaW5j bHVkZSA8ZXJybm8uaD4KQEAgLTEwMSw3ICsxMDIsNyBAQAogICBpZiAoVFlQ RV9OQU1FICh0eXBlKSAmJiBzaG93IDw9IDApCiAgICAgcmV0dXJuOwogCi0g IFFVSVQ7CisgIFRZUEVfUFJJTlRfUVVJVCAoc2hvdyk7CiAKICAgc3dpdGNo IChUWVBFX0NPREUgKHR5cGUpKQogICAgIHsKQEAgLTE2Myw3ICsxNjQsNyBA QAogICBpZiAoVFlQRV9OQU1FICh0eXBlKSAmJiBzaG93IDw9IDApCiAgICAg cmV0dXJuOwogCi0gIFFVSVQ7CisgIFRZUEVfUFJJTlRfUVVJVCAoc2hvdyk7 CiAKICAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUpKQogICAgIHsKQEAgLTI2 MSw3ICsyNjIsNyBAQAogICBpbnQgdXBwZXJfYm91bmQ7CiAgIGludCBpbmRl eDsKIAotICBRVUlUOworICBUWVBFX1BSSU5UX1FVSVQgKHNob3cpOwogCiAg IHdyYXBfaGVyZSAoIiAgICAiKTsKICAgaWYgKHR5cGUgPT0gTlVMTCkKSW5k ZXg6IGp2LXR5cGVwcmludC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvanYtdHlwZXByaW50LmMsdgpyZXRy aWV2aW5nIHJldmlzaW9uIDEuMjIKZGlmZiAtdSAtcjEuMjIganYtdHlwZXBy aW50LmMKLS0tIGp2LXR5cGVwcmludC5jCTkgSmFuIDIwMTEgMDM6MDg6NTcg LTAwMDAJMS4yMgorKysganYtdHlwZXByaW50LmMJMTEgSnVuIDIwMTEgMDA6 MDc6MTYgLTAwMDAKQEAgLTkxLDcgKzkxLDcgQEAKICAgY2hhciAqbWFuZ2xl ZF9uYW1lOwogICBjaGFyICpkZW1hbmdsZWRfbmFtZTsKIAotICBRVUlUOwor ICBUWVBFX1BSSU5UX1FVSVQgKHNob3cpOwogICB3cmFwX2hlcmUgKCIgICAg Iik7CiAKICAgaWYgKHR5cGUgPT0gTlVMTCkKQEAgLTE2NSw3ICsxNjUsNyBA QAogCSAgbGVuID0gVFlQRV9ORklFTERTICh0eXBlKTsKIAkgIGZvciAoaSA9 IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7IGkgPCBsZW47IGkrKykKIAkg ICAgewotCSAgICAgIFFVSVQ7CisgICAgICAgICAgICAgIFRZUEVfUFJJTlRf UVVJVCAoc2hvdyk7CiAJICAgICAgLyogRG9uJ3QgcHJpbnQgb3V0IHZpcnR1 YWwgZnVuY3Rpb24gdGFibGUuICAqLwogCSAgICAgIGlmIChzdHJuY21wIChU WVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpLCAiX3ZwdHIiLCA1KSA9PSAwCiAJ CSAgJiYgaXNfY3BsdXNfbWFya2VyICgoVFlQRV9GSUVMRF9OQU1FICh0eXBl LCBpKSlbNV0pKQpAQCAtMjM5LDcgKzIzOSw3IEBACiAgICAgICAgICAgICAg ICAgICAgID0gKGlzX2NvbnN0cnVjdG9yX25hbWUgKHBoeXNuYW1lKQogICAg ICAgICAgICAgICAgICAgICAgICB8fCBpc19kZXN0cnVjdG9yX25hbWUgKHBo eXNuYW1lKSk7CiAKLQkJICBRVUlUOworICAgICAgICAgICAgICAgICAgVFlQ RV9QUklOVF9RVUlUIChzaG93KTsKIAogCQkgIHByaW50X3NwYWNlc19maWx0 ZXJlZCAobGV2ZWwgKyA0LCBzdHJlYW0pOwogCkluZGV4OiBtMi10eXBlcHJp bnQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Ny Yy9zcmMvZ2RiL20yLXR5cGVwcmludC5jLHYKcmV0cmlldmluZyByZXZpc2lv biAxLjI4CmRpZmYgLXUgLXIxLjI4IG0yLXR5cGVwcmludC5jCi0tLSBtMi10 eXBlcHJpbnQuYwk5IEphbiAyMDExIDAzOjIwOjMzIC0wMDAwCTEuMjgKKysr IG0yLXR5cGVwcmludC5jCTExIEp1biAyMDExIDAwOjA3OjE2IC0wMDAwCkBA IC03NSw3ICs3NSw3IEBACiAKICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7CiAK LSAgUVVJVDsKKyAgVFlQRV9QUklOVF9RVUlUIChzaG93KTsKIAogICB3cmFw X2hlcmUgKCIgICAgIik7CiAgIGlmICh0eXBlID09IE5VTEwpCkBAIC01NjAs NyArNTYwLDcgQEAKIAogICAgICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFT U0VTICh0eXBlKTsgaSA8IGxlbjsgaSsrKQogCXsKLQkgIFFVSVQ7CisgICAg ICAgICAgVFlQRV9QUklOVF9RVUlUIChzaG93KTsKIAogCSAgcHJpbnRfc3Bh Y2VzX2ZpbHRlcmVkIChsZXZlbCArIDQsIHN0cmVhbSk7CiAJICBmcHV0c19m aWx0ZXJlZCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSwgc3RyZWFtKTsK QEAgLTYwMyw3ICs2MDMsNyBAQAogICAgICAgbGFzdHZhbCA9IDA7CiAgICAg ICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCiAJewotCSAgUVVJVDsKKyAg ICAgICAgICBUWVBFX1BSSU5UX1FVSVQgKHNob3cpOwogCSAgaWYgKGkgPiAw KQogCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIsICIpOwogCSAg d3JhcF9oZXJlICgiICAgICIpOwpJbmRleDogcC10eXBlcHJpbnQuYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2Ri L3AtdHlwZXByaW50LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDAKZGlm ZiAtdSAtcjEuNDAgcC10eXBlcHJpbnQuYwotLS0gcC10eXBlcHJpbnQuYwkx MCBNYXIgMjAxMSAyMDoyNTo0NCAtMDAwMAkxLjQwCisrKyBwLXR5cGVwcmlu dC5jCTExIEp1biAyMDExIDAwOjA3OjE3IC0wMDAwCkBAIC0yMTUsNyArMjE1 LDcgQEAKICAgaWYgKFRZUEVfTkFNRSAodHlwZSkgJiYgc2hvdyA8PSAwKQog ICAgIHJldHVybjsKIAotICBRVUlUOworICBUWVBFX1BSSU5UX1FVSVQgKHNo b3cpOwogCiAgIHN3aXRjaCAoVFlQRV9DT0RFICh0eXBlKSkKICAgICB7CkBA IC0zNDksNyArMzQ5LDcgQEAKICAgaWYgKFRZUEVfTkFNRSAodHlwZSkgJiYg c2hvdyA8PSAwKQogICAgIHJldHVybjsKIAotICBRVUlUOworICBUWVBFX1BS SU5UX1FVSVQgKHNob3cpOwogCiAgIHN3aXRjaCAoVFlQRV9DT0RFICh0eXBl KSkKICAgICB7CkBAIC00NTEsNyArNDUxLDcgQEAKICAgICB9CiAgIHNlY3Rp b25fdHlwZTsKIAotICBRVUlUOworICBUWVBFX1BSSU5UX1FVSVQgKHNob3cp OwogICB3cmFwX2hlcmUgKCIgICAgIik7CiAgIGlmICh0eXBlID09IE5VTEwp CiAgICAgewpAQCAtNTYyLDcgKzU2Miw4IEBACiAJICBsZW4gPSBUWVBFX05G SUVMRFMgKHR5cGUpOwogCSAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VT ICh0eXBlKTsgaSA8IGxlbjsgaSsrKQogCSAgICB7Ci0JICAgICAgUVVJVDsK KyAgICAgICAgICAgICAgVFlQRV9QUklOVF9RVUlUIChzaG93KTsKKwogCSAg ICAgIC8qIERvbid0IHByaW50IG91dCB2aXJ0dWFsIGZ1bmN0aW9uIHRhYmxl LiAgKi8KIAkgICAgICBpZiAoKHN0cm5jbXAgKFRZUEVfRklFTERfTkFNRSAo dHlwZSwgaSksICJfdnB0ciIsIDUpID09IDApCiAJCSAgJiYgaXNfY3BsdXNf bWFya2VyICgoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSlbNV0pKQpAQCAt NjQzLDcgKzY0NCw4IEBACiAJCSAgaW50IGlzX2NvbnN0cnVjdG9yID0gKHN0 cm5jbXAgKHBoeXNuYW1lLCAiX19jdF9fIiwgNikgPT0gMCk7CiAJCSAgaW50 IGlzX2Rlc3RydWN0b3IgPSAoc3RybmNtcCAocGh5c25hbWUsICJfX2R0X18i LCA2KSA9PSAwKTsKIAotCQkgIFFVSVQ7CisgICAgICAgICAgICAgICAgICBU WVBFX1BSSU5UX1FVSVQgKHNob3cpOworCiAJCSAgaWYgKFRZUEVfRk5fRklF TERfUFJPVEVDVEVEIChmLCBqKSkKIAkJICAgIHsKIAkJICAgICAgaWYgKHNl Y3Rpb25fdHlwZSAhPSBzX3Byb3RlY3RlZCkKQEAgLTc0Nyw3ICs3NDksNyBA QAogCSAgbGFzdHZhbCA9IDA7CiAJICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBp KyspCiAJICAgIHsKLQkgICAgICBRVUlUOworICAgICAgICAgICAgICBUWVBF X1BSSU5UX1FVSVQgKHNob3cpOwogCSAgICAgIGlmIChpKQogCQlmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIsICIpOwogCSAgICAgIHdyYXBfaGVyZSAo IiAgICAiKTsKSW5kZXg6IHBzeW10YWIuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3BzeW10YWIuYyx2CnJl dHJpZXZpbmcgcmV2aXNpb24gMS4yNi4yLjEKZGlmZiAtdSAtcjEuMjYuMi4x IHBzeW10YWIuYwotLS0gcHN5bXRhYi5jCTIwIEFwciAyMDExIDIwOjEwOjI5 IC0wMDAwCTEuMjYuMi4xCisrKyBwc3ltdGFiLmMJMTEgSnVuIDIwMTEgMDA6 MDc6MTcgLTAwMDAKQEAgLTEwODYsNyArMTA4Niw3IEBACiAKICAgICAgIGlm IChwcy0+cmVhZGluKQogCWNvbnRpbnVlOwotCisgICAgICBRVUlUOwogICAg ICAgZnVsbG5hbWUgPSBwc3ltdGFiX3RvX2Z1bGxuYW1lIChwcyk7CiAgICAg ICAoKmZ1bikgKHBzLT5maWxlbmFtZSwgZnVsbG5hbWUsIGRhdGEpOwogICAg IH0KSW5kZXg6IHR5cGVwcmludC5oCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdHlwZXByaW50LmgsdgpyZXRy aWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtdSAtcjEuMTEgdHlwZXByaW50 LmgKLS0tIHR5cGVwcmludC5oCTEgSmFuIDIwMTEgMTU6MzM6MTggLTAwMDAJ MS4xMQorKysgdHlwZXByaW50LmgJMTEgSnVuIDIwMTEgMDA6MDc6MTcgLTAw MDAKQEAgLTI5LDQgKzI5LDE2IEBACiAJCQkJICBpbnQsIGludCk7CiAKIHZv aWQgY190eXBlX3ByaW50X2FyZ3MgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1 aV9maWxlICosIGludCwgZW51bSBsYW5ndWFnZSk7CisKKy8qIFRoZSB2YXJp YWJsZSBzaG93IHdpbGwgYmUgbmVnYXRpdmUgd2hlbiBiZWluZyB1c2VkIHRv IHByaW50IHRoZQorICAgZnVsbCBsaW5rYWdlIG5hbWUgb2YgYSB2YXJpYWJs ZSAoYW1vbmcgb3RoZXIgdGltZXMpLiBDb2RlIHRoYXQKKyAgIGNhbGxzICpf dHlwZV9wcmludCogYW5kICpfcHJpbnRfdHlwZSogdG8gZGlzY292ZXIgYSBm dWxsIGxpbmthZ2UKKyAgIG5hbWUgYXNzdW1lcyB0aGF0IHRoZSBwcm9jZXNz IHdpbGwgbm90IGJlIGludGVycnVwdGVkLS1lc3BlY2lhbGx5CisgICBmcm9t IGluc2lkZSBkd2FyZjJyZWFkLmMuICBVc2luZyB0aGlzIG1hY3JvIHRvIGNv bnRyb2wgY2FsbHMgdG8KKyAgIFFVSVQgYWxsb3dzLCBmb3IgZXhhbXBsZSwg YSBwdHlwZSBjb21tYW5kIHRvIGJlIGludGVycnVwdGVkIHNhZmVseSwKKyAg IGJ1dCBub3Qgb3RoZXIgb3BlcmF0aW9ucyB0aGF0IGNhbm5vdCBiZSBpbnRl cnJ1cHRlZCBzYWZlbHkuICAqLworCisjZGVmaW5lIFRZUEVfUFJJTlRfUVVJ VChzaG93KSBcCisgIGRvIHsgaWYgKHNob3cgPj0gMCkgUVVJVDsgfSB3aGls ZSAoMCkKKwogI2VuZGlmCg== --0016e646916c5383f404a564a281--