Return-Path: MIME-Version: 1.0 In-Reply-To: <2d5a2c101002160758k131bd0f1y3477958780d11a02@mail.gmail.com> References: <2d5a2c101002160659j1fd3fff8hc5418ddb7481b25d@mail.gmail.com> <2d5a2c101002160715l7f9a2f07y4a40b19e31fa98b3@mail.gmail.com> <1266334628.8849.5.camel@localhost.localdomain> <2d5a2c101002160758k131bd0f1y3477958780d11a02@mail.gmail.com> Date: Tue, 16 Feb 2010 18:25:36 +0200 Message-ID: <2d5a2c101002160825m52149001if819e4dfb34faeaf@mail.gmail.com> Subject: Re: [PATCH] Fix signal watch when a service name is given From: Luiz Augusto von Dentz To: Marcel Holtmann Cc: linux-bluetooth@vger.kernel.org Content-Type: multipart/mixed; boundary=0016e65b40e20e5a71047fba2ff9 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --0016e65b40e20e5a71047fba2ff9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, On Tue, Feb 16, 2010 at 5:58 PM, Luiz Augusto von Dentz wrote: > Hi Marcel, > > On Tue, Feb 16, 2010 at 5:37 PM, Marcel Holtmann wr= ote: >> Hi Luiz, >> >>> > This should fix g_dbus_add_signal_watch when a service like org.bluez= is given. >>> >>> >>> Updating since the last one was broken. >> >> I also think that in check_service() we actually have a missing call to >> dbus_pending_unref(). That would cause a memory leak. > > There is a call to =A0dbus_pending_call_unref on check_service after > dbus_pending_call_set_notify, which I took a look and seems correct > but we have another problem there since we never cancel the pending > call if the filter is unregister. Anyway there is a leak on > service_reply where I don't call dbus_message_unref, so I will come up > with another update soon. Now with the memory leaks fixed. --=20 Luiz Augusto von Dentz Computer Engineer --0016e65b40e20e5a71047fba2ff9 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Fix-signal-watch-when-a-service-name-is-given.patch" Content-Disposition: attachment; filename="0001-Fix-signal-watch-when-a-service-name-is-given.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g5qwnz470 RnJvbSBhZTU3YjQ0ZmUxYWEwMjAzNzk3ZDA4MzhjMjdhOTFmZWYyNGZhODNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEF1Z3VzdG8gVm9uIERlbnR6IDxsdWl6LmRlbnR6LXZv bkBub2tpYS5jb20+CkRhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTg6MjA6MjIgKzAyMDAKU3ViamVj dDogW1BBVENIXSBGaXggc2lnbmFsIHdhdGNoIHdoZW4gYSBzZXJ2aWNlIG5hbWUgaXMgZ2l2ZW4K ClRoZSBidXMgbmFtZSBzaG91bGQgYmUgcmVzb2x2ZWQgd2hlbiBhZGRpbmcgYSB3YXRjaCBieSBz ZXJ2aWNlIG5hbWUgc2luY2UKbWVzc2FnZXMgZG8gYWx3YXlzIGNvbWUgd2l0aCBzZW5kZXIgc2V0 IHRvIG93bmVyJ3MgYnVzIG5hbWUsIGFsc28gaXQKc2hvdWxkIGxpc3RlbiB0byBvd25lciB1cGRh dGVzIHNpbmNlIGl0IGNhbiBjaGFuZ2Ugd2l0aG91dCBpbnZhbGlkYXRpbmcKdGhlIHdhdGNoLgot LS0KIGdkYnVzL3dhdGNoLmMgfCAgMTM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9u cygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RidXMvd2F0Y2guYyBiL2dkYnVz L3dhdGNoLmMKaW5kZXggMWQ0NzlmYS4uZmFlNTNlNiAxMDA2NDQKLS0tIGEvZ2RidXMvd2F0Y2gu YworKysgYi9nZGJ1cy93YXRjaC5jCkBAIC01NSwxOSArNTUsMjIgQEAgc3RydWN0IGZpbHRlcl9j YWxsYmFjayB7CiBzdHJ1Y3QgZmlsdGVyX2RhdGEgewogCURCdXNDb25uZWN0aW9uICpjb25uZWN0 aW9uOwogCURCdXNIYW5kbGVNZXNzYWdlRnVuY3Rpb24gaGFuZGxlX2Z1bmM7Ci0JY2hhciAqc2Vu ZGVyOworCWNoYXIgKm5hbWU7CisJY2hhciAqb3duZXI7CiAJY2hhciAqcGF0aDsKIAljaGFyICpp bnRlcmZhY2U7CiAJY2hhciAqbWVtYmVyOwogCWNoYXIgKmFyZ3VtZW50OwogCUdTTGlzdCAqY2Fs bGJhY2tzOwogCUdTTGlzdCAqcHJvY2Vzc2VkOworCWd1aW50IG5hbWVfd2F0Y2g7CiAJZ2Jvb2xl YW4gbG9jazsKIAlnYm9vbGVhbiByZWdpc3RlcmVkOwogfTsKIAogc3RhdGljIHN0cnVjdCBmaWx0 ZXJfZGF0YSAqZmlsdGVyX2RhdGFfZmluZChEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKLQkJ CQkJCQljb25zdCBjaGFyICpzZW5kZXIsCisJCQkJCQkJY29uc3QgY2hhciAqbmFtZSwKKwkJCQkJ CQljb25zdCBjaGFyICpvd25lciwKIAkJCQkJCQljb25zdCBjaGFyICpwYXRoLAogCQkJCQkJCWNv bnN0IGNoYXIgKmludGVyZmFjZSwKIAkJCQkJCQljb25zdCBjaGFyICptZW1iZXIsCkBAIC04Miw4 ICs4NSwxMiBAQCBzdGF0aWMgc3RydWN0IGZpbHRlcl9kYXRhICpmaWx0ZXJfZGF0YV9maW5kKERC dXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAogCQlpZiAoY29ubmVjdGlvbiAhPSBkYXRhLT5jb25u ZWN0aW9uKQogCQkJY29udGludWU7CiAKLQkJaWYgKHNlbmRlciAmJiBkYXRhLT5zZW5kZXIgJiYK LQkJCQlnX3N0cl9lcXVhbChzZW5kZXIsIGRhdGEtPnNlbmRlcikgPT0gRkFMU0UpCisJCWlmIChu YW1lICYmIGRhdGEtPm5hbWUgJiYKKwkJCQlnX3N0cl9lcXVhbChuYW1lLCBkYXRhLT5uYW1lKSA9 PSBGQUxTRSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChvd25lciAmJiBkYXRhLT5vd25lciAmJgor CQkJCWdfc3RyX2VxdWFsKG93bmVyLCBkYXRhLT5vd25lcikgPT0gRkFMU0UpCiAJCQljb250aW51 ZTsKIAogCQlpZiAocGF0aCAmJiBkYXRhLT5wYXRoICYmCkBAIC0xMTAsMTMgKzExNywxNSBAQCBz dGF0aWMgc3RydWN0IGZpbHRlcl9kYXRhICpmaWx0ZXJfZGF0YV9maW5kKERCdXNDb25uZWN0aW9u ICpjb25uZWN0aW9uLAogCiBzdGF0aWMgdm9pZCBmb3JtYXRfcnVsZShzdHJ1Y3QgZmlsdGVyX2Rh dGEgKmRhdGEsIGNoYXIgKnJ1bGUsIHNpemVfdCBzaXplKQogeworCWNvbnN0IGNoYXIgKnNlbmRl cjsKIAlpbnQgb2Zmc2V0OwogCiAJb2Zmc2V0ID0gc25wcmludGYocnVsZSwgc2l6ZSwgInR5cGU9 J3NpZ25hbCciKTsKKwlzZW5kZXIgPSBkYXRhLT5uYW1lID8gOiBkYXRhLT5vd25lcjsKIAotCWlm IChkYXRhLT5zZW5kZXIpCisJaWYgKHNlbmRlcikKIAkJb2Zmc2V0ICs9IHNucHJpbnRmKHJ1bGUg KyBvZmZzZXQsIHNpemUgLSBvZmZzZXQsCi0JCQkJIixzZW5kZXI9JyVzJyIsIGRhdGEtPnNlbmRl cik7CisJCQkJIixzZW5kZXI9JyVzJyIsIHNlbmRlcik7CiAJaWYgKGRhdGEtPnBhdGgpCiAJCW9m ZnNldCArPSBzbnByaW50ZihydWxlICsgb2Zmc2V0LCBzaXplIC0gb2Zmc2V0LAogCQkJCSIscGF0 aD0nJXMnIiwgZGF0YS0+cGF0aCk7CkBAIC0xODMsOCArMTkyLDEwIEBAIHN0YXRpYyBzdHJ1Y3Qg ZmlsdGVyX2RhdGEgKmZpbHRlcl9kYXRhX2dldChEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwK IAkJCQkJY29uc3QgY2hhciAqYXJndW1lbnQpCiB7CiAJc3RydWN0IGZpbHRlcl9kYXRhICpkYXRh OworCWNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLCAqb3duZXIgPSBOVUxMOwogCi0JaWYgKCFmaWx0 ZXJfZGF0YV9maW5kKGNvbm5lY3Rpb24sIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpKSB7 CisJaWYgKCFmaWx0ZXJfZGF0YV9maW5kKGNvbm5lY3Rpb24sIE5VTEwsIE5VTEwsIE5VTEwsIE5V TEwsIE5VTEwsCisJCQkJTlVMTCkpIHsKIAkJaWYgKCFkYnVzX2Nvbm5lY3Rpb25fYWRkX2ZpbHRl cihjb25uZWN0aW9uLAogCQkJCQltZXNzYWdlX2ZpbHRlciwgTlVMTCwgTlVMTCkpIHsKIAkJCWVy cm9yKCJkYnVzX2Nvbm5lY3Rpb25fYWRkX2ZpbHRlcigpIGZhaWxlZCIpOwpAQCAtMTkyLDE1ICsy MDMsMjUgQEAgc3RhdGljIHN0cnVjdCBmaWx0ZXJfZGF0YSAqZmlsdGVyX2RhdGFfZ2V0KERCdXND b25uZWN0aW9uICpjb25uZWN0aW9uLAogCQl9CiAJfQogCi0JZGF0YSA9IGZpbHRlcl9kYXRhX2Zp bmQoY29ubmVjdGlvbiwgc2VuZGVyLCBwYXRoLCBpbnRlcmZhY2UsIG1lbWJlciwKLQkJCQkJYXJn dW1lbnQpOworCWlmIChzZW5kZXIgPT0gTlVMTCkKKwkJZ290byBwcm9jZWVkOworCisJaWYgKHNl bmRlclswXSA9PSAnOicpCisJCW93bmVyID0gc2VuZGVyOworCWVsc2UKKwkJbmFtZSA9IHNlbmRl cjsKKworcHJvY2VlZDoKKwlkYXRhID0gZmlsdGVyX2RhdGFfZmluZChjb25uZWN0aW9uLCBuYW1l LCBvd25lciwgcGF0aCwgaW50ZXJmYWNlLAorCQkJCQltZW1iZXIsIGFyZ3VtZW50KTsKIAlpZiAo ZGF0YSkKIAkJcmV0dXJuIGRhdGE7CiAKIAlkYXRhID0gZ19uZXcwKHN0cnVjdCBmaWx0ZXJfZGF0 YSwgMSk7CiAKIAlkYXRhLT5jb25uZWN0aW9uID0gZGJ1c19jb25uZWN0aW9uX3JlZihjb25uZWN0 aW9uKTsKLQlkYXRhLT5zZW5kZXIgPSBnX3N0cmR1cChzZW5kZXIpOworCWRhdGEtPm5hbWUgPSBu YW1lID8gZ19zdHJkdXAobmFtZSkgOiBOVUxMOworCWRhdGEtPm93bmVyID0gb3duZXIgPyBnX3N0 cmR1cChvd25lcikgOiBOVUxMOwogCWRhdGEtPnBhdGggPSBnX3N0cmR1cChwYXRoKTsKIAlkYXRh LT5pbnRlcmZhY2UgPSBnX3N0cmR1cChpbnRlcmZhY2UpOwogCWRhdGEtPm1lbWJlciA9IGdfc3Ry ZHVwKG1lbWJlcik7CkBAIC0yNDQsNyArMjY1LDkgQEAgc3RhdGljIHZvaWQgZmlsdGVyX2RhdGFf ZnJlZShzdHJ1Y3QgZmlsdGVyX2RhdGEgKmRhdGEpCiAJCWdfZnJlZShsLT5kYXRhKTsKIAogCWdf c2xpc3RfZnJlZShkYXRhLT5jYWxsYmFja3MpOwotCWdfZnJlZShkYXRhLT5zZW5kZXIpOworCWdf ZGJ1c19yZW1vdmVfd2F0Y2goZGF0YS0+Y29ubmVjdGlvbiwgZGF0YS0+bmFtZV93YXRjaCk7CisJ Z19mcmVlKGRhdGEtPm5hbWUpOworCWdfZnJlZShkYXRhLT5vd25lcik7CiAJZ19mcmVlKGRhdGEt PnBhdGgpOwogCWdfZnJlZShkYXRhLT5pbnRlcmZhY2UpOwogCWdfZnJlZShkYXRhLT5tZW1iZXIp OwpAQCAtMzIyLDcgKzM0NSw4IEBAIHN0YXRpYyBnYm9vbGVhbiBmaWx0ZXJfZGF0YV9yZW1vdmVf Y2FsbGJhY2soc3RydWN0IGZpbHRlcl9kYXRhICpkYXRhLAogCWZpbHRlcl9kYXRhX2ZyZWUoZGF0 YSk7CiAKIAkvKiBSZW1vdmUgZmlsdGVyIGlmIHRoZXJlIGFyZSBubyBsaXN0ZW5lcnMgbGVmdCBm b3IgdGhlIGNvbm5lY3Rpb24gKi8KLQlkYXRhID0gZmlsdGVyX2RhdGFfZmluZChjb25uZWN0aW9u LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwlkYXRhID0gZmlsdGVyX2RhdGFfZmlu ZChjb25uZWN0aW9uLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLAorCQkJCQlOVUxMKTsK IAlpZiAoIWRhdGEpCiAJCWRidXNfY29ubmVjdGlvbl9yZW1vdmVfZmlsdGVyKGNvbm5lY3Rpb24s IG1lc3NhZ2VfZmlsdGVyLAogCQkJCQkJTlVMTCk7CkBAIC0zNTksNiArMzgzLDM3IEBAIHN0YXRp YyBEQnVzSGFuZGxlclJlc3VsdCBzaWduYWxfZmlsdGVyKERCdXNDb25uZWN0aW9uICpjb25uZWN0 aW9uLAogCXJldHVybiBEQlVTX0hBTkRMRVJfUkVTVUxUX05PVF9ZRVRfSEFORExFRDsKIH0KIAor c3RhdGljIHZvaWQgdXBkYXRlX25hbWVfY2FjaGUoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqb3duZXIpCit7CisJR1NMaXN0ICpsOworCisJZm9yIChsID0gbGlzdGVuZXJzOyBsICE9IE5V TEw7IGwgPSBsLT5uZXh0KSB7CisJCXN0cnVjdCBmaWx0ZXJfZGF0YSAqZGF0YSA9IGwtPmRhdGE7 CisKKwkJaWYgKGdfc3RyY21wMChkYXRhLT5uYW1lLCBuYW1lKSAhPSAwKQorCQkJY29udGludWU7 CisKKwkJZ19mcmVlKGRhdGEtPm93bmVyKTsKKwkJZGF0YS0+b3duZXIgPSBnX3N0cmR1cChvd25l cik7CisJfQorfQorCitzdGF0aWMgY29uc3QgY2hhciAqY2hlY2tfbmFtZV9jYWNoZShjb25zdCBj aGFyICpuYW1lKQoreworCUdTTGlzdCAqbDsKKworCWZvciAobCA9IGxpc3RlbmVyczsgbCAhPSBO VUxMOyBsID0gbC0+bmV4dCkgeworCQlzdHJ1Y3QgZmlsdGVyX2RhdGEgKmRhdGEgPSBsLT5kYXRh OworCisJCWlmIChnX3N0cmNtcDAoZGF0YS0+bmFtZSwgbmFtZSkgIT0gMCkKKwkJCWNvbnRpbnVl OworCisJCXJldHVybiBkYXRhLT5vd25lcjsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKwogc3Rh dGljIERCdXNIYW5kbGVyUmVzdWx0IHNlcnZpY2VfZmlsdGVyKERCdXNDb25uZWN0aW9uICpjb25u ZWN0aW9uLAogCQkJCQlEQnVzTWVzc2FnZSAqbWVzc2FnZSwgdm9pZCAqdXNlcl9kYXRhKQogewpA QCAtMzc1LDYgKzQzMCw4IEBAIHN0YXRpYyBEQnVzSGFuZGxlclJlc3VsdCBzZXJ2aWNlX2ZpbHRl cihEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKIAkJcmV0dXJuIERCVVNfSEFORExFUl9SRVNV TFRfTk9UX1lFVF9IQU5ETEVEOwogCX0KIAorCXVwZGF0ZV9uYW1lX2NhY2hlKG5hbWUsIG5ldyk7 CisKIAl3aGlsZSAoZGF0YS0+Y2FsbGJhY2tzKSB7CiAJCWNiID0gZGF0YS0+Y2FsbGJhY2tzLT5k YXRhOwogCkBAIC00MjEsNyArNDc4LDkgQEAgc3RhdGljIERCdXNIYW5kbGVyUmVzdWx0IG1lc3Nh Z2VfZmlsdGVyKERCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAogCW1lbWJlciA9IGRidXNfbWVz c2FnZV9nZXRfbWVtYmVyKG1lc3NhZ2UpOwogCWRidXNfbWVzc2FnZV9nZXRfYXJncyhtZXNzYWdl LCBOVUxMLCBEQlVTX1RZUEVfU1RSSU5HLCAmYXJnLCBEQlVTX1RZUEVfSU5WQUxJRCk7CiAKLQlk YXRhID0gZmlsdGVyX2RhdGFfZmluZChjb25uZWN0aW9uLCBzZW5kZXIsIHBhdGgsIGlmYWNlLCBt ZW1iZXIsIGFyZyk7CisJLyogU2VuZGVyIGlzIGFsd2F5cyBidXMgbmFtZSAqLworCWRhdGEgPSBm aWx0ZXJfZGF0YV9maW5kKGNvbm5lY3Rpb24sIE5VTEwsIHNlbmRlciwgcGF0aCwgaWZhY2UsIG1l bWJlciwKKwkJCQkJYXJnKTsKIAlpZiAoIWRhdGEpIHsKIAkJZXJyb3IoIkdvdCAlcy4lcyBzaWdu YWwgd2hpY2ggaGFzIG5vIGxpc3RlbmVycyIsIGlmYWNlLCBtZW1iZXIpOwogCQlyZXR1cm4gREJV U19IQU5ETEVSX1JFU1VMVF9OT1RfWUVUX0hBTkRMRUQ7CkBAIC00NDYsNyArNTA1LDggQEAgc3Rh dGljIERCdXNIYW5kbGVyUmVzdWx0IG1lc3NhZ2VfZmlsdGVyKERCdXNDb25uZWN0aW9uICpjb25u ZWN0aW9uLAogCWZpbHRlcl9kYXRhX2ZyZWUoZGF0YSk7CiAKIAkvKiBSZW1vdmUgZmlsdGVyIGlm IHRoZXJlIG5vIGxpc3RlbmVyIGxlZnQgZm9yIHRoZSBjb25uZWN0aW9uICovCi0JZGF0YSA9IGZp bHRlcl9kYXRhX2ZpbmQoY29ubmVjdGlvbiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7 CisJZGF0YSA9IGZpbHRlcl9kYXRhX2ZpbmQoY29ubmVjdGlvbiwgTlVMTCwgTlVMTCwgTlVMTCwg TlVMTCwgTlVMTCwKKwkJCQkJTlVMTCk7CiAJaWYgKCFkYXRhKQogCQlkYnVzX2Nvbm5lY3Rpb25f cmVtb3ZlX2ZpbHRlcihjb25uZWN0aW9uLCBtZXNzYWdlX2ZpbHRlciwKIAkJCQkJCU5VTEwpOwpA QCAtNDU2LDE2ICs1MTYsMzcgQEAgc3RhdGljIERCdXNIYW5kbGVyUmVzdWx0IG1lc3NhZ2VfZmls dGVyKERCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAogCiBzdHJ1Y3Qgc2VydmljZV9kYXRhIHsK IAlEQnVzQ29ubmVjdGlvbiAqY29ubjsKKwljaGFyICpuYW1lOworCWNvbnN0IGNoYXIgKm93bmVy OwogCUdEQnVzV2F0Y2hGdW5jdGlvbiBjb25uX2Z1bmM7CiAJdm9pZCAqdXNlcl9kYXRhOwogfTsK IAorc3RhdGljIHZvaWQgc2VydmljZV9kYXRhX2ZyZWUoc3RydWN0IHNlcnZpY2VfZGF0YSAqZGF0 YSkKK3sKKwlkYnVzX2Nvbm5lY3Rpb25fdW5yZWYoZGF0YS0+Y29ubik7CisJZ19mcmVlKGRhdGEt Pm5hbWUpOworCWdfZnJlZShkYXRhKTsKK30KKworc3RhdGljIGdib29sZWFuIHVwZGF0ZV9zZXJ2 aWNlKHZvaWQgKnVzZXJfZGF0YSkKK3sKKwlzdHJ1Y3Qgc2VydmljZV9kYXRhICpkYXRhID0gdXNl cl9kYXRhOworCisJdXBkYXRlX25hbWVfY2FjaGUoZGF0YS0+bmFtZSwgZGF0YS0+b3duZXIpOwor CWlmIChkYXRhLT5jb25uX2Z1bmMpCisJCWRhdGEtPmNvbm5fZnVuYyhkYXRhLT5jb25uLCBkYXRh LT51c2VyX2RhdGEpOworCisJc2VydmljZV9kYXRhX2ZyZWUoZGF0YSk7CisKKwlyZXR1cm4gRkFM U0U7Cit9CisKIHN0YXRpYyB2b2lkIHNlcnZpY2VfcmVwbHkoREJ1c1BlbmRpbmdDYWxsICpjYWxs LCB2b2lkICp1c2VyX2RhdGEpCiB7CiAJc3RydWN0IHNlcnZpY2VfZGF0YSAqZGF0YSA9IHVzZXJf ZGF0YTsKIAlEQnVzTWVzc2FnZSAqcmVwbHk7CiAJREJ1c0Vycm9yIGVycm9yOwotCWRidXNfYm9v bF90IGhhc19vd25lcjsKIAogCXJlcGx5ID0gZGJ1c19wZW5kaW5nX2NhbGxfc3RlYWxfcmVwbHko Y2FsbCk7CiAJaWYgKHJlcGx5ID09IE5VTEwpCkBAIC00NzQsMTkgKzU1NSwxOSBAQCBzdGF0aWMg dm9pZCBzZXJ2aWNlX3JlcGx5KERCdXNQZW5kaW5nQ2FsbCAqY2FsbCwgdm9pZCAqdXNlcl9kYXRh KQogCWRidXNfZXJyb3JfaW5pdCgmZXJyb3IpOwogCiAJaWYgKGRidXNfbWVzc2FnZV9nZXRfYXJn cyhyZXBseSwgJmVycm9yLAotCQkJCQlEQlVTX1RZUEVfQk9PTEVBTiwgJmhhc19vd25lciwKKwkJ CQkJREJVU19UWVBFX1NUUklORywgJmRhdGEtPm93bmVyLAogCQkJCQkJREJVU19UWVBFX0lOVkFM SUQpID09IEZBTFNFKSB7CiAJCWlmIChkYnVzX2Vycm9yX2lzX3NldCgmZXJyb3IpID09IFRSVUUp IHsKIAkJCWVycm9yKCIlcyIsIGVycm9yLm1lc3NhZ2UpOwogCQkJZGJ1c19lcnJvcl9mcmVlKCZl cnJvcik7CiAJCX0gZWxzZSB7Ci0JCQllcnJvcigiV3JvbmcgYXJndW1lbnRzIGZvciBOYW1lSGFz T3duZXIgcmVwbHkiKTsKKwkJCWVycm9yKCJXcm9uZyBhcmd1bWVudHMgZm9yIEdldE5hbWVPd25l ciByZXBseSIpOwogCQl9CisJCXNlcnZpY2VfZGF0YV9mcmVlKGRhdGEpOwogCQlnb3RvIGRvbmU7 CiAJfQogCi0JaWYgKGhhc19vd25lciAmJiBkYXRhLT5jb25uX2Z1bmMpCi0JCWRhdGEtPmNvbm5f ZnVuYyhkYXRhLT5jb25uLCBkYXRhLT51c2VyX2RhdGEpOworCXVwZGF0ZV9zZXJ2aWNlKGRhdGEp OwogCiBkb25lOgogCWRidXNfbWVzc2FnZV91bnJlZihyZXBseSk7CkBAIC01MDUsMTIgKzU4Niwx OSBAQCBzdGF0aWMgdm9pZCBjaGVja19zZXJ2aWNlKERCdXNDb25uZWN0aW9uICpjb25uZWN0aW9u LCBjb25zdCBjaGFyICpuYW1lLAogCQlyZXR1cm47CiAJfQogCi0JZGF0YS0+Y29ubiA9IGNvbm5l Y3Rpb247CisJZGF0YS0+Y29ubiA9IGRidXNfY29ubmVjdGlvbl9yZWYoY29ubmVjdGlvbik7CisJ ZGF0YS0+bmFtZSA9IGdfc3RyZHVwKG5hbWUpOwogCWRhdGEtPmNvbm5fZnVuYyA9IGNvbm5lY3Q7 CiAJZGF0YS0+dXNlcl9kYXRhID0gdXNlcl9kYXRhOwogCisJZGF0YS0+b3duZXIgPSBjaGVja19u YW1lX2NhY2hlKG5hbWUpOworCWlmIChkYXRhLT5vd25lciAhPSBOVUxMKSB7CisJCWdfaWRsZV9h ZGQodXBkYXRlX3NlcnZpY2UsIGRhdGEpOworCQlyZXR1cm47CisJfQorCiAJbWVzc2FnZSA9IGRi dXNfbWVzc2FnZV9uZXdfbWV0aG9kX2NhbGwoREJVU19TRVJWSUNFX0RCVVMsCi0JCQlEQlVTX1BB VEhfREJVUywgREJVU19JTlRFUkZBQ0VfREJVUywgIk5hbWVIYXNPd25lciIpOworCQkJREJVU19Q QVRIX0RCVVMsIERCVVNfSU5URVJGQUNFX0RCVVMsICJHZXROYW1lT3duZXIiKTsKIAlpZiAobWVz c2FnZSA9PSBOVUxMKSB7CiAJCWVycm9yKCJDYW4ndCBhbGxvY2F0ZSBuZXcgbWVzc2FnZSIpOwog CQlnX2ZyZWUoZGF0YSk7CkBAIC01OTYsNiArNjg0LDExIEBAIGd1aW50IGdfZGJ1c19hZGRfc2ln bmFsX3dhdGNoKERCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAogCWlmICghY2IpCiAJCXJldHVy biAwOwogCisJaWYgKGRhdGEtPm5hbWUgIT0gTlVMTCAmJiBkYXRhLT5uYW1lX3dhdGNoID09IDAp CisJCWRhdGEtPm5hbWVfd2F0Y2ggPSBnX2RidXNfYWRkX3NlcnZpY2Vfd2F0Y2goY29ubmVjdGlv biwKKwkJCQkJCQlkYXRhLT5uYW1lLCBOVUxMLAorCQkJCQkJCU5VTEwsIE5VTEwsIE5VTEwpOwor CiAJcmV0dXJuIGNiLT5pZDsKIH0KIApAQCAtNjI1LDcgKzcxOCw4IEBAIHZvaWQgZ19kYnVzX3Jl bW92ZV9hbGxfd2F0Y2hlcyhEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbikKIHsKIAlzdHJ1Y3Qg ZmlsdGVyX2RhdGEgKmRhdGE7CiAKLQl3aGlsZSAoKGRhdGEgPSBmaWx0ZXJfZGF0YV9maW5kKGNv bm5lY3Rpb24sIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpKSkgeworCXdoaWxlICgoZGF0 YSA9IGZpbHRlcl9kYXRhX2ZpbmQoY29ubmVjdGlvbiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwK KwkJCQkJTlVMTCwgTlVMTCkpKSB7CiAJCWxpc3RlbmVycyA9IGdfc2xpc3RfcmVtb3ZlKGxpc3Rl bmVycywgZGF0YSk7CiAJCWZpbHRlcl9kYXRhX2NhbGxfYW5kX2ZyZWUoZGF0YSk7CiAJfQotLSAK MS42LjMuMwoK --0016e65b40e20e5a71047fba2ff9--