From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: Re: [PATCH v3 1/6] xl: improve return and exit codes of memory related functions Date: Fri, 8 Apr 2016 11:58:02 +0200 Message-ID: <1460109482.13871.83.camel@citrix.com> References: <20160408022241.9058.86808.stgit@Solace.fritz.box> <20160408022324.9058.21614.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============9095900308453451331==" Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aoTB6-0002qY-RA for xen-devel@lists.xenproject.org; Fri, 08 Apr 2016 09:58:13 +0000 In-Reply-To: <20160408022324.9058.21614.stgit@Solace.fritz.box> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Ian Jackson , Harmandeep Kaur , George Dunlap List-Id: xen-devel@lists.xenproject.org --===============9095900308453451331== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZL1Zu6pLXP3pLW3lhLK8" --=-ZL1Zu6pLXP3pLW3lhLK8 Content-Type: multipart/mixed; boundary="=-pp9pyDa310Fkrj8zp3yY" --=-pp9pyDa310Fkrj8zp3yY Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gRnJpLCAyMDE2LTA0LTA4IGF0IDA0OjIzICswMjAwLCBEYXJpbyBGYWdnaW9saSB3cm90ZToK PsKgCj4gLS0tIGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCj4gKysrIGIvdG9vbHMvbGlieGwv eGxfY21kaW1wbC5jCj4gQEAgLTMzOTEsNyArMzM5Niw3IEBAIHN0YXRpYyBpbnQgc2V0X21lbW9y eV9tYXgodWludDMyX3QgZG9taWQsIGNvbnN0Cj4gY2hhciAqbWVtKQo+IMKgwqDCoMKgwqBtZW1v cnlrYiA9IHBhcnNlX21lbV9zaXplX2tiKG1lbSk7Cj4gwqDCoMKgwqDCoGlmIChtZW1vcnlrYiA9 PSAtMSkgewo+IMKgwqDCoMKgwqDCoMKgwqDCoGZwcmludGYoc3RkZXJyLCAiaW52YWxpZCBtZW1v cnkgc2l6ZTogJXNcbiIsIG1lbSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqBleGl0KDMpOwo+ICvCoMKg wqDCoMKgwqDCoMKgZXhpdChFWElUX0ZBSUxVUkUpOwo+CkFjdHVhbGx5LCBhZnRlciBHZW9yZ2Un cyAwNjE0YzQ1NDIsIGl0J3MgYmV0dGVyIGlmIHRoaXMgaXMgdHVybmVkIGludG8KYSByZXR1cm4g KGFuZCBsaWtld2lzZSBpbiBzZXRfbWVtb3J5X3RhcmdldCgpKS4KClRoZSBpbmxpbmVkIChhbmQg YXR0YWNoZWQpIHBhdGNoIGRvZXMgdGhhdC4KCkFuZCB0aGVyZSdzIGFuIHVwZGF0ZWQgYnJhbmNo IChsYWJlbGxlZCB2NCwgYW5kIG9mIGNvdXJzZSBJIGNhbgpyZXN1Ym1pdCB0aGUgd2hvbGUgc2Vy aWVzIGZyb20gdGhlcmUsIGlmIG5lY2Vzc2FyeSksIHdpdGggdGhpcyB2ZXJzaW9uCm9mIHRoZSBw YXRjaCBpbiBpdCwgYXQ6CsKgZ2l0Oi8veGVuYml0cy54ZW4ub3JnL3Blb3BsZS9kYXJpb2YveGVu LmdpdCByZWwveGwvZXhpdC1jb2RlLWNsZWFudXAtdjQKwqBodHRwOi8veGVuYml0cy54ZW4ub3Jn L2dpdHdlYi8/cD1wZW9wbGUvZGFyaW9mL3hlbi5naXQ7YT1zaG9ydGxvZztoPXJlZnMvaGVhZHMv cmVsL3hsL2V4aXQtY29kZS1jbGVhbnVwLXY0CgpSZWdhcmRzLApEYXJpbwotLS0KY29tbWl0IDQz NTg2MjIyMDg0NjM4ZWM5OGI2OTM3MDIxMzJmMzQxMmE2M2RkZGEKQXV0aG9yOiBIYXJtYW5kZWVw IEthdXIgPHdyaXRlLmhhcm1hbmRlZXBAZ21haWwuY29tPgpEYXRlOsKgwqDCoFRodSBBcHIgNyAx MjozODowOSAyMDE2ICswMjAwCgrCoMKgwqDCoHhsOiBpbXByb3ZlIHJldHVybiBhbmQgZXhpdCBj b2RlcyBvZiBtZW1vcnkgcmVsYXRlZCBmdW5jdGlvbnMKwqDCoMKgwqAKwqDCoMKgwqBieSBtYWtp bmcgdGhlbSBtb3JlIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBleGFtcGxlcyBpbiB4bC4KwqDCoMKg wqAKwqDCoMKgwqBXaGlsZSB0aGVyZSwgbWFrZSBmcmVlbWVtKCkgb2YgYm9vbGVhbiByZXR1cm4g dHlwZSwgd2hpY2gKwqDCoMKgwqBsb29rcyBtb3JlIG5hdHVyYWwsIGFuZCBhZGQgY29tbWVudCBl eHBsYWluaW5nIHdoeQrCoMKgwqDCoHBhcnNlX21lbV9zaXplX2tiKCkgbmVlZHMgdG8gZGl2ZXJn ZSBmcm9tIHRoZSBwYXR0ZXJuLgrCoMKgwqDCoArCoMKgwqDCoFNpZ25lZC1vZmYtYnk6IEhhcm1h bmRlZXAgS2F1ciA8d3JpdGUuaGFybWFuZGVlcEBnbWFpbC5jb20+CsKgwqDCoMKgU2lnbmVkLW9m Zi1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+CsKgwqDCoMKg LS0tCsKgwqDCoMKgQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgrC oMKgwqDCoENjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgrCoMKgwqDCoENjOiBHZW9y Z2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+CsKgwqDCoMKgLS0tCsKgwqDCoMKg djQ6IG1ha2Ugc2V0X21lbW9yeV9tYXgoKSBhbmQgc2V0X21lbW9yeV90YXJnZXQoKSBtb3JlCsKg wqDCoMKgwqDCoMKgwqBjb25zaXN0ZW50LgrCoMKgwqDCoArCoMKgwqDCoHYzOiBTaG9ydGVuIGNo YW5nZWxvZy4KwqDCoMKgwqDCoMKgwqDCoE1ha2UgZnJlZW1lbSgpIGJvb2xlYW4gcmV0dXJuIHR5 cGUuCsKgwqDCoMKgCsKgwqDCoMKgdjI6IEFkZCBjb21tZW50IHRvIGV4cGxhaW4gcmV0dXJuIHZh dWxlIG9mIHBhcnNlX21lbV9zaXplX2tiKCkuCsKgwqDCoMKgwqDCoMKgwqBBZGQgZnJlZW1lbSgp IGFuZCBtYWluX3NoYXJpbmcoKS4KwqDCoMKgwqDCoMKgwqDCoFJlbW92ZSBmaW5kX2RvbWFpbigp LgoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyBiL3Rvb2xzL2xpYnhsL3hs X2NtZGltcGwuYwppbmRleCAyZWU2Yzc0Li5lYWIyYWJkIDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC94bF9jbWRpbXBsLmMKKysrIGIvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCkBAIC0yNjgwLDQw ICsyNjgwLDQ1IEBAIHN0YXRpYyBpbnQgcHJlc2VydmVfZG9tYWluKHVpbnQzMl90ICpyX2RvbWlk LCBsaWJ4bF9ldmVudCAqZXZlbnQsCsKgwqDCoMKgwqByZXR1cm4gcmMgPT0gMCA/IDEgOiAwOwrC oH0KwqAKLXN0YXRpYyBpbnQgZnJlZW1lbSh1aW50MzJfdCBkb21pZCwgbGlieGxfZG9tYWluX2J1 aWxkX2luZm8gKmJfaW5mbykKKy8qCisgKiBSZXR1cm5zIGZhbHNlIGlmIG1lbW9yeSBjYW4ndCBi ZSBmcmVlZCwgYnV0IGFsc28gaWYgd2UgZW5jb3VudGVyIGVycm9ycy4KKyAqIFJldHVybnMgdHJ1 ZSBpbiBjYXNlIHRoZXJlIGlzIGFscmVhZHksIG9yIHdlIG1hbmFnZSB0byBmcmVlIGl0LCBlbm91 Z2gKKyAqIG1lbW9yeSwgYnV0IGFsc28gaWYgYXV0b2JhbGxvb24gaXMgZmFsc2UuCisgKi8KK3N0 YXRpYyBib29sIGZyZWVtZW0odWludDMyX3QgZG9taWQsIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZv ICpiX2luZm8pCsKgewrCoMKgwqDCoMKgaW50IHJjLCByZXRyaWVzID0gMzsKwqDCoMKgwqDCoHVp bnQzMl90IG5lZWRfbWVta2IsIGZyZWVfbWVta2I7CsKgCsKgwqDCoMKgwqBpZiAoIWF1dG9iYWxs b29uKQotwqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOworwqDCoMKgwqDCoMKgwqDCoHJldHVybiB0 cnVlOwrCoArCoMKgwqDCoMKgcmMgPSBsaWJ4bF9kb21haW5fbmVlZF9tZW1vcnkoY3R4LCBiX2lu Zm8sICZuZWVkX21lbWtiKTsKwqDCoMKgwqDCoGlmIChyYyA8IDApCi3CoMKgwqDCoMKgwqDCoMKg cmV0dXJuIHJjOworwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZTsKwqAKwqDCoMKgwqDCoGRv IHsKwqDCoMKgwqDCoMKgwqDCoMKgcmMgPSBsaWJ4bF9nZXRfZnJlZV9tZW1vcnkoY3R4LCAmZnJl ZV9tZW1rYik7CsKgwqDCoMKgwqDCoMKgwqDCoGlmIChyYyA8IDApCi3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gcmM7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7 CsKgCsKgwqDCoMKgwqDCoMKgwqDCoGlmIChmcmVlX21lbWtiID49IG5lZWRfbWVta2IpCi3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dHVybiB0cnVlOwrCoArCoMKgwqDCoMKgwqDCoMKgwqByYyA9IGxpYnhsX3NldF9tZW1vcnlfdGFy Z2V0KGN0eCwgMCwgZnJlZV9tZW1rYiAtIG5lZWRfbWVta2IsIDEsIDApOwrCoMKgwqDCoMKgwqDC oMKgwqBpZiAocmMgPCAwKQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJjOworwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwrCoArCoMKgwqDCoMKgwqDCoMKgwqAv KiB3YWl0IHVudGlsIGRvbTAgcmVhY2hlcyBpdHMgdGFyZ2V0LCBhcyBsb25nIGFzIHdlIGFyZSBt YWtpbmcKwqDCoMKgwqDCoMKgwqDCoMKgwqAqIHByb2dyZXNzICovCsKgwqDCoMKgwqDCoMKgwqDC oHJjID0gbGlieGxfd2FpdF9mb3JfbWVtb3J5X3RhcmdldChjdHgsIDAsIDEwKTsKwqDCoMKgwqDC oMKgwqDCoMKgaWYgKHJjIDwgMCkKLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByYzsK K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZTsKwqAKwqDCoMKgwqDCoMKgwqDC oMKgcmV0cmllcy0tOwrCoMKgwqDCoMKgfSB3aGlsZSAocmV0cmllcyA+IDApOwrCoAotwqDCoMKg wqByZXR1cm4gRVJST1JfTk9NRU07CivCoMKgwqDCoHJldHVybiBmYWxzZTsKwqB9CsKgCsKgc3Rh dGljIHZvaWQgYXV0b2Nvbm5lY3RfY29uc29sZShsaWJ4bF9jdHggKmN0eF9pZ25vcmVkLApAQCAt Mjk4MCw4ICsyOTg1LDcgQEAgc3RhcnQ6CsKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZXJyb3Jfb3V0 OwrCoArCoMKgwqDCoMKgaWYgKGRvbWlkX3NvZnRfcmVzZXQgPT0gSU5WQUxJRF9ET01JRCkgewot wqDCoMKgwqDCoMKgwqDCoHJldCA9IGZyZWVtZW0oZG9taWQsICZkX2NvbmZpZy5iX2luZm8pOwot wqDCoMKgwqDCoMKgwqDCoGlmIChyZXQgPCAwKSB7CivCoMKgwqDCoMKgwqDCoMKgaWYgKCFmcmVl bWVtKGRvbWlkLCAmZF9jb25maWcuYl9pbmZvKSkgewrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIGZyZWUgbWVtb3J5IGZvciB0aGUgZG9tYWluXG4i KTsKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBFUlJPUl9GQUlMOwrCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGdvdG8gZXJyb3Jfb3V0OwpAQCAtMzI0NSw2ICszMjQ5LDcgQEAgdm9p ZCBoZWxwKGNvbnN0IGNoYXIgKmNvbW1hbmQpCsKgwqDCoMKgwqB9CsKgfQrCoAorLyogUmV0dXJu cyAtMSBvbiBmYWlsdXJlOyB0aGUgYW1vdW50IG9mIG1lbW9yeSBvbiBzdWNjZXNzLiAqLwrCoHN0 YXRpYyBpbnQ2NF90IHBhcnNlX21lbV9zaXplX2tiKGNvbnN0IGNoYXIgKm1lbSkKwqB7CsKgwqDC oMKgwqBjaGFyICplbmRwdHI7CkBAIC0zMzkxLDcgKzMzOTYsNyBAQCBzdGF0aWMgaW50IHNldF9t ZW1vcnlfbWF4KHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICptZW0pCsKgwqDCoMKgwqBtZW1v cnlrYiA9IHBhcnNlX21lbV9zaXplX2tiKG1lbSk7CsKgwqDCoMKgwqBpZiAobWVtb3J5a2IgPT0g LTEpIHsKwqDCoMKgwqDCoMKgwqDCoMKgZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIG1lbW9yeSBz aXplOiAlc1xuIiwgbWVtKTsKLcKgwqDCoMKgwqDCoMKgwqBleGl0KDMpOworwqDCoMKgwqDCoMKg wqDCoHJldHVybiBFWElUX0ZBSUxVUkU7CsKgwqDCoMKgwqB9CsKgCsKgwqDCoMKgwqBpZiAobGli eGxfZG9tYWluX3NldG1heG1lbShjdHgsIGRvbWlkLCBtZW1vcnlrYikpIHsKQEAgLTM0MjUsNyAr MzQzMCw3IEBAIHN0YXRpYyBpbnQgc2V0X21lbW9yeV90YXJnZXQodWludDMyX3QgZG9taWQsIGNv bnN0IGNoYXIgKm1lbSkKwqDCoMKgwqDCoG1lbW9yeWtiID0gcGFyc2VfbWVtX3NpemVfa2IobWVt KTsKwqDCoMKgwqDCoGlmIChtZW1vcnlrYiA9PSAtMSnCoMKgewrCoMKgwqDCoMKgwqDCoMKgwqBm cHJpbnRmKHN0ZGVyciwgImludmFsaWQgbWVtb3J5IHNpemU6ICVzXG4iLCBtZW0pOwotwqDCoMKg wqDCoMKgwqDCoGV4aXQoMyk7CivCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIEVYSVRfRkFJTFVSRTsK wqDCoMKgwqDCoH0KwqAKwqDCoMKgwqDCoGlmIChsaWJ4bF9zZXRfbWVtb3J5X3RhcmdldChjdHgs IGRvbWlkLCBtZW1vcnlrYiwgMCwgLyogZW5mb3JjZSAqLyAxKSkgewpAQCAtNjEzMiw3ICs2MTM3 LDcgQEAgaW50IG1haW5fc2hhcmluZyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCsKgwqDCoMKgwqDC oMKgwqDCoGluZm8gPSBsaWJ4bF9saXN0X2RvbWFpbihjdHgsICZuYl9kb21haW4pOwrCoMKgwqDC oMKgwqDCoMKgwqBpZiAoIWluZm8pIHsKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmcHJpbnRm KHN0ZGVyciwgImxpYnhsX2xpc3RfZG9tYWluIGZhaWxlZC5cbiIpOwotwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuIDE7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gRVhJVF9G QUlMVVJFOwrCoMKgwqDCoMKgwqDCoMKgwqB9CsKgwqDCoMKgwqDCoMKgwqDCoGluZm9fZnJlZSA9 IGluZm87CsKgwqDCoMKgwqB9IGVsc2UgaWYgKG9wdGluZCA9PSBhcmdjLTEpIHsKQEAgLTYxNDEs MTcgKzYxNDYsMTcgQEAgaW50IG1haW5fc2hhcmluZyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCsKg wqDCoMKgwqDCoMKgwqDCoGlmIChyYyA9PSBFUlJPUl9ET01BSU5fTk9URk9VTkQpIHsKwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiBEb21haW4gXCclc1wn IGRvZXMgbm90IGV4aXN0LlxuIiwKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFy Z3Zbb3B0aW5kXSk7Ci3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLXJjOworwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIEVYSVRfRkFJTFVSRTsKwqDCoMKgwqDCoMKgwqDCoMKg fQrCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmMpIHsKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBm cHJpbnRmKHN0ZGVyciwgImxpYnhsX2RvbWFpbl9pbmZvIGZhaWxlZCAoY29kZSAlZCkuXG4iLCBy Yyk7Ci3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLXJjOworwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuIEVYSVRfRkFJTFVSRTsKwqDCoMKgwqDCoMKgwqDCoMKgfQrCoMKgwqDC oMKgwqDCoMKgwqBpbmZvID0gJmluZm9fYnVmOwrCoMKgwqDCoMKgwqDCoMKgwqBuYl9kb21haW4g PSAxOwrCoMKgwqDCoMKgfSBlbHNlIHsKwqDCoMKgwqDCoMKgwqDCoMKgaGVscCgic2hhcmluZyIp OwotwqDCoMKgwqDCoMKgwqDCoHJldHVybiAyOworwqDCoMKgwqDCoMKgwqDCoHJldHVybiBFWElU X0ZBSUxVUkU7CsKgwqDCoMKgwqB9CsKgCsKgwqDCoMKgwqBzaGFyaW5nKGluZm8sIG5iX2RvbWFp bik7CkBAIC02MTYxLDcgKzYxNjYsNyBAQCBpbnQgbWFpbl9zaGFyaW5nKGludCBhcmdjLCBjaGFy ICoqYXJndikKwqDCoMKgwqDCoGVsc2UKwqDCoMKgwqDCoMKgwqDCoMKgbGlieGxfZG9taW5mb19k aXNwb3NlKGluZm8pOwrCoAotwqDCoMKgwqByZXR1cm4gMDsKK8KgwqDCoMKgcmV0dXJuIEVYSVRf U1VDQ0VTUzsKwqB9CsKgCsKgc3RhdGljIGludCBzY2hlZF9kb21haW5fZ2V0KGxpYnhsX3NjaGVk dWxlciBzY2hlZCwgaW50IGRvbWlkLAotLSAKPDxUaGlzIGhhcHBlbnMgYmVjYXVzZSBJIGNob29z ZSBpdCB0byBoYXBwZW4hPj4gKFJhaXN0bGluIE1hamVyZSkKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRGFyaW8gRmFnZ2lv bGksIFBoLkQsIGh0dHA6Ly9hYm91dC5tZS9kYXJpby5mYWdnaW9saQpTZW5pb3IgU29mdHdhcmUg RW5naW5lZXIsIENpdHJpeCBTeXN0ZW1zIFImRCBMdGQuLCBDYW1icmlkZ2UgKFVLKQoK --=-pp9pyDa310Fkrj8zp3yY Content-Disposition: attachment; filename="xl-exit-memory-functions.patch" Content-Type: text/x-patch; name="xl-exit-memory-functions.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 Y29tbWl0IDQzNTg2MjIyMDg0NjM4ZWM5OGI2OTM3MDIxMzJmMzQxMmE2M2RkZGEKQXV0aG9yOiBI YXJtYW5kZWVwIEthdXIgPHdyaXRlLmhhcm1hbmRlZXBAZ21haWwuY29tPgpEYXRlOiAgIFRodSBB cHIgNyAxMjozODowOSAyMDE2ICswMjAwCgogICAgeGw6IGltcHJvdmUgcmV0dXJuIGFuZCBleGl0 IGNvZGVzIG9mIG1lbW9yeSByZWxhdGVkIGZ1bmN0aW9ucwogICAgCiAgICBieSBtYWtpbmcgdGhl bSBtb3JlIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBleGFtcGxlcyBpbiB4bC4KICAgIAogICAgV2hp bGUgdGhlcmUsIG1ha2UgZnJlZW1lbSgpIG9mIGJvb2xlYW4gcmV0dXJuIHR5cGUsIHdoaWNoCiAg ICBsb29rcyBtb3JlIG5hdHVyYWwsIGFuZCBhZGQgY29tbWVudCBleHBsYWluaW5nIHdoeQogICAg cGFyc2VfbWVtX3NpemVfa2IoKSBuZWVkcyB0byBkaXZlcmdlIGZyb20gdGhlIHBhdHRlcm4uCiAg ICAKICAgIFNpZ25lZC1vZmYtYnk6IEhhcm1hbmRlZXAgS2F1ciA8d3JpdGUuaGFybWFuZGVlcEBn bWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXJpbyBGYWdnaW9saSA8ZGFyaW8uZmFnZ2lv bGlAY2l0cml4LmNvbT4KICAgIC0tLQogICAgQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBl dS5jaXRyaXguY29tPgogICAgQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CiAgICBD YzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgogICAgLS0tCiAgICB2 NDogbWFrZSBzZXRfbWVtb3J5X21heCgpIGFuZCBzZXRfbWVtb3J5X3RhcmdldCgpIG1vcmUKICAg ICAgICBjb25zaXN0ZW50LgogICAgCiAgICB2MzogU2hvcnRlbiBjaGFuZ2Vsb2cuCiAgICAgICAg TWFrZSBmcmVlbWVtKCkgYm9vbGVhbiByZXR1cm4gdHlwZS4KICAgIAogICAgdjI6IEFkZCBjb21t ZW50IHRvIGV4cGxhaW4gcmV0dXJuIHZhdWxlIG9mIHBhcnNlX21lbV9zaXplX2tiKCkuCiAgICAg ICAgQWRkIGZyZWVtZW0oKSBhbmQgbWFpbl9zaGFyaW5nKCkuCiAgICAgICAgUmVtb3ZlIGZpbmRf ZG9tYWluKCkuCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jIGIvdG9vbHMv bGlieGwveGxfY21kaW1wbC5jCmluZGV4IDJlZTZjNzQuLmVhYjJhYmQgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL3hsX2NtZGltcGwuYworKysgYi90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKQEAg LTI2ODAsNDAgKzI2ODAsNDUgQEAgc3RhdGljIGludCBwcmVzZXJ2ZV9kb21haW4odWludDMyX3Qg KnJfZG9taWQsIGxpYnhsX2V2ZW50ICpldmVudCwKICAgICByZXR1cm4gcmMgPT0gMCA/IDEgOiAw OwogfQogCi1zdGF0aWMgaW50IGZyZWVtZW0odWludDMyX3QgZG9taWQsIGxpYnhsX2RvbWFpbl9i dWlsZF9pbmZvICpiX2luZm8pCisvKgorICogUmV0dXJucyBmYWxzZSBpZiBtZW1vcnkgY2FuJ3Qg YmUgZnJlZWQsIGJ1dCBhbHNvIGlmIHdlIGVuY291bnRlciBlcnJvcnMuCisgKiBSZXR1cm5zIHRy dWUgaW4gY2FzZSB0aGVyZSBpcyBhbHJlYWR5LCBvciB3ZSBtYW5hZ2UgdG8gZnJlZSBpdCwgZW5v dWdoCisgKiBtZW1vcnksIGJ1dCBhbHNvIGlmIGF1dG9iYWxsb29uIGlzIGZhbHNlLgorICovCitz dGF0aWMgYm9vbCBmcmVlbWVtKHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kb21haW5fYnVpbGRfaW5m byAqYl9pbmZvKQogewogICAgIGludCByYywgcmV0cmllcyA9IDM7CiAgICAgdWludDMyX3QgbmVl ZF9tZW1rYiwgZnJlZV9tZW1rYjsKIAogICAgIGlmICghYXV0b2JhbGxvb24pCi0gICAgICAgIHJl dHVybiAwOworICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJjID0gbGlieGxfZG9tYWluX25l ZWRfbWVtb3J5KGN0eCwgYl9pbmZvLCAmbmVlZF9tZW1rYik7CiAgICAgaWYgKHJjIDwgMCkKLSAg ICAgICAgcmV0dXJuIHJjOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBkbyB7CiAgICAg ICAgIHJjID0gbGlieGxfZ2V0X2ZyZWVfbWVtb3J5KGN0eCwgJmZyZWVfbWVta2IpOwogICAgICAg ICBpZiAocmMgPCAwKQotICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICAgICAgcmV0dXJu IGZhbHNlOwogCiAgICAgICAgIGlmIChmcmVlX21lbWtiID49IG5lZWRfbWVta2IpCi0gICAgICAg ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIHJjID0g bGlieGxfc2V0X21lbW9yeV90YXJnZXQoY3R4LCAwLCBmcmVlX21lbWtiIC0gbmVlZF9tZW1rYiwg MSwgMCk7CiAgICAgICAgIGlmIChyYyA8IDApCi0gICAgICAgICAgICByZXR1cm4gcmM7CisgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLyogd2FpdCB1bnRpbCBkb20wIHJlYWNo ZXMgaXRzIHRhcmdldCwgYXMgbG9uZyBhcyB3ZSBhcmUgbWFraW5nCiAgICAgICAgICAqIHByb2dy ZXNzICovCiAgICAgICAgIHJjID0gbGlieGxfd2FpdF9mb3JfbWVtb3J5X3RhcmdldChjdHgsIDAs IDEwKTsKICAgICAgICAgaWYgKHJjIDwgMCkKLSAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICByZXRyaWVzLS07CiAgICAgfSB3aGlsZSAo cmV0cmllcyA+IDApOwogCi0gICAgcmV0dXJuIEVSUk9SX05PTUVNOworICAgIHJldHVybiBmYWxz ZTsKIH0KIAogc3RhdGljIHZvaWQgYXV0b2Nvbm5lY3RfY29uc29sZShsaWJ4bF9jdHggKmN0eF9p Z25vcmVkLApAQCAtMjk4MCw4ICsyOTg1LDcgQEAgc3RhcnQ6CiAgICAgICAgIGdvdG8gZXJyb3Jf b3V0OwogCiAgICAgaWYgKGRvbWlkX3NvZnRfcmVzZXQgPT0gSU5WQUxJRF9ET01JRCkgewotICAg ICAgICByZXQgPSBmcmVlbWVtKGRvbWlkLCAmZF9jb25maWcuYl9pbmZvKTsKLSAgICAgICAgaWYg KHJldCA8IDApIHsKKyAgICAgICAgaWYgKCFmcmVlbWVtKGRvbWlkLCAmZF9jb25maWcuYl9pbmZv KSkgewogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gZnJlZSBtZW1vcnkg Zm9yIHRoZSBkb21haW5cbiIpOwogICAgICAgICAgICAgcmV0ID0gRVJST1JfRkFJTDsKICAgICAg ICAgICAgIGdvdG8gZXJyb3Jfb3V0OwpAQCAtMzI0NSw2ICszMjQ5LDcgQEAgdm9pZCBoZWxwKGNv bnN0IGNoYXIgKmNvbW1hbmQpCiAgICAgfQogfQogCisvKiBSZXR1cm5zIC0xIG9uIGZhaWx1cmU7 IHRoZSBhbW91bnQgb2YgbWVtb3J5IG9uIHN1Y2Nlc3MuICovCiBzdGF0aWMgaW50NjRfdCBwYXJz ZV9tZW1fc2l6ZV9rYihjb25zdCBjaGFyICptZW0pCiB7CiAgICAgY2hhciAqZW5kcHRyOwpAQCAt MzM5MSw3ICszMzk2LDcgQEAgc3RhdGljIGludCBzZXRfbWVtb3J5X21heCh1aW50MzJfdCBkb21p ZCwgY29uc3QgY2hhciAqbWVtKQogICAgIG1lbW9yeWtiID0gcGFyc2VfbWVtX3NpemVfa2IobWVt KTsKICAgICBpZiAobWVtb3J5a2IgPT0gLTEpIHsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJp bnZhbGlkIG1lbW9yeSBzaXplOiAlc1xuIiwgbWVtKTsKLSAgICAgICAgZXhpdCgzKTsKKyAgICAg ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICB9CiAKICAgICBpZiAobGlieGxfZG9tYWluX3Nl dG1heG1lbShjdHgsIGRvbWlkLCBtZW1vcnlrYikpIHsKQEAgLTM0MjUsNyArMzQzMCw3IEBAIHN0 YXRpYyBpbnQgc2V0X21lbW9yeV90YXJnZXQodWludDMyX3QgZG9taWQsIGNvbnN0IGNoYXIgKm1l bSkKICAgICBtZW1vcnlrYiA9IHBhcnNlX21lbV9zaXplX2tiKG1lbSk7CiAgICAgaWYgKG1lbW9y eWtiID09IC0xKSAgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImludmFsaWQgbWVtb3J5IHNp emU6ICVzXG4iLCBtZW0pOwotICAgICAgICBleGl0KDMpOworICAgICAgICByZXR1cm4gRVhJVF9G QUlMVVJFOwogICAgIH0KIAogICAgIGlmIChsaWJ4bF9zZXRfbWVtb3J5X3RhcmdldChjdHgsIGRv bWlkLCBtZW1vcnlrYiwgMCwgLyogZW5mb3JjZSAqLyAxKSkgewpAQCAtNjEzMiw3ICs2MTM3LDcg QEAgaW50IG1haW5fc2hhcmluZyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIGluZm8g PSBsaWJ4bF9saXN0X2RvbWFpbihjdHgsICZuYl9kb21haW4pOwogICAgICAgICBpZiAoIWluZm8p IHsKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAibGlieGxfbGlzdF9kb21haW4gZmFpbGVk LlxuIik7Ci0gICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIHJldHVybiBFWElUX0ZB SUxVUkU7CiAgICAgICAgIH0KICAgICAgICAgaW5mb19mcmVlID0gaW5mbzsKICAgICB9IGVsc2Ug aWYgKG9wdGluZCA9PSBhcmdjLTEpIHsKQEAgLTYxNDEsMTcgKzYxNDYsMTcgQEAgaW50IG1haW5f c2hhcmluZyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIGlmIChyYyA9PSBFUlJPUl9E T01BSU5fTk9URk9VTkQpIHsKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6IERv bWFpbiBcJyVzXCcgZG9lcyBub3QgZXhpc3QuXG4iLAogICAgICAgICAgICAgICAgIGFyZ3Zbb3B0 aW5kXSk7Ci0gICAgICAgICAgICByZXR1cm4gLXJjOworICAgICAgICAgICAgcmV0dXJuIEVYSVRf RkFJTFVSRTsKICAgICAgICAgfQogICAgICAgICBpZiAocmMpIHsKICAgICAgICAgICAgIGZwcmlu dGYoc3RkZXJyLCAibGlieGxfZG9tYWluX2luZm8gZmFpbGVkIChjb2RlICVkKS5cbiIsIHJjKTsK LSAgICAgICAgICAgIHJldHVybiAtcmM7CisgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJF OwogICAgICAgICB9CiAgICAgICAgIGluZm8gPSAmaW5mb19idWY7CiAgICAgICAgIG5iX2RvbWFp biA9IDE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaGVscCgic2hhcmluZyIpOwotICAgICAgICBy ZXR1cm4gMjsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICB9CiAKICAgICBzaGFy aW5nKGluZm8sIG5iX2RvbWFpbik7CkBAIC02MTYxLDcgKzYxNjYsNyBAQCBpbnQgbWFpbl9zaGFy aW5nKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBlbHNlCiAgICAgICAgIGxpYnhsX2RvbWlu Zm9fZGlzcG9zZShpbmZvKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBFWElUX1NVQ0NF U1M7CiB9CiAKIHN0YXRpYyBpbnQgc2NoZWRfZG9tYWluX2dldChsaWJ4bF9zY2hlZHVsZXIgc2No ZWQsIGludCBkb21pZCwK --=-pp9pyDa310Fkrj8zp3yY-- --=-ZL1Zu6pLXP3pLW3lhLK8 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlcHgKoACgkQk4XaBE3IOsRwYgCfU7go0ImZV+P5VHhpOy27Zuit b4EAn1m2lJpLc8ZAE/Hr90kJNQs6034j =BCOn -----END PGP SIGNATURE----- --=-ZL1Zu6pLXP3pLW3lhLK8-- --===============9095900308453451331== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK --===============9095900308453451331==--