From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5921 invoked by alias); 7 Jan 2014 14:28:29 -0000 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 Received: (qmail 5910 invoked by uid 89); 7 Jan 2014 14:28:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ee0-f48.google.com Received: from mail-ee0-f48.google.com (HELO mail-ee0-f48.google.com) (74.125.83.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 07 Jan 2014 14:28:27 +0000 Received: by mail-ee0-f48.google.com with SMTP id e49so106317eek.35 for ; Tue, 07 Jan 2014 06:28:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=hCIPXa7Qcyn1u4sCiuM9PaWhx2CyXb8aUWZUQb36tJ0=; b=diFrByt4DI+PHMI2LjtkaYdCl53oTi0AmJUCENLLYLcbBXtdOmrSMw2DGDk6RH+aGt 4GbvGwYhymYy1nyBJb7VLRvzK4SrR7eqRaVDzhLzpXejXbb3fBN8osiDVvNQRKDpMBEl tnCG7w7SMRL5vY2CRBlTbC9vodygbdgfHc37mkqPBsuK3Z8zl8mKyhvjYRH2HnTM/6XR 8WvLkMNUbTacTM4e9onvDVR2LX8rEQi4C20gTNUcYDxVK1GLf1t6KCKK4QH39zzxenSp 7Q7wzfZOjbGivSU+bwtGatUjM3U7htDUPROXdkG6wiVpJbhQPq3xGA3BmHmJfr8ZwznC Yptw== X-Gm-Message-State: ALoCoQmFdZu9gSpNGoA1zVJAgR2nu7loIhF05oScQC5wb5P1NSygH5W9IWbXME1bRYYN1sdXayKHhAVdfW86S81qiKIEwGrMKw2oUpwm+1zs7J1z6XdMi1LRbExfSuwawCPOR77QqsC+FAdK85G7rEasvLP3Tk/Npwi5uzQLnrUz7RM/3kfyrPFyuAOr3fYVI7Ds7/pBAlwWjuako5A1gXlQKgspP63hKg== MIME-Version: 1.0 X-Received: by 10.14.37.131 with SMTP id y3mr92734395eea.1.1389104903889; Tue, 07 Jan 2014 06:28:23 -0800 (PST) Received: by 10.14.151.72 with HTTP; Tue, 7 Jan 2014 06:28:23 -0800 (PST) In-Reply-To: <87lhysltqs.fsf@fleche.redhat.com> References: <87lhysltqs.fsf@fleche.redhat.com> Date: Tue, 07 Jan 2014 14:28:00 -0000 Message-ID: Subject: Re: [Patch] PR python/15464 and python/16113 From: Siva Chandra To: Tom Tromey Cc: gdb-patches Content-Type: multipart/mixed; boundary=001a11c36b165a4f9604ef6230c0 X-IsSubscribed: yes X-SW-Source: 2014-01/txt/msg00142.txt.bz2 --001a11c36b165a4f9604ef6230c0 Content-Type: text/plain; charset=UTF-8 Content-length: 2075 Attached is a new version of the patch which addresses Tom's comments. Siva> + if (name_obj != Py_None) Siva> + { Siva> + field = python_string_to_host_string (name_obj); Siva> + Py_DECREF (name_obj); Siva> + name_obj = NULL; Siva> + if (field == NULL) Siva> + return NULL; Siva> + } Siva> + Siva> + if (name_obj == Py_None || field[0] == '\0') Siva> + { Siva> + PyObject *bitpos_obj; Siva> + int valid; Siva> + Siva> + Py_XDECREF (name_obj); Tom> I think that if name_obj is the Python string "", then it will be Tom> decref'd twice. I had "name_obj = NULL" in the first if block with the second decref an x-decref to avoid decref-ing twice. This is irrelevant now as I have modified to make the name 'None' if the name is "". Siva> + res_val = value_struct_elt_bitpos (&tmp, bitpos, "struct/class/union"); Tom> I think this approach will fail in the situation where multiple Tom> anonymous sub-objects appear at the same bitpos. I think this happens Tom> with inheritance, typically at bitpos 0 but perhaps elsewhere with Tom> multiple inheritance. I apologize for not being thorough here. Even a simple union with two un-named fields can show the problem. Tom> It may be sufficient to also pass in an expected type, which could be Tom> extracted from the Field object. The attached patch takes this route. 2014-12-07 Siva Chandra Reddy PR python/15464 PR python/16133 * valops.c (value_struct_elt_bitpos): New function * py-type.c (convert_field): Set 'name' attribute of a gdb.Field object to 'None' if the field name is an empty string (""). * python/py-value.c (valpy_getitem): Use 'bitpos' and 'type' attribute to look for a field when 'name' is 'None'. (get_field_type): New function testsuite/ * gdb.python/py-type.c: Enhance test case. * gdb.python/py-value-cc.cc: Likewise * gdb.python/py-type.exp: Add new tests. * gdb.python/py-value-cc.exp: Likewise --001a11c36b165a4f9604ef6230c0 Content-Type: text/plain; charset=US-ASCII; name="value_field_subscript_patch_v3.txt" Content-Disposition: attachment; filename="value_field_subscript_patch_v3.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hq591ofn0 Content-length: 15088 ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktdHlwZS5jIGIvZ2RiL3B5dGhv bi9weS10eXBlLmMKaW5kZXggMTZiYjQ0Mi4uYzkwNGQzYSAxMDA2NDQKLS0t IGEvZ2RiL3B5dGhvbi9weS10eXBlLmMKKysrIGIvZ2RiL3B5dGhvbi9weS10 eXBlLmMKQEAgLTIwNiwxNSArMjA2LDIyIEBAIGNvbnZlcnRfZmllbGQgKHN0 cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGQpCiAgICAgICBQeV9ERUNSRUYg KGFyZyk7CiAgICAgfQogCisgIGFyZyA9IE5VTEw7CiAgIGlmIChUWVBFX0ZJ RUxEX05BTUUgKHR5cGUsIGZpZWxkKSkKLSAgICBhcmcgPSBQeVN0cmluZ19G cm9tU3RyaW5nIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGZpZWxkKSk7Ci0g IGVsc2UKKyAgICB7CisgICAgICBjb25zdCBjaGFyICpmaWVsZF9uYW1lID0g VFlQRV9GSUVMRF9OQU1FICh0eXBlLCBmaWVsZCk7CisgICAgICBpZiAoZmll bGRfbmFtZVswXSAhPSAnXDAnKQorCXsKKwkgIGFyZyA9IFB5U3RyaW5nX0Zy b21TdHJpbmcgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgZmllbGQpKTsKKwkg IGlmIChhcmcgPT0gTlVMTCkKKwkgICAgZ290byBmYWlsOworCX0KKyAgICB9 CisgIGlmIChhcmcgPT0gTlVMTCkKICAgICB7CiAgICAgICBhcmcgPSBQeV9O b25lOwogICAgICAgUHlfSU5DUkVGIChhcmcpOwogICAgIH0KLSAgaWYgKCFh cmcpCi0gICAgZ290byBmYWlsOwogICBpZiAoUHlPYmplY3RfU2V0QXR0clN0 cmluZyAocmVzdWx0LCAibmFtZSIsIGFyZykgPCAwKQogICAgIGdvdG8gZmFp bGFyZzsKICAgUHlfREVDUkVGIChhcmcpOwpkaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCmluZGV4 IDRhYjc4MmQuLmMyM2U0ZjkgMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24vcHkt dmFsdWUuYworKysgYi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKQEAgLTU2Myw2 ICs1NjMsMjkgQEAgZ2V0X2ZpZWxkX2ZsYWcgKFB5T2JqZWN0ICpmaWVsZCwg Y29uc3QgY2hhciAqZmxhZ19uYW1lKQogICByZXR1cm4gZmxhZ192YWx1ZTsK IH0KIAorLyogUmV0dXJuIHRoZSAidHlwZSIgYXR0cmlidXRlIG9mIGEgZ2Ri LkZpZWxkIG9iamVjdC4gIAorICAgUmV0dXJucyBOVUxMIG9uIGVycm9yLCB3 aXRoIGEgUHl0aG9uIGV4Y2VwdGlvbiBzZXQuICAqLworCitzdGF0aWMgc3Ry dWN0IHR5cGUgKgorZ2V0X2ZpZWxkX3R5cGUgKFB5T2JqZWN0ICpmaWVsZCkK K3sKKyAgUHlPYmplY3QgKmZ0eXBlX29iaiA9IFB5T2JqZWN0X0dldEF0dHJT dHJpbmcgKGZpZWxkLCAidHlwZSIpOworICBzdHJ1Y3QgdHlwZSAqZnR5cGU7 CisKKyAgaWYgKGZ0eXBlX29iaiA9PSBOVUxMKQorICAgIHJldHVybiBOVUxM OworICBmdHlwZSA9IHR5cGVfb2JqZWN0X3RvX3R5cGUgKGZ0eXBlX29iaik7 CisgIFB5X0RFQ1JFRiAoZnR5cGVfb2JqKTsKKyAgaWYgKGZ0eXBlID09IE5V TEwpCisgICAgeworICAgICAgUHlFcnJfU2V0U3RyaW5nIChQeUV4Y19UeXBl RXJyb3IsCisJCSAgICAgICBfKCIndHlwZScgYXR0cmlidXRlIG9mIGdkYi5G aWVsZCBvYmplY3QgaXMgbm90IGEgIgorCQkJICJnZGIuVHlwZSBvYmplY3Qu IikpOworICAgIH0KKworICByZXR1cm4gZnR5cGU7Cit9CisKIC8qIEdpdmVu IHN0cmluZyBuYW1lIG9yIGEgZ2RiLkZpZWxkIG9iamVjdCBjb3JyZXNwb25k aW5nIHRvIGFuIGVsZW1lbnQgaW5zaWRlCiAgICBhIHN0cnVjdHVyZSwgcmV0 dXJuIGl0cyB2YWx1ZSBvYmplY3QuICBSZXR1cm5zIE5VTEwgb24gZXJyb3Is IHdpdGggYSBweXRob24KICAgIGV4Y2VwdGlvbiBzZXQuICAqLwpAQCAtNTcy LDcgKzU5NSw4IEBAIHZhbHB5X2dldGl0ZW0gKFB5T2JqZWN0ICpzZWxmLCBQ eU9iamVjdCAqa2V5KQogewogICB2YWx1ZV9vYmplY3QgKnNlbGZfdmFsdWUg PSAodmFsdWVfb2JqZWN0ICopIHNlbGY7CiAgIGNoYXIgKmZpZWxkID0gTlVM TDsKLSAgUHlPYmplY3QgKmJhc2VfY2xhc3NfdHlwZV9vYmplY3QgPSBOVUxM OworICBzdHJ1Y3QgdHlwZSAqYmFzZV9jbGFzc190eXBlID0gTlVMTCwgKmZp ZWxkX3R5cGUgPSBOVUxMOworICBsb25nIGJpdHBvcyA9IC0xOwogICB2b2xh dGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7CiAgIFB5T2JqZWN0 ICpyZXN1bHQgPSBOVUxMOwogCkBAIC02MDMsOCArNjI3LDggQEAgdmFscHlf Z2V0aXRlbSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICprZXkpCiAJcmV0 dXJuIE5VTEw7CiAgICAgICBlbHNlIGlmIChpc19iYXNlX2NsYXNzID4gMCkK IAl7Ci0JICBiYXNlX2NsYXNzX3R5cGVfb2JqZWN0ID0gUHlPYmplY3RfR2V0 QXR0clN0cmluZyAoa2V5LCAidHlwZSIpOwotCSAgaWYgKGJhc2VfY2xhc3Nf dHlwZV9vYmplY3QgPT0gTlVMTCkKKwkgIGJhc2VfY2xhc3NfdHlwZSA9IGdl dF9maWVsZF90eXBlIChrZXkpOworCSAgaWYgKGJhc2VfY2xhc3NfdHlwZSA9 PSBOVUxMKQogCSAgICByZXR1cm4gTlVMTDsKIAl9CiAgICAgICBlbHNlCkBA IC02MTQsMTAgKzYzOCw0MCBAQCB2YWxweV9nZXRpdGVtIChQeU9iamVjdCAq c2VsZiwgUHlPYmplY3QgKmtleSkKIAkgIGlmIChuYW1lX29iaiA9PSBOVUxM KQogCSAgICByZXR1cm4gTlVMTDsKIAotCSAgZmllbGQgPSBweXRob25fc3Ry aW5nX3RvX2hvc3Rfc3RyaW5nIChuYW1lX29iaik7Ci0JICBQeV9ERUNSRUYg KG5hbWVfb2JqKTsKLQkgIGlmIChmaWVsZCA9PSBOVUxMKQotCSAgICByZXR1 cm4gTlVMTDsKKwkgIGlmIChuYW1lX29iaiAhPSBQeV9Ob25lKQorCSAgICB7 CisJICAgICAgZmllbGQgPSBweXRob25fc3RyaW5nX3RvX2hvc3Rfc3RyaW5n IChuYW1lX29iaik7CisJICAgICAgUHlfREVDUkVGIChuYW1lX29iaik7CisJ ICAgICAgaWYgKGZpZWxkID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCSAg ICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBQeU9iamVjdCAqYml0cG9z X29iajsKKwkgICAgICBpbnQgdmFsaWQ7CisKKwkgICAgICBQeV9ERUNSRUYg KG5hbWVfb2JqKTsKKworCSAgICAgIGlmICghUHlPYmplY3RfSGFzQXR0clN0 cmluZyAoa2V5LCAiYml0cG9zIikpCisJCXsKKwkJICBQeUVycl9TZXRTdHJp bmcgKFB5RXhjX0F0dHJpYnV0ZUVycm9yLAorCQkJCSAgIF8oImdkYi5GaWVs ZCBvYmplY3QgaGFzIG5vIG5hbWUgYW5kIG5vICIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiJ2JpdHBvcycgYXR0cmlidXRlLiIp KTsKKworCQkgIHJldHVybiBOVUxMOworCQl9CisJICAgICAgYml0cG9zX29i aiA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcgKGtleSwgImJpdHBvcyIpOwor CSAgICAgIGlmIChiaXRwb3Nfb2JqID09IE5VTEwpCisJCXJldHVybiBOVUxM OworCSAgICAgIHZhbGlkID0gZ2RiX3B5X2ludF9hc19sb25nIChiaXRwb3Nf b2JqLCAmYml0cG9zKTsKKwkgICAgICBQeV9ERUNSRUYgKGJpdHBvc19vYmop OworCSAgICAgIGlmICghdmFsaWQpCisJCXJldHVybiBOVUxMOworCisJICAg ICAgZmllbGRfdHlwZSA9IGdldF9maWVsZF90eXBlIChrZXkpOworCSAgICAg IGlmIChmaWVsZF90eXBlID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCSAg ICB9CiAJfQogICAgIH0KIApAQCAtNjI5LDE0ICs2ODMsMTIgQEAgdmFscHlf Z2V0aXRlbSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICprZXkpCiAKICAg ICAgIGlmIChmaWVsZCkKIAlyZXNfdmFsID0gdmFsdWVfc3RydWN0X2VsdCAo JnRtcCwgTlVMTCwgZmllbGQsIDAsIE5VTEwpOwotICAgICAgZWxzZSBpZiAo YmFzZV9jbGFzc190eXBlX29iamVjdCAhPSBOVUxMKQorICAgICAgZWxzZSBp ZiAoYml0cG9zID49IDApCisJcmVzX3ZhbCA9IHZhbHVlX3N0cnVjdF9lbHRf Yml0cG9zICgmdG1wLCBiaXRwb3MsIGZpZWxkX3R5cGUsCisJCQkJCSAgICJz dHJ1Y3QvY2xhc3MvdW5pb24iKTsKKyAgICAgIGVsc2UgaWYgKGJhc2VfY2xh c3NfdHlwZSAhPSBOVUxMKQogCXsKLQkgIHN0cnVjdCB0eXBlICpiYXNlX2Ns YXNzX3R5cGUsICp2YWxfdHlwZTsKLQotCSAgYmFzZV9jbGFzc190eXBlID0g dHlwZV9vYmplY3RfdG9fdHlwZSAoYmFzZV9jbGFzc190eXBlX29iamVjdCk7 Ci0JICBQeV9ERUNSRUYgKGJhc2VfY2xhc3NfdHlwZV9vYmplY3QpOwotCSAg aWYgKGJhc2VfY2xhc3NfdHlwZSA9PSBOVUxMKQotCSAgICBlcnJvciAoXygi RmllbGQgdHlwZSBub3QgYW4gaW5zdGFuY2Ugb2YgZ2RiLlR5cGUuIikpOwor CSAgc3RydWN0IHR5cGUgKnZhbF90eXBlOwogCiAJICB2YWxfdHlwZSA9IGNo ZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHRtcCkpOwogCSAgaWYgKFRZUEVf Q09ERSAodmFsX3R5cGUpID09IFRZUEVfQ09ERV9QVFIpCmRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5jIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LXR5cGUuYwppbmRleCA3Y2VlMzgzLi42 OTdlMjljIDEwMDY0NAotLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktdHlwZS5jCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10 eXBlLmMKQEAgLTIxLDYgKzIxLDEyIEBAIHN0cnVjdCBzCiAgIGludCBiOwog fTsKIAorc3RydWN0IFNTCit7CisgIHVuaW9uIHsgaW50IHg7IGNoYXIgeTsg fTsKKyAgdW5pb24geyBpbnQgYTsgY2hhciBiOyB9OworfTsKKwogdHlwZWRl ZiBzdHJ1Y3QgcyBUUzsKIFRTIHRzOwogCkBAIC01OCw2ICs2NCw3IEBAIG1h aW4gKCkKIHsKICAgaW50IGFyWzJdID0gezEsMn07CiAgIHN0cnVjdCBzIHN0 OworICBzdHJ1Y3QgU1Mgc3M7CiAjaWZkZWYgX19jcGx1c3BsdXMKICAgQyBj OwogICBjLmMgPSAxOwpAQCAtNzIsNiArNzksOCBAQCBtYWluICgpCiAgIHN0 LmIgPSA1OwogCiAgIGUgPSB2MjsKKworICBzcy54ID0gMTAwOwogICAKICAg cmV0dXJuIDA7ICAgICAgLyogYnJlYWsgdG8gaW5zcGVjdCBzdHJ1Y3QgYW5k IGFycmF5LiAgKi8KIH0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS10eXBlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS10eXBlLmV4cAppbmRleCA5MzMwMWQwLi42YjYxZjQ4IDEwMDY0NAot LS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5leHAKKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXR5cGUuZXhwCkBAIC04 NSw2ICs4NSwxNSBAQCBwcm9jIHRlc3RfZmllbGRzIHtsYW5nfSB7CiAgICAg Z2RiX3Rlc3QgInB5dGhvbiBwcmludCAoZmllbGRzXFswXF0ubmFtZSkiICJh IiAiQ2hlY2sgc3RydWN0dXJlIGZpZWxkIGEgbmFtZSIKICAgICBnZGJfdGVz dCAicHl0aG9uIHByaW50IChmaWVsZHNcWzFcXS5uYW1lKSIgImIiICJDaGVj ayBzdHJ1Y3R1cmUgZmllbGQgYiBuYW1lIgogCisgICAgIyBUZXN0IHRoYXQg dW5hbWVkIGZpZWxkcyBoYXZlICdOb25lJyBmb3IgbmFtZS4KKyAgICBnZGJf cHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gc3MgPSBnZGIucGFyc2VfYW5k X2V2YWwoJ3NzJykiICJpbml0IHNzIiAxCisgICAgZ2RiX3B5X3Rlc3Rfc2ls ZW50X2NtZCAicHl0aG9uIHNzX2ZpZWxkcyA9IHNzLnR5cGUuZmllbGRzKCki IFwKKyAgICAgICJnZXQgZmllbGRzIGZyb20gc3MudHlwZSIgMQorICAgIGdk Yl90ZXN0ICJweXRob24gcHJpbnQgbGVuKHNzX2ZpZWxkcykiICIyIiAiQ2hl Y2sgbGVuZ3RoIG9mIHNzX2ZpZWxkcyIKKyAgICBnZGJfdGVzdCAicHl0aG9u IHByaW50IHNzX2ZpZWxkc1xbMFxdLm5hbWUgaXMgTm9uZSIgIlRydWUiIFwK KyAgICAgICJDaGVjayBzc19maWVsZHNcWzBcXS5uYW1lIgorICAgIGdkYl90 ZXN0ICJweXRob24gcHJpbnQgc3NfZmllbGRzXFsxXF0ubmFtZSBpcyBOb25l IiAiVHJ1ZSIgXAorICAgICAgIkNoZWNrIHNzX2ZpZWxkc1xbMVxdLm5hbWUi CiAgICAgIyBSZWdyZXNzaW9uIHRlc3QgZm9yCiAgICAgIyBodHRwOi8vc291 cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEyMDcwLgog ICAgIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCd0eXBlJyBpbiBkaXIoZmll bGRzXFswXF0pKSIgIlRydWUiIFwKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5jYyBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS12YWx1ZS1jYy5jYwppbmRleCA1OWYxZGVjLi5hY2U5 NTdhIDEwMDY0NAotLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt dmFsdWUtY2MuY2MKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LXZhbHVlLWNjLmNjCkBAIC0zMCw4ICszMCwyMSBAQCBjbGFzcyBCIDogcHVi bGljIEEgewogICBjaGFyIGE7CiB9OwogCitzdHJ1Y3QgWAoreworICB1bmlv biB7IGludCB4OyBjaGFyIHk7IH07CisgIHVuaW9uIHsgaW50IGE7IGNoYXIg YjsgfTsKK307CisKK3VuaW9uIFVVCit7CisgIHVuaW9uIHsgaW50IHg7IGNo YXIgeTsgfTsKKyAgdW5pb24geyBpbnQgYTsgY2hhciBiOyB9OworfTsKKwog dHlwZWRlZiBCIEJ0ZDsKIHR5cGVkZWYgaW50ICppbnRfcHRyOwordHlwZWRl ZiBYIFh0ZDsKIAogaW50CiBmdW5jIChjb25zdCBBICZhKQpAQCAtNTcsNiAr NzAsMTYgQEAgZnVuYyAoY29uc3QgQSAmYSkKICAgVSB1OwogICB1LmEgPSA5 OTsKIAorICBYIHg7CisgIHgueCA9IDEwMTsKKyAgeC5hID0gMTAyOworCisg IFVVIHV1OworICB1dS54ID0gMTAwMDsKKworICBYICp4X3B0ciA9ICZ4Owor ICBYdGQgKnh0ZCA9ICZ4OworCiAgIHJldHVybiAwOyAvKiBCcmVhayBoZXJl LiAgKi8KIH0KIApkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LXZhbHVlLWNjLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS12YWx1ZS1jYy5leHAKaW5kZXggMWZhZWM1Zi4uZTYzNTFmNiAxMDA2 NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNj LmV4cAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUt Y2MuZXhwCkBAIC01Myw2ICs1MywxNCBAQCBnZGJfdGVzdF9ub19vdXRwdXQg InB5dGhvbiBiX3JlZiA9IGdkYi5wYXJzZV9hbmRfZXZhbCgnYl9yZWYnKSIg ImluaXQgYl9yZWYiCiBnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiBiX3Rk ID0gZ2RiLnBhcnNlX2FuZF9ldmFsKCdiX3RkJykiICJpbml0IGJfdGQiCiBn ZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiB1ID0gZ2RiLnBhcnNlX2FuZF9l dmFsKCd1JykiICJpbml0IHUiCiBnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhv biB1X2ZpZWxkcyA9IHUudHlwZS5maWVsZHMoKSIgImluaXQgdV9maWVsZHMi CitnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiB4ID0gZ2RiLnBhcnNlX2Fu ZF9ldmFsKCd4JykiICJpbml0IHgiCitnZGJfdGVzdF9ub19vdXRwdXQgInB5 dGhvbiB4X2ZpZWxkcyA9IHgudHlwZS5maWVsZHMoKSIgImluaXQgeF9maWVs ZHMiCitnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiB1dSA9IGdkYi5wYXJz ZV9hbmRfZXZhbCgndXUnKSIgImluaXQgdXUiCitnZGJfdGVzdF9ub19vdXRw dXQgInB5dGhvbiB1dV9maWVsZHMgPSB1dS50eXBlLmZpZWxkcygpIiAiaW5p dCB1dV9maWVsZHMiCitnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiB4X3B0 ciA9IGdkYi5wYXJzZV9hbmRfZXZhbCgneF9wdHInKSIgImluaXQgeF9wdHIi CitnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiB4dGQgPSBnZGIucGFyc2Vf YW5kX2V2YWwoJ3h0ZCcpIiAiaW5pdCB4dGQiCisKK2dkYl90ZXN0ICJweXRo b24gcHJpbnQoYlxbYl9maWVsZHNcWzFcXVxdKSIgIjk3ICdhJyIgImIuYSB2 aWEgZmllbGQiCiAKIGdkYl90ZXN0ICJweXRob24gcHJpbnQoYlxbYl9maWVs ZHNcWzFcXVxdKSIgIjk3ICdhJyIgImIuYSB2aWEgZmllbGQiCiBnZGJfdGVz dCAicHl0aG9uIHByaW50KGJcW2JfZmllbGRzXFswXF1cXS50eXBlKSIgIkEi IFwKQEAgLTc5LDMgKzg3LDE1IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQo Yl90ZFxbYl9maWVsZHNcWzBcXVxdXFsnYSdcXSkiICIxMDAiIFwKIAogZ2Ri X3Rlc3QgInB5dGhvbiBwcmludCh1XFt1X2ZpZWxkc1xbMFxdXF0pIiAiOTku KiIgInUncyBmaXJzdCBmaWVsZCB2aWEgZmllbGQiCiBnZGJfdGVzdCAicHl0 aG9uIHByaW50KHVcW3VfZmllbGRzXFsxXF1cXSkiICI5OS4qIiAidSdzIHNl Y29uZCBmaWVsZCB2aWEgZmllbGQiCisKK2dkYl90ZXN0ICJweXRob24gcHJp bnQgbGVuKHhfZmllbGRzKSIgIjIiICJudW1iZXIgZm9yIGZpZWxkcyBpbiB1 IgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCB4XFt4X2ZpZWxkc1xbMFxdXF1c Wyd4J1xdIiAiMTAxIiAieC54IHZpYSBmaWVsZCIKK2dkYl90ZXN0ICJweXRo b24gcHJpbnQgeFxbeF9maWVsZHNcWzFcXVxdXFsnYSdcXSIgIjEwMiIgIngu YSB2aWEgZmllbGQiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IHhfcHRyXFt4 X2ZpZWxkc1xbMFxdXF1cWyd4J1xdIiAiMTAxIiAieF9wdHItPnggdmlhIGZp ZWxkIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCB4X3B0clxbeF9maWVsZHNc WzFcXVxdXFsnYSdcXSIgIjEwMiIgInhfcHRyLT5hIHZpYSBmaWVsZCIKK2dk Yl90ZXN0ICJweXRob24gcHJpbnQgeHRkXFt4X2ZpZWxkc1xbMFxdXF1cWyd4 J1xdIiAiMTAxIiAieHRkLT54IHZpYSBmaWVsZCIKK2dkYl90ZXN0ICJweXRo b24gcHJpbnQgeHRkXFt4X2ZpZWxkc1xbMVxdXF1cWydhJ1xdIiAiMTAyIiAi eHRkLT5hIHZpYSBmaWVsZCIKKworZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBs ZW4odXVfZmllbGRzKSIgIjIiICJudW1iZXIgb2YgZmllbGRzIGluIHV1Igor Z2RiX3Rlc3QgInB5dGhvbiBwcmludCB1dVxbdXVfZmllbGRzXFswXF1cXVxb J3gnXF0iICIxMDAwIiAidXUueCB2aWEgZmllbGQiCitnZGJfdGVzdCAicHl0 aG9uIHByaW50IHV1XFt1dV9maWVsZHNcWzFcXVxdXFsnYSdcXSIgIjEwMDAi ICJ1dS5hIHZpYSBmaWVsZCIKZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBi L2dkYi92YWxvcHMuYwppbmRleCBmZGFlM2FkLi4yYjYwNGI5IDEwMDY0NAot LS0gYS9nZGIvdmFsb3BzLmMKKysrIGIvZ2RiL3ZhbG9wcy5jCkBAIC0yMjQ4 LDYgKzIyNDgsNTEgQEAgdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVl ICoqYXJncCwgc3RydWN0IHZhbHVlICoqYXJncywKICAgcmV0dXJuIHY7CiB9 CiAKKy8qIEdpdmVuICpBUkdQLCBhIHZhbHVlIG9mIHR5cGUgc3RydWN0dXJl IG9yIHVuaW9uLCBvciBhIHBvaW50ZXIvcmVmZXJlbmNlCisgICB0byBhIHN0 cnVjdHVyZSBvciB1bmlvbiwgZXh0cmFjdCBhbmQgcmV0dXJuIGl0cyBjb21w b25lbnQgKGZpZWxkKSBvZgorICAgdHlwZSBGVFlQRSBhdCB0aGUgc3BlY2lm aWVkIEJJVFBPUy4KKyAgIFRocm93IGFuIGV4Y2VwdGlvbiBvbiBlcnJvci4g ICovCisKK3N0cnVjdCB2YWx1ZSAqCit2YWx1ZV9zdHJ1Y3RfZWx0X2JpdHBv cyAoc3RydWN0IHZhbHVlICoqYXJncCwgaW50IGJpdHBvcywgc3RydWN0IHR5 cGUgKmZ0eXBlLAorCQkJIGNvbnN0IGNoYXIgKmVycikKK3sKKyAgc3RydWN0 IHR5cGUgKnQ7CisgIHN0cnVjdCB2YWx1ZSAqdjsKKyAgaW50IGk7CisgIGlu dCBuYmFzZXM7CisKKyAgKmFyZ3AgPSBjb2VyY2VfYXJyYXkgKCphcmdwKTsK KworICB0ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoKmFyZ3ApKTsK KworICB3aGlsZSAoVFlQRV9DT0RFICh0KSA9PSBUWVBFX0NPREVfUFRSIHx8 IFRZUEVfQ09ERSAodCkgPT0gVFlQRV9DT0RFX1JFRikKKyAgICB7CisgICAg ICAqYXJncCA9IHZhbHVlX2luZCAoKmFyZ3ApOworICAgICAgaWYgKFRZUEVf Q09ERSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoKmFyZ3ApKSkgIT0g VFlQRV9DT0RFX0ZVTkMpCisJKmFyZ3AgPSBjb2VyY2VfYXJyYXkgKCphcmdw KTsKKyAgICAgIHQgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqYXJn cCkpOworICAgIH0KKworICBpZiAoVFlQRV9DT0RFICh0KSAhPSBUWVBFX0NP REVfU1RSVUNUCisgICAgICAmJiBUWVBFX0NPREUgKHQpICE9IFRZUEVfQ09E RV9VTklPTikKKyAgICBlcnJvciAoXygiQXR0ZW1wdCB0byBleHRyYWN0IGEg Y29tcG9uZW50IG9mIGEgdmFsdWUgdGhhdCBpcyBub3QgYSAlcy4iKSwKKwkg ICBlcnIpOworCisgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCk7 IGkgPCBUWVBFX05GSUVMRFMgKHQpOyBpKyspCisgICAgeworICAgICAgaWYg KCFmaWVsZF9pc19zdGF0aWMgKCZUWVBFX0ZJRUxEICh0LCBpKSkKKwkgICYm IGJpdHBvcyA9PSBUWVBFX0ZJRUxEX0JJVFBPUyAodCwgaSkKKwkgICYmIHR5 cGVzX2VxdWFsIChmdHlwZSwgVFlQRV9GSUVMRF9UWVBFICh0LCBpKSkpCisJ cmV0dXJuIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoKmFyZ3AsIDAsIGksIHQp OworICAgIH0KKworICBlcnJvciAoXygiTm8gZmllbGQgd2l0aCBtYXRjaGlu ZyBiaXRwb3MgYW5kIHR5cGUuIikpOworCisgIC8qIE5ldmVyIGhpdC4gICov CisgIHJldHVybiBOVUxMOworfQorCiAvKiBTZWFyY2ggdGhyb3VnaCB0aGUg bWV0aG9kcyBvZiBhbiBvYmplY3QgKGFuZCBpdHMgYmFzZXMpIHRvIGZpbmQg YQogICAgc3BlY2lmaWVkIG1ldGhvZC4gIFJldHVybiB0aGUgcG9pbnRlciB0 byB0aGUgZm5fZmllbGQgbGlzdCBvZgogICAgb3ZlcmxvYWRlZCBpbnN0YW5j ZXMuCmRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCmlu ZGV4IDU5MjRiMmYuLmY4NDY2NjkgMTAwNjQ0Ci0tLSBhL2dkYi92YWx1ZS5o CisrKyBiL2dkYi92YWx1ZS5oCkBAIC02NzAsNiArNjcwLDExIEBAIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1 ZSAqKmFyZ3AsCiAJCQkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCAq c3RhdGljX21lbWZ1bmNwLAogCQkJCSAgICAgICBjb25zdCBjaGFyICplcnIp OwogCitleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zdHJ1Y3RfZWx0X2Jp dHBvcyAoc3RydWN0IHZhbHVlICoqYXJncCwKKwkJCQkJICAgICAgaW50IGJp dHBvcywKKwkJCQkJICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUsCisJ CQkJCSAgICAgIGNvbnN0IGNoYXIgKmVycik7CisKIGV4dGVybiBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX2FnZ3JlZ2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0 eXBlLAogCQkJCQkgIGNoYXIgKm5hbWUsCiAJCQkJCSAgc3RydWN0IHR5cGUg KmV4cGVjdF90eXBlLAo= --001a11c36b165a4f9604ef6230c0--