--0016e6d7f07a144400047ae01ad4 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Here are the updated patches with a new email address and more verbose commit messages. On Wed, Dec 16, 2009 at 3:05 PM, Andrew Bartlett wrote= : > On Tue, 2009-12-15 at 10:14 -0500, brendan powers wrote: >> On Tue, Dec 15, 2009 at 12:23 AM, Andrew Bartlett w= rote: >> > On Mon, 2009-12-14 at 21:16 -0500, brendan powers wrote: >> >> These patches fix the handling of AUX classes in objectclass.c. Befor= e >> >> this, adding an AUX class such as posixAccount to a user would fail >> >> with LDB_ERR_OBJECT_CLASS_VIOLATION. >> > >> > Great. >> > >> >> Here is a description of the patches >> > >> > Can you please put these in the commit message for each patch? =A0We w= ant >> > to remember why these were done in the GIT history. >> >> Sure >> >> >> * 0001-return-NULL-in-strlower_talloc-if-src-is-NULL.patch, prevents >> >> strlower_talloc from segfaulting if you pass it a NULL string. >> >> * 0002-s4-dsdb-Add-a-check-to-prevent-acl_modify-from-debu.patch, >> >> Check to see if there were any messages passed to acl_modify before >> >> debugging the first one. I think I caused this by some malformed >> >> ldiff. Unfortunately, I don't have the file that caused the problem. >> >> * 0003-s4-dsdb-Move-get_last_structural-class-from-descrip.patch, Mov= e >> >> get_last_structural_class from descriptor.c to util.c so it can be >> >> used by objectclass.c. Also, make get_last_structural_class ignore AU= X >> >> classes, as they are not structural classes. >> >> * 0004-s4-dsdb-return-an-error-if-samAccountName-is-not-sp.patch, >> >> makes sure samAccountName has been specified before adding a user. >> >> This happened while I was trying to add a user with the posixAccount >> >> objectclass. I forgot to specify the user objectClass, and samba >> >> segfaulted. It now returns LDB_ERR_CONSTRAINT_VIOLATION. >> >> * 0005-s4-dsdb-fix-handling-of-AUX-classes-in-objectclass_.patch, thi= s >> >> is the main patch in this set. It fixes the handling of AUX classes i= n >> >> objectclass_sort. They were being sorted by building a class tree, an= d >> >> adding the classes to the list in that order. However, AUX classes >> >> usually don't fit into that tree, so LDB_ERR_OBJECT_CLASS_VIOLATION >> >> was returned. I have changed the behavior to sort the classes by >> >> subClass_order instead. Also this patch makes objectclass_do_add chec= k >> >> if the last structural class is a valid class to add, instead of the >> >> last class returned by objectclass_sort. >> > >> > If it could be made to work, I would really prefer the qsort() variant >> > of this patch. =A0Did you discover anything in the building of this pa= tch >> > to indicate why it didn't work? >> >> The objectclass_sort function often adds important classes to the >> list. One example is the domain class to the base DN during >> provisioning. In doing so it changes the length of the array. So to >> use the qsort function, I would need to allocate a new array, copy the >> objects into it, sort it with qsort, and copy it back out to a linked >> list. For lists usually less than 5 items, I'm not sure its worth it. >> I can certainly do this though, if you want me to. > > Ahh, I didn't realise it did that too. =A0It's been a while since I wrote > this horror - the odd thing is, while believe you, reading the code I > still can't see how it does it! > >> >> * 0006-s4-dsdb-Add-a-test-for-adding-deleting-and-append.patch, add a >> >> test to make sure you can add the posixAccount class to an object. >> >> This was the original reason for this set of patches. >> >> >> >> These patches now pass make test. So I thought it was time to send >> >> them to the list. Hopefully I did things right this time:) >> > >> > Almost :-) >> > >> > Finally, was it deliberate having a different e-mail address in the >> > patches to the mail? =A0(At least it's no longer root!). >> >> That is the address I like to be contacted at, as I check it more >> often. I'l change it to the address I use on this list, as it makes >> more sense. > > Either is fine, I just wanted to check. > > Andrew Bartlett > > -- > Andrew Bartlett =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0http://samba.org/~abartlet/ > Authentication Developer, Samba Team =A0 =A0 =A0 =A0 =A0 http://samba.org > Samba Developer, Cisco Inc. > > --0016e6d7f07a144400047ae01ad4 Content-Type: text/x-diff; charset=US-ASCII; name="0001-return-NULL-in-strlower_talloc-if-src-is-NULL.patch" Content-Disposition: attachment; filename="0001-return-NULL-in-strlower_talloc-if-src-is-NULL.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g3aofi5y1 RnJvbSBmZWJhN2E2OGQ3YTQ2NWNjNzNkNTUwMTNhMDRjMWViMGMxNGJmNTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmVuZGFuIFBvd2VycyA8YnJlbmRhbjBwb3dlcnNAZ21haWwu Y29tPgpEYXRlOiBNb24sIDE0IERlYyAyMDA5IDIwOjI4OjQ4IC0wNTAwClN1YmplY3Q6IFtQQVRD SF0gUmV0dXJuIE5VTEwgaW4gc3RybG93ZXJfdGFsbG9jIGlmIHNyYyBpcyBOVUxMCiBQcmV2ZW50 cyBzdHJsb3dlcl90YWxsb2MgZnJvbSBzZWdmYXVsdGluZyBpZiB5b3UgcGFzcyBpdCBhIE5VTEwg c3RyaW5nLgoKLS0tCiBsaWIvdXRpbC9jaGFyc2V0L3V0aWxfdW5pc3RyLmMgfCAgICA0ICsrKysK IDEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2xpYi91dGlsL2NoYXJzZXQvdXRpbF91bmlzdHIuYyBiL2xpYi91dGlsL2NoYXJzZXQv dXRpbF91bmlzdHIuYwppbmRleCAwNDVhYTRhLi5mODIwNzI2IDEwMDY0NAotLS0gYS9saWIvdXRp bC9jaGFyc2V0L3V0aWxfdW5pc3RyLmMKKysrIGIvbGliL3V0aWwvY2hhcnNldC91dGlsX3VuaXN0 ci5jCkBAIC00MzAsNiArNDMwLDEwIEBAIF9QVUJMSUNfIGNoYXIgKnN0cmxvd2VyX3RhbGxvYyhU QUxMT0NfQ1RYICpjdHgsIGNvbnN0IGNoYXIgKnNyYykKIAljaGFyICpkZXN0OwogCXN0cnVjdCBz bWJfaWNvbnZfY29udmVuaWVuY2UgKmljb252X2NvbnZlbmllbmNlID0gZ2V0X2ljb252X2NvbnZl bmllbmNlKCk7CiAKKwlpZihzcmMgPT0gTlVMTCkgeworCQlyZXR1cm4gTlVMTDsKKwl9CisKIAkv KiB0aGlzIHRha2VzIGFkdmFudGFnZSBvZiB0aGUgZmFjdCB0aGF0IHVwcGVyL2xvd2VyIGNhbid0 CiAJICAgY2hhbmdlIHRoZSBsZW5ndGggb2YgYSBjaGFyYWN0ZXIgYnkgbW9yZSB0aGFuIDEgYnl0 ZSAqLwogCWRlc3QgPSB0YWxsb2NfYXJyYXkoY3R4LCBjaGFyLCAyKihzdHJsZW4oc3JjKSkrMSk7 Ci0tIAoxLjUuNC4zCgo= --0016e6d7f07a144400047ae01ad4 Content-Type: text/x-diff; charset=US-ASCII; name="0002-s4-dsdb-Add-a-check-to-prevent-acl_modify-from-debu.patch" Content-Disposition: attachment; filename="0002-s4-dsdb-Add-a-check-to-prevent-acl_modify-from-debu.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g3aogd582 RnJvbSAwMTU3MGZmZWYzZjQ3NjkwNTAzNGQ0YTUyOGJjYzZhZDQ0YTJjMTU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmVuZGFuIFBvd2VycyA8YnJlbmRhbjBwb3dlcnNAZ21haWwu Y29tPgpEYXRlOiBNb24sIDE0IERlYyAyMDA5IDIwOjMyOjI4IC0wNTAwClN1YmplY3Q6IFtQQVRD SF0gczQtZHNkYjogQWRkIGEgY2hlY2sgdG8gcHJldmVudCBhY2xfbW9kaWZ5IGZyb20gZGVidWdp bmcgYSBOVUxMIG1lc3NhZ2UKIENoZWNrIHRvIHNlZSBpZiB0aGVyZSB3ZXJlIGFueSBtZXNzYWdl cyBwYXNzZWQgdG8gYWNsX21vZGlmeSBiZWZvcmUgZGVidWdnaW5nIHRoZSBmaXJzdCBvbmUuIEkg dGhpbmsgSSBjYXVzZWQgdGhpcyBieSBzb21lIG1hbGZvcm1lZCBsZGlmZi4KCi0tLQogc291cmNl NC9kc2RiL3NhbWRiL2xkYl9tb2R1bGVzL2FjbC5jIHwgICAgNiArKysrKy0KIDEgZmlsZXMgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NvdXJj ZTQvZHNkYi9zYW1kYi9sZGJfbW9kdWxlcy9hY2wuYyBiL3NvdXJjZTQvZHNkYi9zYW1kYi9sZGJf bW9kdWxlcy9hY2wuYwppbmRleCA0NWFhMjk0Li5mYzI5YmE5IDEwMDY0NAotLS0gYS9zb3VyY2U0 L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvYWNsLmMKKysrIGIvc291cmNlNC9kc2RiL3NhbWRiL2xk Yl9tb2R1bGVzL2FjbC5jCkBAIC03MDAsNyArNzAwLDExIEBAIHN0YXRpYyBpbnQgYWNsX21vZGlm eShzdHJ1Y3QgbGRiX21vZHVsZSAqbW9kdWxlLCBzdHJ1Y3QgbGRiX3JlcXVlc3QgKnJlcSkKIAkJ TlVMTAogCX07CiAKLQlERUJVRygxMCwgKCJsZGI6YWNsX21vZGlmeTogJXNcbiIsIHJlcS0+b3Au bW9kLm1lc3NhZ2UtPmVsZW1lbnRzWzBdLm5hbWUpKTsKKwkvKiBEb24ndCBwcmludCB0aGlzIGRl YnVnIHN0YXRlbWVudCBpZiBlbGVtZW50c1swXS5uYW1lIGlzIGdvaW5nIHRvIGJlIE5VTEwgKi8K KwlpZihyZXEtPm9wLm1vZC5tZXNzYWdlLT5udW1fZWxlbWVudHMgPiAwKQorCXsKKwkJREVCVUco MTAsICgibGRiOmFjbF9tb2RpZnk6ICVzXG4iLCByZXEtPm9wLm1vZC5tZXNzYWdlLT5lbGVtZW50 c1swXS5uYW1lKSk7CisJfQogCWlmICh3aGF0X2lzX3VzZXIobW9kdWxlKSA9PSBTRUNVUklUWV9T WVNURU0pIHsKIAkJcmV0dXJuIGxkYl9uZXh0X3JlcXVlc3QobW9kdWxlLCByZXEpOwogCX0KLS0g CjEuNS40LjMKCg== --0016e6d7f07a144400047ae01ad4 Content-Type: text/x-diff; charset=US-ASCII; name="0003-s4-dsdb-Move-get_last_structural-class-from-descrip.patch" Content-Disposition: attachment; filename="0003-s4-dsdb-Move-get_last_structural-class-from-descrip.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g3aohmlh3 RnJvbSAxN2YxZWZjZmY2MGFhMWVlOWRhYzBlY2FiOTlmM2IzZTQyNDZlY2JjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmVuZGFuIFBvd2VycyA8YnJlbmRhbjBwb3dlcnNAZ21haWwu Y29tPgpEYXRlOiBNb24sIDE0IERlYyAyMDA5IDIwOjM2OjQ0IC0wNTAwClN1YmplY3Q6IFtQQVRD SF0gczQtZHNkYjogTW92ZSBnZXRfbGFzdF9zdHJ1Y3R1cmFsIGNsYXNzIGZyb20gZGVzY3JpcHRv ci5jIHRvIHV0aWwuYyBzbyBpdCBjYW4gYmUgdXNlZCBieSBvYmplY3RjbGFzcy5jCiBzNC1kc2Ri OiBnZXRfbGFzdF9zdHJ1Y3R1cmFsX2NsYXNzIG5vdyBpZ25vcmVzIEFVWCBjbGFzc2VzLCBiZWNh dXNlIHRoZXkgYXJlIG5vdCBzdHJ1Y3R1cmFsCgotLS0KIHNvdXJjZTQvZHNkYi9zYW1kYi9sZGJf bW9kdWxlcy9kZXNjcmlwdG9yLmMgfCAgIDE3ICstLS0tLS0tLS0tLS0tLS0tCiBzb3VyY2U0L2Rz ZGIvc2FtZGIvbGRiX21vZHVsZXMvdXRpbC5jICAgICAgIHwgICAyNyArKysrKysrKysrKysrKysr KysrKysrKysrKysKIHNvdXJjZTQvZHNkYi9zYW1kYi9sZGJfbW9kdWxlcy91dGlsLmggICAgICAg fCAgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc291cmNlNC9kc2RiL3NhbWRiL2xkYl9tb2R1bGVzL2Rlc2NyaXB0 b3IuYyBiL3NvdXJjZTQvZHNkYi9zYW1kYi9sZGJfbW9kdWxlcy9kZXNjcmlwdG9yLmMKaW5kZXgg MDNjYjFmZi4uOGRmOTNkZCAxMDA2NDQKLS0tIGEvc291cmNlNC9kc2RiL3NhbWRiL2xkYl9tb2R1 bGVzL2Rlc2NyaXB0b3IuYworKysgYi9zb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvZGVz Y3JpcHRvci5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAibGliY2xpL3NlY3VyaXR5L3Nl Y3VyaXR5LmgiCiAjaW5jbHVkZSAiYXV0aC9hdXRoLmgiCiAjaW5jbHVkZSAicGFyYW0vcGFyYW0u aCIKKyNpbmNsdWRlICJ1dGlsLmgiCiAKIHN0cnVjdCBkZXNjcmlwdG9yX2RhdGEgewogCWludCBf ZHVtbXk7CkBAIC01NiwyMiArNTcsNiBAQCBzdHJ1Y3QgZGVzY3JpcHRvcl9jb250ZXh0IHsKIAlp bnQgKCpzdGVwX2ZuKShzdHJ1Y3QgZGVzY3JpcHRvcl9jb250ZXh0ICopOwogfTsKIAotc3RhdGlj IGNvbnN0IHN0cnVjdCBkc2RiX2NsYXNzICogZ2V0X2xhc3Rfc3RydWN0dXJhbF9jbGFzcyhjb25z dCBzdHJ1Y3QgZHNkYl9zY2hlbWEgKnNjaGVtYSwgc3RydWN0IGxkYl9tZXNzYWdlX2VsZW1lbnQg KmVsZW1lbnQpCi17Ci0JY29uc3Qgc3RydWN0IGRzZGJfY2xhc3MgKmxhc3RfY2xhc3MgPSBOVUxM OwotCWludCBpOwotCWZvciAoaSA9IDA7IGkgPCBlbGVtZW50LT5udW1fdmFsdWVzOyBpKyspewot CQlpZiAoIWxhc3RfY2xhc3MpIHsKLQkJCWxhc3RfY2xhc3MgPSBkc2RiX2NsYXNzX2J5X2xEQVBE aXNwbGF5TmFtZV9sZGJfdmFsKHNjaGVtYSwgJmVsZW1lbnQtPnZhbHVlc1tpXSk7Ci0JCX0gZWxz ZSB7Ci0JCQljb25zdCBzdHJ1Y3QgZHNkYl9jbGFzcyAqdG1wX2NsYXNzID0gZHNkYl9jbGFzc19i eV9sREFQRGlzcGxheU5hbWVfbGRiX3ZhbChzY2hlbWEsICZlbGVtZW50LT52YWx1ZXNbaV0pOwot CQkJaWYgKHRtcF9jbGFzcy0+c3ViQ2xhc3Nfb3JkZXIgPiBsYXN0X2NsYXNzLT5zdWJDbGFzc19v cmRlcikKLQkJCQlsYXN0X2NsYXNzID0gdG1wX2NsYXNzOwotCQl9Ci0JfQotCXJldHVybiBsYXN0 X2NsYXNzOwotfQotCiBzdHJ1Y3QgZG9tX3NpZCAqZ2V0X2RlZmF1bHRfYWcoVEFMTE9DX0NUWCAq bWVtX2N0eCwKIAkJCSAgICAgICBzdHJ1Y3QgbGRiX2RuICpkbiwKIAkJCSAgICAgICBzdHJ1Y3Qg c2VjdXJpdHlfdG9rZW4gKnRva2VuLApkaWZmIC0tZ2l0IGEvc291cmNlNC9kc2RiL3NhbWRiL2xk Yl9tb2R1bGVzL3V0aWwuYyBiL3NvdXJjZTQvZHNkYi9zYW1kYi9sZGJfbW9kdWxlcy91dGlsLmMK aW5kZXggZmU2ZGRmYS4uZWQ2NWNhNCAxMDA2NDQKLS0tIGEvc291cmNlNC9kc2RiL3NhbWRiL2xk Yl9tb2R1bGVzL3V0aWwuYworKysgYi9zb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvdXRp bC5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAibGRiX21vZHVsZS5oIgogI2luY2x1ZGUg ImRzZGIvc2FtZGIvbGRiX21vZHVsZXMvdXRpbC5oIgogI2luY2x1ZGUgImRzZGIvc2FtZGIvc2Ft ZGIuaCIKKyNpbmNsdWRlICJ1dGlsLmgiCiAKIGludCBkc2RiX21vZHVsZV9zZWFyY2hfaGFuZGxl X2ZsYWdzKHN0cnVjdCBsZGJfbW9kdWxlICptb2R1bGUsIHN0cnVjdCBsZGJfcmVxdWVzdCAqcmVx LCBpbnQgZHNkYl9mbGFncykgCiB7CkBAIC0yMDUsMyArMjA2LDI5IEBAIGludCBkc2RiX21vZHVs ZV9zZWFyY2goc3RydWN0IGxkYl9tb2R1bGUgKm1vZHVsZSwKIAlyZXR1cm4gcmV0OwogfQogCitj b25zdCBzdHJ1Y3QgZHNkYl9jbGFzcyAqIGdldF9sYXN0X3N0cnVjdHVyYWxfY2xhc3MoY29uc3Qg c3RydWN0IGRzZGJfc2NoZW1hICpzY2hlbWEsY29uc3Qgc3RydWN0IGxkYl9tZXNzYWdlX2VsZW1l bnQgKmVsZW1lbnQpCit7CisJY29uc3Qgc3RydWN0IGRzZGJfY2xhc3MgKmxhc3RfY2xhc3MgPSBO VUxMOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGVsZW1lbnQtPm51bV92YWx1ZXM7IGkr Kyl7CisJCWNvbnN0IHN0cnVjdCBkc2RiX2NsYXNzICp0bXBfY2xhc3MgPSBkc2RiX2NsYXNzX2J5 X2xEQVBEaXNwbGF5TmFtZV9sZGJfdmFsKHNjaGVtYSwgJmVsZW1lbnQtPnZhbHVlc1tpXSk7CisK KwkJaWYodG1wX2NsYXNzID09IE5VTEwpIHsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYodG1w X2NsYXNzLT5vYmplY3RDbGFzc0NhdGVnb3J5ID09IDMpIHsKKwkJCWNvbnRpbnVlOworCQl9CisK KwkJaWYgKCFsYXN0X2NsYXNzKSB7CisJCQlsYXN0X2NsYXNzID0gdG1wX2NsYXNzOworCQl9IGVs c2UgeworCQkJaWYgKHRtcF9jbGFzcy0+c3ViQ2xhc3Nfb3JkZXIgPiBsYXN0X2NsYXNzLT5zdWJD bGFzc19vcmRlcikKKwkJCQlsYXN0X2NsYXNzID0gdG1wX2NsYXNzOworCQl9CisJfQorCisJcmV0 dXJuIGxhc3RfY2xhc3M7Cit9CmRpZmYgLS1naXQgYS9zb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21v ZHVsZXMvdXRpbC5oIGIvc291cmNlNC9kc2RiL3NhbWRiL2xkYl9tb2R1bGVzL3V0aWwuaAppbmRl eCA1NmRiMjdkLi40MWVjODczIDEwMDY0NAotLS0gYS9zb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21v ZHVsZXMvdXRpbC5oCisrKyBiL3NvdXJjZTQvZHNkYi9zYW1kYi9sZGJfbW9kdWxlcy91dGlsLmgK QEAgLTE5LDYgKzE5LDcgQEAKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAorc3RydWN0IGRzZGJfc2No ZW1hOyAvKiBwcmVkZWNsYXJlIHNjaGVtYSBzdHJ1Y3QgKi8KICNpbmNsdWRlICJkc2RiL3NhbWRi L2xkYl9tb2R1bGVzL3V0aWxfcHJvdG8uaCIKIAogI2RlZmluZSBEU0RCX1NFQVJDSF9TRUFSQ0hf QUxMX1BBUlRJVElPTlMgICAgIDB4MDAwMQotLSAKMS41LjQuMwoK --0016e6d7f07a144400047ae01ad4 Content-Type: text/x-diff; charset=US-ASCII; name="0004-s4-dsdb-return-an-error-if-samAccountName-is-not-sp.patch" Content-Disposition: attachment; filename="0004-s4-dsdb-return-an-error-if-samAccountName-is-not-sp.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g3aohsd54 RnJvbSA0ZWJiZjZjODljNTM3YTI3NWM4ZDM4N2Y0MDQxMTA5N2QzMTEzMzdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmVuZGFuIFBvd2VycyA8YnJlbmRhbjBwb3dlcnNAZ21haWwu Y29tPgpEYXRlOiBNb24sIDE0IERlYyAyMDA5IDIwOjQwOjI2IC0wNTAwClN1YmplY3Q6IFtQQVRD SF0gczQtZHNkYjogcmV0dXJuIGFuIGVycm9yIGlmIHNhbUFjY291bnROYW1lIGlzIG5vdCBzcGVj aWZpZWQgd2hlbiBjcmVhdGluZyBhIHVzZXIuCiBNYWtlcyBzdXJlIHNhbUFjY291bnROYW1lIGhh cyBiZWVuIHNwZWNpZmllZCBiZWZvcmUgYWRkaW5nIGEgdXNlci4gVGhpcyBoYXBwZW5lZCB3aGls ZSBJIHdhcyB0cnlpbmcgdG8gYWRkIGEgdXNlciB3aXRoIHRoZSBwb3NpeEFjY291bnQgb2JqZWN0 Y2xhc3MuIEkgZm9yZ290IHRvIHNwZWNpZnkgdGhlIHVzZXIgb2JqZWN0Q2xhc3MsIGFuZCBzYW1i YSBzZWdmYXVsdGVkLiBJdCBub3cgcmV0dXJucyBMREJfRVJSX0NPTlNUUkFJTlRfVklPTEFUSU9O LgoKLS0tCiBzb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvcGFzc3dvcmRfaGFzaC5jIHwg ICAgNyArKysrKysrCiAxIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvcGFzc3dv cmRfaGFzaC5jIGIvc291cmNlNC9kc2RiL3NhbWRiL2xkYl9tb2R1bGVzL3Bhc3N3b3JkX2hhc2gu YwppbmRleCA0ZDRmNTAwLi4zNWNlMDhmIDEwMDY0NAotLS0gYS9zb3VyY2U0L2RzZGIvc2FtZGIv bGRiX21vZHVsZXMvcGFzc3dvcmRfaGFzaC5jCisrKyBiL3NvdXJjZTQvZHNkYi9zYW1kYi9sZGJf bW9kdWxlcy9wYXNzd29yZF9oYXNoLmMKQEAgLTE0ODcsNiArMTQ4NywxMyBAQCBzdGF0aWMgaW50 IHNldHVwX2lvKHN0cnVjdCBwaF9jb250ZXh0ICphYywKIAogCWlvLT5uLmxtX2hhc2gJCQk9IHNh bWRiX3Jlc3VsdF9oYXNoKGlvLT5hYywgbmV3X21zZywgImRCQ1NQd2QiKTsKIAorCWlmKGlvLT51 LnNBTUFjY291bnROYW1lID09IE5VTEwpCisJeworCQlsZGJfYXNwcmludGZfZXJyc3RyaW5nKGxk YiwgInNhbUFjY291bnROYW1lIGlzIG1pc3Npbmcgb24gJXMgZm9yIGF0dGVtcHRlZCBwYXNzd29y ZCBzZXQvY2hhbmdlIiwgCisJCQlsZGJfZG5fZ2V0X2xpbmVhcml6ZWQobmV3X21zZy0+ZG4pKTsK KwkJcmV0dXJuKExEQl9FUlJfQ09OU1RSQUlOVF9WSU9MQVRJT04pOworCX0KKwogCXJldHVybiBM REJfU1VDQ0VTUzsKIH0KIAotLSAKMS41LjQuMwoK --0016e6d7f07a144400047ae01ad4 Content-Type: text/x-diff; charset=US-ASCII; name="0005-s4-dsdb-fix-handling-of-AUX-classes-in-objectclass_.patch" Content-Disposition: attachment; filename="0005-s4-dsdb-fix-handling-of-AUX-classes-in-objectclass_.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g3aohxnv5 RnJvbSA2NzA4ZmI0MjU3ZTU3YTM5ZDc1YWZjNDViNjFkZjFjOTA2ZTU1NzhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmVuZGFuIFBvd2VycyA8YnJlbmRhbjBwb3dlcnNAZ21haWwu Y29tPgpEYXRlOiBNb24sIDE0IERlYyAyMDA5IDIwOjQ3OjE4IC0wNTAwClN1YmplY3Q6IFtQQVRD SF0gczQtZHNkYjogZml4IGhhbmRsaW5nIG9mIEFVWCBjbGFzc2VzIGluIG9iamVjdGNsYXNzX3Nv cnQgYnkgc29ydGluZyB0aGUgY2xhc3NlcyBieSBzdWJDbGFzc19vcmRlcgogczQtZHNkYjogY2hl Y2sgaWYgdGhlIGxhc3Qgc3RydWN0dXJhbCBjbGFzcyBpcyB2YWxpZCB0byBhZGQgaW4gb2JqZWN0 Y2xhc3NfZG9fYWRkIGluc3RlYWQgb2YgdGhlIGxhc3QgY2xhc3MgaW4gdGhlIGxpc3QKIGZpeGVz IHRoZSBoYW5kbGluZyBvZiBBVVggY2xhc3NlcyBpbiBvYmplY3RjbGFzc19zb3J0LiBUaGV5IHdl cmUgYmVpbmcgc29ydGVkIGJ5IGJ1aWxkaW5nIGEgY2xhc3MgdHJlZSwgYW5kIGFkZGluZyB0aGUg Y2xhc3NlcyB0byB0aGUgbGlzdCBpbiB0aGF0IG9yZGVyLiBIb3dldmVyLCBBVVggY2xhc3NlcyB1 c3VhbGx5IGRvbid0IGZpdCBpbnRvIHRoYXQgdHJlZSwgc28gTERCX0VSUl9PQkpFQ1RfQ0xBU1Nf VklPTEFUSU9OIHdhcyByZXR1cm5lZC4gSSBoYXZlIGNoYW5nZWQgdGhlIGJlaGF2aW9yIHRvIHNv cnQgdGhlIGNsYXNzZXMgYnkgc3ViQ2xhc3Nfb3JkZXIgaW5zdGVhZC4gQWxzbyB0aGlzIHBhdGNo IG1ha2VzIG9iamVjdGNsYXNzX2RvX2FkZCBjaGVjayBpZiB0aGUgbGFzdCBzdHJ1Y3R1cmFsIGNs YXNzIGlzIGEgdmFsaWQgY2xhc3MgdG8gYWRkLCBpbnN0ZWFkIG9mIHRoZSBsYXN0IGNsYXNzIHJl dHVybmVkIGJ5IG9iamVjdGNsYXNzX3NvcnQuCi0tLQogc291cmNlNC9kc2RiL3NhbWRiL2xkYl9t b2R1bGVzL29iamVjdGNsYXNzLmMgfCAgMjg1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAx IGZpbGVzIGNoYW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCAxNDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc291cmNlNC9kc2RiL3NhbWRiL2xkYl9tb2R1bGVzL29iamVjdGNsYXNzLmMgYi9z b3VyY2U0L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvb2JqZWN0Y2xhc3MuYwppbmRleCBjNDdlMzYw Li5kOTcwNWNlIDEwMDY0NAotLS0gYS9zb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvb2Jq ZWN0Y2xhc3MuYworKysgYi9zb3VyY2U0L2RzZGIvc2FtZGIvbGRiX21vZHVsZXMvb2JqZWN0Y2xh c3MuYwpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgImF1dGgvYXV0aC5oIgogI2luY2x1ZGUg InBhcmFtL3BhcmFtLmgiCiAjaW5jbHVkZSAiLi4vbGliZHMvY29tbW9uL2ZsYWdzLmgiCisjaW5j bHVkZSAidXRpbC5oIgogCiBzdHJ1Y3Qgb2NfY29udGV4dCB7CiAKQEAgLTkyLDEwICs5Myw4IEBA IHN0YXRpYyBpbnQgb2JqZWN0Y2xhc3Nfc29ydChzdHJ1Y3QgbGRiX21vZHVsZSAqbW9kdWxlLAog CQkJICAgIHN0cnVjdCBjbGFzc19saXN0ICoqc29ydGVkX291dCkgCiB7CiAJc3RydWN0IGxkYl9j b250ZXh0ICpsZGI7Ci0JaW50IGk7Ci0JaW50IGxheWVyOwotCXN0cnVjdCBjbGFzc19saXN0ICpz b3J0ZWQgPSBOVUxMLCAqcGFyZW50X2NsYXNzID0gTlVMTCwKLQkJKnN1YmNsYXNzID0gTlVMTCwg KnVuc29ydGVkID0gTlVMTCwgKmN1cnJlbnQsICpwb3NzX3N1YmNsYXNzLCAqcG9zc19wYXJlbnQs ICpuZXdfcGFyZW50OworCWludCBpLCBsb3dlc3Q7CisJc3RydWN0IGNsYXNzX2xpc3QgKnVuc29y dGVkID0gTlVMTCwgKnNvcnRlZCA9IE5VTEwsICpjdXJyZW50ID0gTlVMTCwgKnBvc3NfcGFyZW50 ID0gTlVMTCwgKm5ld19wYXJlbnQgPSBOVUxMLCAqY3VycmVudF9sb3dlc3QgPSBOVUxMOwogCiAJ bGRiID0gbGRiX21vZHVsZV9nZXRfY3R4KG1vZHVsZSk7CiAKQEAgLTE0OCwyMCArMTQ3LDE3IEBA IHN0YXRpYyBpbnQgb2JqZWN0Y2xhc3Nfc29ydChzdHJ1Y3QgbGRiX21vZHVsZSAqbW9kdWxlLAog CQkJcmV0dXJuIExEQl9FUlJfTk9fU1VDSF9BVFRSSUJVVEU7CiAJCX0KIAotCQkvKiB0aGlzIGlz IHRoZSByb290IG9mIHRoZSB0cmVlLiAgV2Ugd2lsbCBzdGFydAotCQkgKiBsb29raW5nIGZvciBz dWJjbGFzc2VzIGZyb20gaGVyZSAqLwotCQlpZiAobGRiX2F0dHJfY21wKCJ0b3AiLCBjdXJyZW50 LT5vYmplY3RjbGFzcy0+bERBUERpc3BsYXlOYW1lKSA9PSAwKSB7Ci0JCQlETElTVF9BRERfRU5E KHBhcmVudF9jbGFzcywgY3VycmVudCwgc3RydWN0IGNsYXNzX2xpc3QgKik7Ci0JCX0gZWxzZSB7 CisJCS8qIERvbid0IGFkZCB0b3AgdG8gbGlzdCwgd2Ugd2lsbCBkbyB0aGF0IGxhdGVyICovCisJ CWlmIChsZGJfYXR0cl9jbXAoInRvcCIsIGN1cnJlbnQtPm9iamVjdGNsYXNzLT5sREFQRGlzcGxh eU5hbWUpICE9IDApIHsKIAkJCURMSVNUX0FERF9FTkQodW5zb3J0ZWQsIGN1cnJlbnQsIHN0cnVj dCBjbGFzc19saXN0ICopOwogCQl9CiAJfQogCi0JaWYgKHBhcmVudF9jbGFzcyA9PSBOVUxMKSB7 Ci0JCWN1cnJlbnQgPSB0YWxsb2MobWVtX2N0eCwgc3RydWN0IGNsYXNzX2xpc3QpOwotCQljdXJy ZW50LT5vYmplY3RjbGFzcyA9IGRzZGJfY2xhc3NfYnlfbERBUERpc3BsYXlOYW1lKHNjaGVtYSwg InRvcCIpOwotCQlETElTVF9BRERfRU5EKHBhcmVudF9jbGFzcywgY3VycmVudCwgc3RydWN0IGNs YXNzX2xpc3QgKik7Ci0JfQorCS8qIEFkZCB0b3AgaGVyZSwgdG8gcHJldmVudCBkdXBsaWNhdGVz ICovCisJY3VycmVudCA9IHRhbGxvYyhtZW1fY3R4LCBzdHJ1Y3QgY2xhc3NfbGlzdCk7CisJY3Vy cmVudC0+b2JqZWN0Y2xhc3MgPSBkc2RiX2NsYXNzX2J5X2xEQVBEaXNwbGF5TmFtZShzY2hlbWEs ICJ0b3AiKTsKKwlETElTVF9BRERfRU5EKHNvcnRlZCwgY3VycmVudCwgc3RydWN0IGNsYXNzX2xp c3QgKik7CisJCiAKIAkvKiBGb3IgZWFjaCBvYmplY3Q6ICBmaW5kIHBhcmVudCBjaGFpbiAqLwog CWZvciAoY3VycmVudCA9IHVuc29ydGVkOyBzY2hlbWEgJiYgY3VycmVudDsgY3VycmVudCA9IGN1 cnJlbnQtPm5leHQpIHsKQEAgLTE3OSw0NCArMTc1LDI0IEBAIHN0YXRpYyBpbnQgb2JqZWN0Y2xh c3Nfc29ydChzdHJ1Y3QgbGRiX21vZHVsZSAqbW9kdWxlLAogCQluZXdfcGFyZW50LT5vYmplY3Rj bGFzcyA9IGRzZGJfY2xhc3NfYnlfbERBUERpc3BsYXlOYW1lKHNjaGVtYSwgY3VycmVudC0+b2Jq ZWN0Y2xhc3MtPnN1YkNsYXNzT2YpOwogCQlETElTVF9BRERfRU5EKHVuc29ydGVkLCBuZXdfcGFy ZW50LCBzdHJ1Y3QgY2xhc3NfbGlzdCAqKTsKIAl9Ci0KLQkvKiBERUJVR0dJTkcgYWlkOiAgaG93 IG1hbnkgbGF5ZXJzIGFyZSB3ZSBkb3duIG5vdz8gKi8KLQlsYXllciA9IDA7Ci0JZG8gewotCQls YXllcisrOwotCQkvKiBGaW5kIGFsbCB0aGUgc3ViY2xhc3NlcyBvZiBjbGFzc2VzIGluIHRoZQot CQkgKiBwYXJlbnRfY2xhc3Nlcy4gIFB1c2ggdGhlbSBvbnRvIHRoZSBzdWJjbGFzcyBsaXN0ICov Ci0KLQkJLyogRW5zdXJlIHdlIGRvbid0IGJvdGhlciBpZiB0aGVyZSBhcmUgbm8gdW5zb3J0ZWQg ZW50cmllcyBsZWZ0ICovCi0JCWZvciAoY3VycmVudCA9IHBhcmVudF9jbGFzczsgc2NoZW1hICYm IHVuc29ydGVkICYmIGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0KSB7Ci0JCQkvKiBX YWxrIHRoZSBsaXN0IG9mIHBvc3NpYmxlIHN1YmNsYXNzZXMgaW4gdW5zb3J0ZWQgKi8KLQkJCWZv ciAocG9zc19zdWJjbGFzcyA9IHVuc29ydGVkOyBwb3NzX3N1YmNsYXNzOyApIHsKLQkJCQlzdHJ1 Y3QgY2xhc3NfbGlzdCAqbmV4dDsKLQkJCQkKLQkJCQkvKiBTYXZlIHRoZSBuZXh0IHBvaW50ZXIs IGFzIHRoZSBETElTVF8gbWFjcm9zIHdpbGwgY2hhbmdlIHBvc3Nfc3ViY2xhc3MtPm5leHQgKi8K LQkJCQluZXh0ID0gcG9zc19zdWJjbGFzcy0+bmV4dDsKLQotCQkJCWlmIChsZGJfYXR0cl9jbXAo cG9zc19zdWJjbGFzcy0+b2JqZWN0Y2xhc3MtPnN1YkNsYXNzT2YsIGN1cnJlbnQtPm9iamVjdGNs YXNzLT5sREFQRGlzcGxheU5hbWUpID09IDApIHsKLQkJCQkJRExJU1RfUkVNT1ZFKHVuc29ydGVk LCBwb3NzX3N1YmNsYXNzKTsKLQkJCQkJRExJU1RfQUREKHN1YmNsYXNzLCBwb3NzX3N1YmNsYXNz KTsKLQkJCQkJCi0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQlwb3NzX3N1YmNsYXNzID0gbmV4dDsK KwkKKwlkbworCXsKKwkJbG93ZXN0ID0gSU5UX01BWDsKKwkJY3VycmVudF9sb3dlc3QgPSBOVUxM OworCQlmb3IgKGN1cnJlbnQgPSB1bnNvcnRlZDsgc2NoZW1hICYmIGN1cnJlbnQ7IGN1cnJlbnQg PSBjdXJyZW50LT5uZXh0KSB7CisJCQlpZihjdXJyZW50LT5vYmplY3RjbGFzcy0+c3ViQ2xhc3Nf b3JkZXIgPCBsb3dlc3QpIHsKKwkJCQljdXJyZW50X2xvd2VzdCA9IGN1cnJlbnQ7CisJCQkJbG93 ZXN0ID0gY3VycmVudC0+b2JqZWN0Y2xhc3MtPnN1YkNsYXNzX29yZGVyOwogCQkJfQogCQl9Ci0K LQkJLyogTm93IHB1c2ggdGhlIHBhcmVudF9jbGFzc2VzIGFzIHNvcnRlZCwgd2UgYXJlIGRvbmUg d2l0aAotCQl0aGVzZS4gIEFkZCB0byB0aGUgRU5EIG9mIHRoZSBsaXN0IGJ5IGNvbmNhdGVuYXRp b24gKi8KLQkJRExJU1RfQ09OQ0FURU5BVEUoc29ydGVkLCBwYXJlbnRfY2xhc3MsIHN0cnVjdCBj bGFzc19saXN0ICopOwotCi0JCS8qIGFuZCBub3cgZmluZCBzdWJjbGFzc2VzIG9mIHRoZXNlICov Ci0JCXBhcmVudF9jbGFzcyA9IHN1YmNsYXNzOwotCQlzdWJjbGFzcyA9IE5VTEw7Ci0KLQkJLyog SWYgd2UgZGlkbid0IGZpbmQgYW55IHN1YmNsYXNzZXMgd2Ugd2lsbCBmYWxsIG91dAotCQkgKiB0 aGUgYm90dG9tIGhlcmUgKi8KLQl9IHdoaWxlIChwYXJlbnRfY2xhc3MpOworCQkKKwkJaWYoY3Vy cmVudF9sb3dlc3QgIT0gTlVMTCkgeworCQkJRExJU1RfUkVNT1ZFKHVuc29ydGVkLGN1cnJlbnRf bG93ZXN0KTsKKwkJCURMSVNUX0FERF9FTkQoc29ydGVkLGN1cnJlbnRfbG93ZXN0LCBzdHJ1Y3Qg Y2xhc3NfbGlzdCAqKTsKKwkJfQorCX0gd2hpbGUodW5zb3J0ZWQpOworCQogCiAJaWYgKCF1bnNv cnRlZCkgewogCQkqc29ydGVkX291dCA9IHNvcnRlZDsKQEAgLTQ2NiwxMSArNDQyLDE0IEBAIHN0 YXRpYyBpbnQgb2JqZWN0Y2xhc3NfZG9fYWRkKHN0cnVjdCBvY19jb250ZXh0ICphYykKIAljb25z dCBzdHJ1Y3QgZHNkYl9zY2hlbWEgKnNjaGVtYTsKIAlzdHJ1Y3QgbGRiX3JlcXVlc3QgKmFkZF9y ZXE7CiAJY2hhciAqdmFsdWU7Ci0Jc3RydWN0IGxkYl9tZXNzYWdlX2VsZW1lbnQgKm9iamVjdGNs YXNzX2VsZW1lbnQ7CisJc3RydWN0IGxkYl9tZXNzYWdlX2VsZW1lbnQgKm9iamVjdGNsYXNzX2Vs ZW1lbnQsICplbDsKIAlzdHJ1Y3QgbGRiX21lc3NhZ2UgKm1zZzsKIAlUQUxMT0NfQ1RYICptZW1f Y3R4OwogCXN0cnVjdCBjbGFzc19saXN0ICpzb3J0ZWQsICpjdXJyZW50OwogCWludCByZXQ7CisJ Y29uc3Qgc3RydWN0IGRzZGJfY2xhc3MgKm9iamVjdGNsYXNzOworCWludDMyX3Qgc3lzdGVtRmxh Z3MgPSAwOworCWNvbnN0IGNoYXIgKnJkbl9uYW1lID0gTlVMTDsKIAogCWxkYiA9IGxkYl9tb2R1 bGVfZ2V0X2N0eChhYy0+bW9kdWxlKTsKIAlzY2hlbWEgPSBkc2RiX2dldF9zY2hlbWEobGRiKTsK QEAgLTU2MCwxMjAgKzUzOSwxMjggQEAgc3RhdGljIGludCBvYmplY3RjbGFzc19kb19hZGQoc3Ry dWN0IG9jX2NvbnRleHQgKmFjKQogCQkJCXRhbGxvY19mcmVlKG1lbV9jdHgpOwogCQkJCXJldHVy biByZXQ7CiAJCQl9Ci0JCQkvKiBMYXN0IG9uZSBpcyB0aGUgY3JpdGljYWwgb25lICovCi0JCQlp ZiAoIWN1cnJlbnQtPm5leHQpIHsKLQkJCQlzdHJ1Y3QgbGRiX21lc3NhZ2VfZWxlbWVudCAqZWw7 Ci0JCQkJaW50MzJfdCBzeXN0ZW1GbGFncyA9IDA7Ci0JCQkJY29uc3QgY2hhciAqcmRuX25hbWUg PSBsZGJfZG5fZ2V0X3Jkbl9uYW1lKG1zZy0+ZG4pOwotCQkJCWlmIChjdXJyZW50LT5vYmplY3Rj bGFzcy0+ckROQXR0SUQKLQkJCQkgICAgJiYgbGRiX2F0dHJfY21wKHJkbl9uYW1lLCBjdXJyZW50 LT5vYmplY3RjbGFzcy0+ckROQXR0SUQpICE9IDApIHsKLQkJCQkJbGRiX2FzcHJpbnRmX2VycnN0 cmluZyhsZGIsCi0JCQkJCQkJICAgICAgICJSRE4gJXMgaXMgbm90IGNvcnJlY3QgZm9yIG1vc3Qg c3BlY2lmaWMgc3RydWN0dXJhbCBvYmplY3RjbGFzcyAlcywgc2hvdWxkIGJlICVzIiwKLQkJCQkJ CQkgICAgICAgcmRuX25hbWUsIGN1cnJlbnQtPm9iamVjdGNsYXNzLT5sREFQRGlzcGxheU5hbWUs IGN1cnJlbnQtPm9iamVjdGNsYXNzLT5yRE5BdHRJRCk7Ci0JCQkJCXJldHVybiBMREJfRVJSX05B TUlOR19WSU9MQVRJT047Ci0JCQkJfQorCQl9CiAKLQkJCQlpZiAoYWMtPnNlYXJjaF9yZXMgJiYg YWMtPnNlYXJjaF9yZXMtPm1lc3NhZ2UpIHsKLQkJCQkJc3RydWN0IGxkYl9tZXNzYWdlX2VsZW1l bnQgKm9jX2VsCi0JCQkJCQk9IGxkYl9tc2dfZmluZF9lbGVtZW50KGFjLT5zZWFyY2hfcmVzLT5t ZXNzYWdlLCAib2JqZWN0Q2xhc3MiKTsKKwkJLyogUmV0cml2ZSB0aGUgbWVzc2FnZSBhZ2FpbiBz byBnZXRfbGFzdF9zdHJ1Y3R1cmFsX2NsYXNzIHdvcmtzICovCisJCW9iamVjdGNsYXNzX2VsZW1l bnQgPSBsZGJfbXNnX2ZpbmRfZWxlbWVudChtc2csICJvYmplY3RDbGFzcyIpOwogCi0JCQkJCWJv b2wgYWxsb3dlZF9jbGFzcyA9IGZhbHNlOwotCQkJCQlpbnQgaSwgajsKLQkJCQkJZm9yIChpPTA7 IGFsbG93ZWRfY2xhc3MgPT0gZmFsc2UgJiYgb2NfZWwgJiYgaSA8IG9jX2VsLT5udW1fdmFsdWVz OyBpKyspIHsKLQkJCQkJCWNvbnN0IHN0cnVjdCBkc2RiX2NsYXNzICpzY2xhc3M7CisJCS8qIE1h a2Ugc3VyZSBpdHMgdmFsaWQgdG8gYWRkIGFuIG9iamVjdCBvZiB0aGlzIHR5cGUgKi8KKwkJb2Jq ZWN0Y2xhc3MgPSBnZXRfbGFzdF9zdHJ1Y3R1cmFsX2NsYXNzKHNjaGVtYSxvYmplY3RjbGFzc19l bGVtZW50KTsKKwkJaWYob2JqZWN0Y2xhc3MgPT0gTlVMTCkgeworCQkJbGRiX2FzcHJpbnRmX2Vy cnN0cmluZyhsZGIsCisJCQkJCQkiRmFpbGVkIHRvIGZpbmQgYSBzdHJ1Y3R1cmFsIGNsYXNzIGZv ciAlcyIsCisJCQkJCQkgIGxkYl9kbl9nZXRfbGluZWFyaXplZChtc2ctPmRuKSk7CisJCQlyZXR1 cm4gTERCX0VSUl9OQU1JTkdfVklPTEFUSU9OOworCQl9CiAKLQkJCQkJCXNjbGFzcyA9IGRzZGJf Y2xhc3NfYnlfbERBUERpc3BsYXlOYW1lX2xkYl92YWwoc2NoZW1hLCAmb2NfZWwtPnZhbHVlc1tp XSk7Ci0JCQkJCQlpZiAoIXNjbGFzcykgewotCQkJCQkJCS8qIFdlIGRvbid0IGtub3cgdGhpcyBj bGFzcz8gIHdoYXQgaXMgZ29pbmcgb24/ICovCi0JCQkJCQkJY29udGludWU7Ci0JCQkJCQl9Ci0J CQkJCQlpZiAobGRiX3JlcXVlc3RfZ2V0X2NvbnRyb2woYWMtPnJlcSwgTERCX0NPTlRST0xfUkVM QVhfT0lEKSkgewotCQkJCQkJCWZvciAoaj0wOyBzY2xhc3MtPnN5c3RlbVBvc3NpYmxlSW5mZXJp b3JzICYmIHNjbGFzcy0+c3lzdGVtUG9zc2libGVJbmZlcmlvcnNbal07IGorKykgewotCQkJCQkJ CQlpZiAobGRiX2F0dHJfY21wKGN1cnJlbnQtPm9iamVjdGNsYXNzLT5sREFQRGlzcGxheU5hbWUs IHNjbGFzcy0+c3lzdGVtUG9zc2libGVJbmZlcmlvcnNbal0pID09IDApIHsKLQkJCQkJCQkJCWFs bG93ZWRfY2xhc3MgPSB0cnVlOwotCQkJCQkJCQkJYnJlYWs7Ci0JCQkJCQkJCX0KLQkJCQkJCQl9 Ci0JCQkJCQl9IGVsc2UgewotCQkJCQkJCWZvciAoaj0wOyBzY2xhc3MtPnN5c3RlbVBvc3NpYmxl SW5mZXJpb3JzICYmIHNjbGFzcy0+c3lzdGVtUG9zc2libGVJbmZlcmlvcnNbal07IGorKykgewot CQkJCQkJCQlpZiAobGRiX2F0dHJfY21wKGN1cnJlbnQtPm9iamVjdGNsYXNzLT5sREFQRGlzcGxh eU5hbWUsIHNjbGFzcy0+c3lzdGVtUG9zc2libGVJbmZlcmlvcnNbal0pID09IDApIHsKLQkJCQkJ CQkJCWFsbG93ZWRfY2xhc3MgPSB0cnVlOwotCQkJCQkJCQkJYnJlYWs7Ci0JCQkJCQkJCX0KLQkJ CQkJCQl9Ci0JCQkJCQl9Ci0JCQkJCX0KKwkJcmRuX25hbWUgPSBsZGJfZG5fZ2V0X3Jkbl9uYW1l KG1zZy0+ZG4pOworCQlpZiAob2JqZWN0Y2xhc3MtPnJETkF0dElECisJCQkmJiBsZGJfYXR0cl9j bXAocmRuX25hbWUsIG9iamVjdGNsYXNzLT5yRE5BdHRJRCkgIT0gMCkgeworCQkJbGRiX2FzcHJp bnRmX2VycnN0cmluZyhsZGIsCisJCQkJCQkiUkROICVzIGlzIG5vdCBjb3JyZWN0IGZvciBtb3N0 IHNwZWNpZmljIHN0cnVjdHVyYWwgb2JqZWN0Y2xhc3MgJXMsIHNob3VsZCBiZSAlcyIsCisJCQkJ CQlyZG5fbmFtZSwgb2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgb2JqZWN0Y2xhc3MtPnJE TkF0dElEKTsKKwkJCXJldHVybiBMREJfRVJSX05BTUlOR19WSU9MQVRJT047CisJCX0KIAotCQkJ CQlpZiAoIWFsbG93ZWRfY2xhc3MpIHsKLQkJCQkJCWxkYl9hc3ByaW50Zl9lcnJzdHJpbmcobGRi LCAic3RydWN0dXJhbCBvYmplY3RDbGFzcyAlcyBpcyBub3QgYSB2YWxpZCBjaGlsZCBjbGFzcyBm b3IgJXMiLAotCQkJCQkJCSAgICAgICBjdXJyZW50LT5vYmplY3RjbGFzcy0+bERBUERpc3BsYXlO YW1lLCBsZGJfZG5fZ2V0X2xpbmVhcml6ZWQoYWMtPnNlYXJjaF9yZXMtPm1lc3NhZ2UtPmRuKSk7 Ci0JCQkJCQlyZXR1cm4gTERCX0VSUl9OQU1JTkdfVklPTEFUSU9OOwotCQkJCQl9Ci0JCQkJfQor CQlpZiAoYWMtPnNlYXJjaF9yZXMgJiYgYWMtPnNlYXJjaF9yZXMtPm1lc3NhZ2UpIHsKKwkJCXN0 cnVjdCBsZGJfbWVzc2FnZV9lbGVtZW50ICpvY19lbAorCQkJCT0gbGRiX21zZ19maW5kX2VsZW1l bnQoYWMtPnNlYXJjaF9yZXMtPm1lc3NhZ2UsICJvYmplY3RDbGFzcyIpOwogCi0JCQkJaWYgKGN1 cnJlbnQtPm9iamVjdGNsYXNzLT5zeXN0ZW1Pbmx5ICYmICFsZGJfcmVxdWVzdF9nZXRfY29udHJv bChhYy0+cmVxLCBMREJfQ09OVFJPTF9SRUxBWF9PSUQpKSB7Ci0JCQkJCWxkYl9hc3ByaW50Zl9l cnJzdHJpbmcobGRiLCAib2JqZWN0Q2xhc3MgJXMgaXMgc3lzdGVtT25seSwgcmVqZWN0aW5nIGNy ZWF0aW9uIG9mICVzIiwKLQkJCQkJCQkgICAgICAgY3VycmVudC0+b2JqZWN0Y2xhc3MtPmxEQVBE aXNwbGF5TmFtZSwgbGRiX2RuX2dldF9saW5lYXJpemVkKG1zZy0+ZG4pKTsKLQkJCQkJcmV0dXJu IExEQl9FUlJfVU5XSUxMSU5HX1RPX1BFUkZPUk07Ci0JCQkJfQorCQkJYm9vbCBhbGxvd2VkX2Ns YXNzID0gZmFsc2U7CisJCQlpbnQgaSwgajsKKwkJCWZvciAoaT0wOyBhbGxvd2VkX2NsYXNzID09 IGZhbHNlICYmIG9jX2VsICYmIGkgPCBvY19lbC0+bnVtX3ZhbHVlczsgaSsrKSB7CisJCQkJY29u c3Qgc3RydWN0IGRzZGJfY2xhc3MgKnNjbGFzczsKIAotCQkJCWlmICghbGRiX21zZ19maW5kX2Vs ZW1lbnQobXNnLCAib2JqZWN0Q2F0ZWdvcnkiKSkgewotCQkJCQlzdHJ1Y3QgZHNkYl9leHRlbmRl ZF9kbl9zdG9yZV9mb3JtYXQgKmRuX2Zvcm1hdCA9IHRhbGxvY19nZXRfdHlwZShsZGJfbW9kdWxl X2dldF9wcml2YXRlKGFjLT5tb2R1bGUpLCBzdHJ1Y3QgZHNkYl9leHRlbmRlZF9kbl9zdG9yZV9m b3JtYXQpOwotCQkJCQlpZiAoZG5fZm9ybWF0ICYmIGRuX2Zvcm1hdC0+c3RvcmVfZXh0ZW5kZWRf ZG5faW5fbGRiID09IGZhbHNlKSB7Ci0JCQkJCQkvKiBTdHJpcCBvZmYgZXh0ZW5kZWQgY29tcG9u ZW50cyAqLwotCQkJCQkJc3RydWN0IGxkYl9kbiAqZG4gPSBsZGJfZG5fbmV3KG1zZywgbGRiLCBj dXJyZW50LT5vYmplY3RjbGFzcy0+ZGVmYXVsdE9iamVjdENhdGVnb3J5KTsKLQkJCQkJCXZhbHVl ID0gbGRiX2RuX2FsbG9jX2xpbmVhcml6ZWQobXNnLCBkbik7Ci0JCQkJCQl0YWxsb2NfZnJlZShk bik7Ci0JCQkJCX0gZWxzZSB7Ci0JCQkJCQl2YWx1ZSA9IHRhbGxvY19zdHJkdXAobXNnLCBjdXJy ZW50LT5vYmplY3RjbGFzcy0+ZGVmYXVsdE9iamVjdENhdGVnb3J5KTsKKwkJCQlzY2xhc3MgPSBk c2RiX2NsYXNzX2J5X2xEQVBEaXNwbGF5TmFtZV9sZGJfdmFsKHNjaGVtYSwgJm9jX2VsLT52YWx1 ZXNbaV0pOworCQkJCWlmICghc2NsYXNzKSB7CisJCQkJCS8qIFdlIGRvbid0IGtub3cgdGhpcyBj bGFzcz8gIHdoYXQgaXMgZ29pbmcgb24/ICovCisJCQkJCWNvbnRpbnVlOworCQkJCX0KKwkJCQlp ZiAobGRiX3JlcXVlc3RfZ2V0X2NvbnRyb2woYWMtPnJlcSwgTERCX0NPTlRST0xfUkVMQVhfT0lE KSkgeworCQkJCQlmb3IgKGo9MDsgc2NsYXNzLT5zeXN0ZW1Qb3NzaWJsZUluZmVyaW9ycyAmJiBz Y2xhc3MtPnN5c3RlbVBvc3NpYmxlSW5mZXJpb3JzW2pdOyBqKyspIHsKKwkJCQkJCWlmIChsZGJf YXR0cl9jbXAob2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgc2NsYXNzLT5zeXN0ZW1Qb3Nz aWJsZUluZmVyaW9yc1tqXSkgPT0gMCkgeworCQkJCQkJCWFsbG93ZWRfY2xhc3MgPSB0cnVlOwor CQkJCQkJCWJyZWFrOworCQkJCQkJfQogCQkJCQl9Ci0JCQkJCWlmICh2YWx1ZSA9PSBOVUxMKSB7 Ci0JCQkJCQlsZGJfb29tKGxkYik7Ci0JCQkJCQl0YWxsb2NfZnJlZShtZW1fY3R4KTsKLQkJCQkJ CXJldHVybiBMREJfRVJSX09QRVJBVElPTlNfRVJST1I7CisJCQkJfSBlbHNlIHsKKwkJCQkJZm9y IChqPTA7IHNjbGFzcy0+c3lzdGVtUG9zc2libGVJbmZlcmlvcnMgJiYgc2NsYXNzLT5zeXN0ZW1Q b3NzaWJsZUluZmVyaW9yc1tqXTsgaisrKSB7CisJCQkJCQlpZiAobGRiX2F0dHJfY21wKG9iamVj dGNsYXNzLT5sREFQRGlzcGxheU5hbWUsIHNjbGFzcy0+c3lzdGVtUG9zc2libGVJbmZlcmlvcnNb al0pID09IDApIHsKKwkJCQkJCQlhbGxvd2VkX2NsYXNzID0gdHJ1ZTsKKwkJCQkJCQlicmVhazsK KwkJCQkJCX0KIAkJCQkJfQotCQkJCQlsZGJfbXNnX2FkZF9zdHJpbmcobXNnLCAib2JqZWN0Q2F0 ZWdvcnkiLCB2YWx1ZSk7Ci0JCQkJfQotCQkJCWlmICghbGRiX21zZ19maW5kX2VsZW1lbnQobXNn LCAic2hvd0luQWR2YW5jZWRWaWV3T25seSIpICYmIChjdXJyZW50LT5vYmplY3RjbGFzcy0+ZGVm YXVsdEhpZGluZ1ZhbHVlID09IHRydWUpKSB7Ci0JCQkJCWxkYl9tc2dfYWRkX3N0cmluZyhtc2cs ICJzaG93SW5BZHZhbmNlZFZpZXdPbmx5IiwKLQkJCQkJCQkgICAiVFJVRSIpOwogCQkJCX0KKwkJ CX0KIAotCQkJCS8qIFRoZXJlIGFyZSB2ZXJ5IHNwZWNpYWwgcnVsZXMgZm9yIHN5c3RlbUZsYWdz LCBzZWUgTVMtQURUUyAzLjEuMS41LjIuNCAqLwotCQkJCWVsID0gbGRiX21zZ19maW5kX2VsZW1l bnQobXNnLCAic3lzdGVtRmxhZ3MiKTsKKwkJCWlmICghYWxsb3dlZF9jbGFzcykgeworCQkJCWxk Yl9hc3ByaW50Zl9lcnJzdHJpbmcobGRiLCAic3RydWN0dXJhbCBvYmplY3RDbGFzcyAlcyBpcyBu b3QgYSB2YWxpZCBjaGlsZCBjbGFzcyBmb3IgJXMiLAorCQkJCQkJb2JqZWN0Y2xhc3MtPmxEQVBE aXNwbGF5TmFtZSwgbGRiX2RuX2dldF9saW5lYXJpemVkKGFjLT5zZWFyY2hfcmVzLT5tZXNzYWdl LT5kbikpOworCQkJCXJldHVybiBMREJfRVJSX05BTUlOR19WSU9MQVRJT047CisJCQl9CisJCX0K IAotCQkJCXN5c3RlbUZsYWdzID0gbGRiX21zZ19maW5kX2F0dHJfYXNfaW50KG1zZywgInN5c3Rl bUZsYWdzIiwgMCk7CisJCWlmIChvYmplY3RjbGFzcy0+c3lzdGVtT25seSAmJiAhbGRiX3JlcXVl c3RfZ2V0X2NvbnRyb2woYWMtPnJlcSwgTERCX0NPTlRST0xfUkVMQVhfT0lEKSkgeworCQkJbGRi X2FzcHJpbnRmX2VycnN0cmluZyhsZGIsICJvYmplY3RDbGFzcyAlcyBpcyBzeXN0ZW1Pbmx5LCBy ZWplY3RpbmcgY3JlYXRpb24gb2YgJXMiLAorCQkJCQkJb2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5 TmFtZSwgbGRiX2RuX2dldF9saW5lYXJpemVkKG1zZy0+ZG4pKTsKKwkJCXJldHVybiBMREJfRVJS X1VOV0lMTElOR19UT19QRVJGT1JNOworCQl9CiAKLQkJCQlpZiAoZWwpIHsKLQkJCQkJLyogT25s eSB0aGVzZSBmbGFncyBtYXkgYmUgc2V0IGJ5IGEgY2xpZW50LCBidXQgd2UgY2FuJ3QgdGVsbCBi ZXR3ZWVuIGEgY2xpZW50IGFuZCBvdXIgcHJvdmlzaW9uIGF0IHRoaXMgcG9pbnQgKi8KLQkJCQkJ Lyogc3lzdGVtRmxhZ3MgJj0gKCBTWVNURU1fRkxBR19DT05GSUdfQUxMT1dfUkVOQU1FIHwgU1lT VEVNX0ZMQUdfQ09ORklHX0FMTE9XX01PVkUgfCBTWVNURU1fRkxBR19DT05GSUdfTElNSVRFRF9N T1ZFKTsgKi8KLQkJCQkJbGRiX21zZ19yZW1vdmVfZWxlbWVudChtc2csIGVsKTsKLQkJCQl9CisJ CWlmICghbGRiX21zZ19maW5kX2VsZW1lbnQobXNnLCAib2JqZWN0Q2F0ZWdvcnkiKSkgeworCQkJ c3RydWN0IGRzZGJfZXh0ZW5kZWRfZG5fc3RvcmVfZm9ybWF0ICpkbl9mb3JtYXQgPSB0YWxsb2Nf Z2V0X3R5cGUobGRiX21vZHVsZV9nZXRfcHJpdmF0ZShhYy0+bW9kdWxlKSwgc3RydWN0IGRzZGJf ZXh0ZW5kZWRfZG5fc3RvcmVfZm9ybWF0KTsKKwkJCWlmIChkbl9mb3JtYXQgJiYgZG5fZm9ybWF0 LT5zdG9yZV9leHRlbmRlZF9kbl9pbl9sZGIgPT0gZmFsc2UpIHsKKwkJCQkvKiBTdHJpcCBvZmYg ZXh0ZW5kZWQgY29tcG9uZW50cyAqLworCQkJCXN0cnVjdCBsZGJfZG4gKmRuID0gbGRiX2RuX25l dyhtc2csIGxkYiwgb2JqZWN0Y2xhc3MtPmRlZmF1bHRPYmplY3RDYXRlZ29yeSk7CisJCQkJdmFs dWUgPSBsZGJfZG5fYWxsb2NfbGluZWFyaXplZChtc2csIGRuKTsKKwkJCQl0YWxsb2NfZnJlZShk bik7CisJCQl9IGVsc2UgeworCQkJCXZhbHVlID0gdGFsbG9jX3N0cmR1cChtc2csIG9iamVjdGNs YXNzLT5kZWZhdWx0T2JqZWN0Q2F0ZWdvcnkpOworCQkJfQorCQkJaWYgKHZhbHVlID09IE5VTEwp IHsKKwkJCQlsZGJfb29tKGxkYik7CisJCQkJdGFsbG9jX2ZyZWUobWVtX2N0eCk7CisJCQkJcmV0 dXJuIExEQl9FUlJfT1BFUkFUSU9OU19FUlJPUjsKKwkJCX0KKwkJCWxkYl9tc2dfYWRkX3N0cmlu Zyhtc2csICJvYmplY3RDYXRlZ29yeSIsIHZhbHVlKTsKKwkJfQorCQlpZiAoIWxkYl9tc2dfZmlu ZF9lbGVtZW50KG1zZywgInNob3dJbkFkdmFuY2VkVmlld09ubHkiKSAmJiAob2JqZWN0Y2xhc3Mt PmRlZmF1bHRIaWRpbmdWYWx1ZSA9PSB0cnVlKSkgeworCQkJbGRiX21zZ19hZGRfc3RyaW5nKG1z ZywgInNob3dJbkFkdmFuY2VkVmlld09ubHkiLAorCQkJCQkJIlRSVUUiKTsKKwkJfQogCi0JCQkJ LyogVGhpcyBmbGFnIGlzIG9ubHkgYWxsb3dlZCBvbiBhdHRyaWJ1dGVTY2hlbWEgb2JqZWN0cyAq LwotCQkJCWlmIChsZGJfYXR0cl9jbXAoY3VycmVudC0+b2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5 TmFtZSwgImF0dHJpYnV0ZVNjaGVtYSIpID09IDApIHsKLQkJCQkJc3lzdGVtRmxhZ3MgJj0gflNZ U1RFTV9GTEFHX0FUVFJfSVNfUkROOwotCQkJCX0KKwkJLyogVGhlcmUgYXJlIHZlcnkgc3BlY2lh bCBydWxlcyBmb3Igc3lzdGVtRmxhZ3MsIHNlZSBNUy1BRFRTIDMuMS4xLjUuMi40ICovCisJCWVs ID0gbGRiX21zZ19maW5kX2VsZW1lbnQobXNnLCAic3lzdGVtRmxhZ3MiKTsKIAotCQkJCWlmIChs ZGJfYXR0cl9jbXAoY3VycmVudC0+b2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgInNlcnZl ciIpID09IDApIHsKLQkJCQkJc3lzdGVtRmxhZ3MgfD0gKGludDMyX3QpKFNZU1RFTV9GTEFHX0RJ U0FMTE9XX01PVkVfT05fREVMRVRFIHwgU1lTVEVNX0ZMQUdfQ09ORklHX0FMTE9XX1JFTkFNRSB8 IFNZU1RFTV9GTEFHX0NPTkZJR19BTExPV19MSU1JVEVEX01PVkUpOwotCQkJCX0gZWxzZSBpZiAo bGRiX2F0dHJfY21wKGN1cnJlbnQtPm9iamVjdGNsYXNzLT5sREFQRGlzcGxheU5hbWUsICJzaXRl IikgPT0gMAotCQkJCQkgICB8fCBsZGJfYXR0cl9jbXAoY3VycmVudC0+b2JqZWN0Y2xhc3MtPmxE QVBEaXNwbGF5TmFtZSwgInNlcnZlckNvbnRhaW5lciIpID09IDAKLQkJCQkJICAgfHwgbGRiX2F0 dHJfY21wKGN1cnJlbnQtPm9iamVjdGNsYXNzLT5sREFQRGlzcGxheU5hbWUsICJudERTRFNBIikg PT0gMCkgewotCQkJCQlzeXN0ZW1GbGFncyB8PSAoaW50MzJfdCkoU1lTVEVNX0ZMQUdfRElTQUxM T1dfTU9WRV9PTl9ERUxFVEUpOwotCi0JCQkJfSBlbHNlIGlmIChsZGJfYXR0cl9jbXAoY3VycmVu dC0+b2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgInNpdGVMaW5rIikgPT0gMAotCQkJCQkg ICB8fCBsZGJfYXR0cl9jbXAoY3VycmVudC0+b2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwg InNpdGVMaW5rQnJpZGdlIikgPT0gMAotCQkJCQkgICB8fCBsZGJfYXR0cl9jbXAoY3VycmVudC0+ b2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgIm5URFNDb25uZWN0aW9uIikgPT0gMCkgewot CQkJCQlzeXN0ZW1GbGFncyB8PSAoaW50MzJfdCkoU1lTVEVNX0ZMQUdfQ09ORklHX0FMTE9XX1JF TkFNRSk7Ci0JCQkJfQorCQlzeXN0ZW1GbGFncyA9IGxkYl9tc2dfZmluZF9hdHRyX2FzX2ludCht c2csICJzeXN0ZW1GbGFncyIsIDApOwogCi0JCQkJLyogVE9ETzogSWYgcGFyZW50IG9iamVjdCBp cyBzaXRlIG9yIHN1Ym5ldCwgYWxzbyBhZGQgKFNZU1RFTV9GTEFHX0NPTkZJR19BTExPV19SRU5B TUUpICovCisJCWlmIChlbCkgeworCQkJLyogT25seSB0aGVzZSBmbGFncyBtYXkgYmUgc2V0IGJ5 IGEgY2xpZW50LCBidXQgd2UgY2FuJ3QgdGVsbCBiZXR3ZWVuIGEgY2xpZW50IGFuZCBvdXIgcHJv dmlzaW9uIGF0IHRoaXMgcG9pbnQgKi8KKwkJCS8qIHN5c3RlbUZsYWdzICY9ICggU1lTVEVNX0ZM QUdfQ09ORklHX0FMTE9XX1JFTkFNRSB8IFNZU1RFTV9GTEFHX0NPTkZJR19BTExPV19NT1ZFIHwg U1lTVEVNX0ZMQUdfQ09ORklHX0xJTUlURURfTU9WRSk7ICovCisJCQlsZGJfbXNnX3JlbW92ZV9l bGVtZW50KG1zZywgZWwpOworCQl9CiAKLQkJCQlpZiAoZWwgfHwgc3lzdGVtRmxhZ3MgIT0gMCkg ewotCQkJCQlzYW1kYl9tc2dfYWRkX2ludChsZGIsIG1zZywgbXNnLCAic3lzdGVtRmxhZ3MiLCBz eXN0ZW1GbGFncyk7Ci0JCQkJfQotCQkJfQorCQkvKiBUaGlzIGZsYWcgaXMgb25seSBhbGxvd2Vk IG9uIGF0dHJpYnV0ZVNjaGVtYSBvYmplY3RzICovCisJCWlmIChsZGJfYXR0cl9jbXAob2JqZWN0 Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgImF0dHJpYnV0ZVNjaGVtYSIpID09IDApIHsKKwkJCXN5 c3RlbUZsYWdzICY9IH5TWVNURU1fRkxBR19BVFRSX0lTX1JETjsKKwkJfQorCisJCWlmIChsZGJf YXR0cl9jbXAob2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgInNlcnZlciIpID09IDApIHsK KwkJCXN5c3RlbUZsYWdzIHw9IChpbnQzMl90KShTWVNURU1fRkxBR19ESVNBTExPV19NT1ZFX09O X0RFTEVURSB8IFNZU1RFTV9GTEFHX0NPTkZJR19BTExPV19SRU5BTUUgfCBTWVNURU1fRkxBR19D T05GSUdfQUxMT1dfTElNSVRFRF9NT1ZFKTsKKwkJfSBlbHNlIGlmIChsZGJfYXR0cl9jbXAob2Jq ZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgInNpdGUiKSA9PSAwCisJCQkJfHwgbGRiX2F0dHJf Y21wKG9iamVjdGNsYXNzLT5sREFQRGlzcGxheU5hbWUsICJzZXJ2ZXJDb250YWluZXIiKSA9PSAw CisJCQkJfHwgbGRiX2F0dHJfY21wKG9iamVjdGNsYXNzLT5sREFQRGlzcGxheU5hbWUsICJudERT RFNBIikgPT0gMCkgeworCQkJc3lzdGVtRmxhZ3MgfD0gKGludDMyX3QpKFNZU1RFTV9GTEFHX0RJ U0FMTE9XX01PVkVfT05fREVMRVRFKTsKKworCQl9IGVsc2UgaWYgKGxkYl9hdHRyX2NtcChvYmpl Y3RjbGFzcy0+bERBUERpc3BsYXlOYW1lLCAic2l0ZUxpbmsiKSA9PSAwCisJCQkJfHwgbGRiX2F0 dHJfY21wKG9iamVjdGNsYXNzLT5sREFQRGlzcGxheU5hbWUsICJzaXRlTGlua0JyaWRnZSIpID09 IDAKKwkJCQl8fCBsZGJfYXR0cl9jbXAob2JqZWN0Y2xhc3MtPmxEQVBEaXNwbGF5TmFtZSwgIm5U RFNDb25uZWN0aW9uIikgPT0gMCkgeworCQkJc3lzdGVtRmxhZ3MgfD0gKGludDMyX3QpKFNZU1RF TV9GTEFHX0NPTkZJR19BTExPV19SRU5BTUUpOworCQl9CisKKwkJLyogVE9ETzogSWYgcGFyZW50 IG9iamVjdCBpcyBzaXRlIG9yIHN1Ym5ldCwgYWxzbyBhZGQgKFNZU1RFTV9GTEFHX0NPTkZJR19B TExPV19SRU5BTUUpICovCisKKwkJaWYgKGVsIHx8IHN5c3RlbUZsYWdzICE9IDApIHsKKwkJCXNh bWRiX21zZ19hZGRfaW50KGxkYiwgbXNnLCBtc2csICJzeXN0ZW1GbGFncyIsIHN5c3RlbUZsYWdz KTsKIAkJfQogCX0KIAotLSAKMS41LjQuMwoK --0016e6d7f07a144400047ae01ad4 Content-Type: text/x-diff; charset=UTF-8; name="0006-s4-dsdb-Add-a-test-for-adding-deleting-and-append.patch" Content-Disposition: attachment; filename="0006-s4-dsdb-Add-a-test-for-adding-deleting-and-append.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g3aoi4zz6 RnJvbSAwOGU4ZjgyYzBiNTJhMjEzZGRjMWVkNDc1ZTZiYjJhMWFkN2U0NTVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmVuZGFuIFBvd2VycyA8YnJlbmRhbjBwb3dlcnNAZ21haWwu Y29tPgpEYXRlOiBNb24sIDE0IERlYyAyMDA5IDIwOjUxOjEwIC0wNTAwClN1YmplY3Q6IFtQQVRD SF0gczQtZHNkYjogQWRkIGEgdGVzdCBmb3IgYWRkaW5nLCBkZWxldGluZywgYW5kIGFwcGVuZGlu ZyBhIHBzb3hBY2NvdW50IG9iamVjdENsYXNzIHRvIGEgdXNlcgoKLS0tCiBzb3VyY2U0L2xpYi9s ZGIvdGVzdHMvcHl0aG9uL2xkYXAucHkgfCAgIDMwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogMSBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NvdXJjZTQvbGliL2xkYi90ZXN0cy9weXRob24vbGRhcC5weSBiL3NvdXJj ZTQvbGliL2xkYi90ZXN0cy9weXRob24vbGRhcC5weQppbmRleCBkMGEwZWQyLi41NGI2MjNhIDEw MDc1NQotLS0gYS9zb3VyY2U0L2xpYi9sZGIvdGVzdHMvcHl0aG9uL2xkYXAucHkKKysrIGIvc291 cmNlNC9saWIvbGRiL3Rlc3RzL3B5dGhvbi9sZGFwLnB5CkBAIC0xNzE5LDYgKzE3MTksMzYgQEAg bWVtYmVyOiBDTj1sZGFwdGVzdHV0Zjh1c2VyIMOow7nDqcOsw7LDoCxDTj1Vc2VycywiIiIgKyBz ZWxmLmJhc2VfZG4gKyAiIiIKICAgICAgICAgcmVzID0gbGRiLnNlYXJjaChzZWxmLmJhc2VfZG4s IGV4cHJlc3Npb249Im9iamVjdENhdGVnb3J5PWdyb3VwIiwgc2NvcGU9U0NPUEVfU1VCVFJFRSwg YXR0cnM9WyJjbiJdLCBjb250cm9scz1bImRvbWFpbl9zY29wZToxIl0pCiAgICAgICAgIHNlbGYu YXNzZXJ0VHJ1ZShsZW4ocmVzKSA+IDApCiAKKyAgICAgICAgcHJpbnQgIlRlc3RpbmcgY3JlYXRp bmcgYSB1c2VyIHdpdGggdGhlIHBvc2l4QWNjb3VudCBvYmplY3RDbGFzcyIKKyAgICAgICAgc2Vs Zi5sZGIuYWRkX2xkaWYoIiIiZG46IGNuPXBvc2l4dXNlcixDTj1Vc2Vycywlcworb2JqZWN0Q2xh c3M6IHRvcAorb2JqZWN0Q2xhc3M6IHBlcnNvbgorb2JqZWN0Q2xhc3M6IHBvc2l4QWNjb3VudAor b2JqZWN0Q2xhc3M6IHVzZXIKK29iamVjdENsYXNzOiBvcmdhbml6YXRpb25hbFBlcnNvbgorY246 IHBvc2l4dXNlcgordWlkOiBwb3NpeHVzZXIKK3NuOiBwb3NpeHVzZXIKK3VpZE51bWJlcjogMTAx MjYKK2dpZE51bWJlcjogMTAxMjYKK2hvbWVEaXJlY3Rvcnk6IC9ob21lL3Bvc2l4dXNlcgorbG9n aW5TaGVsbDogL2Jpbi9iYXNoCitnZWNvczogUG9zaXggVXNlcjs7OworZGVzY3JpcHRpb246IEEg UE9TSVggdXNlciIiIiUgKHNlbGYuYmFzZV9kbikpCisKKyAgICAgICAgcHJpbnQgIlRlc3Rpbmcg cmVtb3ZpbmcgdGhlIHBvc2l4QWNjb3VudCBvYmplY3RDbGFzcyBmcm9tIGFuIGV4aXN0aW5nIHVz ZXIiCisgICAgICAgIHNlbGYubGRiLm1vZGlmeV9sZGlmKCIiImRuOiBjbj1wb3NpeHVzZXIsQ049 VXNlcnMsJXMKK2NoYW5nZXR5cGU6IG1vZGlmeQorZGVsZXRlOiBvYmplY3RDbGFzcworb2JqZWN0 Q2xhc3M6IHBvc2l4QWNjb3VudCIiIiUgKHNlbGYuYmFzZV9kbikpCisKKyAgICAgICAgcHJpbnQg IlRlc3RpbmcgYWRkaW5nIHRoZSBwb3NpeEFjY291bnQgb2JqZWN0Q2xhc3MgdG8gYW4gZXhpc3Rp bmcgdXNlciIKKyAgICAgICAgc2VsZi5sZGIubW9kaWZ5X2xkaWYoIiIiZG46IGNuPXBvc2l4dXNl cixDTj1Vc2VycywlcworY2hhbmdldHlwZTogbW9kaWZ5CithZGQ6IG9iamVjdENsYXNzCitvYmpl Y3RDbGFzczogcG9zaXhBY2NvdW50IiIiJSAoc2VsZi5iYXNlX2RuKSkKKworICAgICAgICBzZWxm LmRlbGV0ZV9mb3JjZShzZWxmLmxkYiwgImNuPXBvc2l4dXNlcixjbj11c2VycywiICsgc2VsZi5i YXNlX2RuKQogICAgICAgICBzZWxmLmRlbGV0ZV9mb3JjZShzZWxmLmxkYiwgImNuPWxkYXB0ZXN0 dXNlcixjbj11c2VycywiICsgc2VsZi5iYXNlX2RuKQogICAgICAgICBzZWxmLmRlbGV0ZV9mb3Jj ZShzZWxmLmxkYiwgImNuPWxkYXB0ZXN0dXNlcjIsY249dXNlcnMsIiArIHNlbGYuYmFzZV9kbikK ICAgICAgICAgc2VsZi5kZWxldGVfZm9yY2Uoc2VsZi5sZGIsICJjbj1sZGFwdGVzdHVzZXIzLGNu PXVzZXJzLCIgKyBzZWxmLmJhc2VfZG4pCi0tIAoxLjUuNC4zCgo= --0016e6d7f07a144400047ae01ad4--