From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [PATCH 1/8] libelf: loop safety: Introduce elf_iter_ok and elf_strcmp_safe Date: Fri, 9 Dec 2016 15:44:42 +0000 Message-ID: <1481298289-13546-2-git-send-email-ian.jackson@eu.citrix.com> References: <22602.39819.815607.194639@mariner.uk.xensource.com> <1481298289-13546-1-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1481298289-13546-1-git-send-email-ian.jackson@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhpcyB3aWxsIGFsbG93IHVzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRvdGFsIGFtb3VudCBvZiB3 b3JrIHdlIGFyZQpkb2luZy4gIFdoZW4gaXQgYmVjb21lcyBleGNlc3NpdmUsIHdlIG1hcmsgdGhl IEVMRiBicm9rZW4sIGFuZCBzdG9wCnByb2Nlc3NpbmcuCgpUaGlzIGlzIGEgbW9yZSByb2J1c3Qg d2F5IG9mIHByZXZlbnRpbmcgRG9TIHByb2JsZW1zIGJ5IGJhZCBpbWFnZXMKdGhhbiBhdHRlbXB0 aW5nIHRvIHByb3ZlLCBmb3IgZWFjaCBvZiB0aGUgKHNvbWV0aW1lcyByYXRoZXIgZGVlcGx5Cm5l c3RlZCkgbG9vcHMsIHRoYXQgdGhlIHRvdGFsIHdvcmsgaXMgInJlYXNvbmFibGUiLiAgV2UgYm91 bmQgdGhlCm5vdGlvbmFsIHdvcmsgYnkgNHggdGhlIGltYWdlIHNpemUgKHBsdXMgMU0pLgoKQWxz byBpbnRyb2R1Y2UgZWxmX3N0cmNtcF9zYWZlLCB3aGljaCB1bmNvbmRpdGlvbmFsbHkgZG9lcyB0 aGUgd29yaywKYnV0IGluY3JlbWVudHMgdGhlIGNvdW50IHNvIGFueSBvdXRlciBsb29wIG1heSBi ZSBhYm9ydGVkIGlmCm5lY2Vzc2FyeS4KCkN1cnJlbnRseSB0aGVyZSBhcmUgbm8gY2FsbGVycywg c28gbm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBJYW4gSmFja3NvbiA8SWFu LkphY2tzb25AZXUuY2l0cml4LmNvbT4KLS0tCiB4ZW4vY29tbW9uL2xpYmVsZi9saWJlbGYtbG9h ZGVyLmMgfCAxNCArKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUveGVuL2xpYmVsZi5oICAgICAg ICAgIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2xpYmVsZi9saWJlbGYtbG9hZGVyLmMg Yi94ZW4vY29tbW9uL2xpYmVsZi9saWJlbGYtbG9hZGVyLmMKaW5kZXggYTcyY2Q4YS4uMDA0Nzlh ZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9saWJlbGYvbGliZWxmLWxvYWRlci5jCisrKyBiL3hl bi9jb21tb24vbGliZWxmL2xpYmVsZi1sb2FkZXIuYwpAQCAtMzgsNiArMzgsNyBAQCBlbGZfZXJy b3JzdGF0dXMgZWxmX2luaXQoc3RydWN0IGVsZl9iaW5hcnkgKmVsZiwgY29uc3QgY2hhciAqaW1h Z2VfaW5wdXQsIHNpemVfdAogICAgIEVMRl9IQU5ETEVfREVDTChlbGZfc2hkcikgc2hkcjsKICAg ICB1bnNpZ25lZCBpLCBjb3VudCwgc2VjdGlvbiwgbGluazsKICAgICB1aW50NjRfdCBvZmZzZXQ7 CisgICAgY29uc3QgdWludDY0X3QgbWF4X3NpemVfZm9yX2RlYWNjID0gKDFVTCA8PCA2MykvRUxG X01BWF9JVEVSQVRJT05fRkFDVE9SOwogCiAgICAgaWYgKCAhZWxmX2lzX2VsZmJpbmFyeShpbWFn ZV9pbnB1dCwgc2l6ZSkgKQogICAgIHsKQEAgLTUyLDYgKzUzLDEwIEBAIGVsZl9lcnJvcnN0YXR1 cyBlbGZfaW5pdChzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLCBjb25zdCBjaGFyICppbWFnZV9pbnB1 dCwgc2l6ZV90CiAgICAgZWxmLT5jbGFzcyA9IGVsZl91dmFsXzMyNjQoZWxmLCBlbGYtPmVoZHIs IGUzMi5lX2lkZW50W0VJX0NMQVNTXSk7CiAgICAgZWxmLT5kYXRhID0gZWxmX3V2YWxfMzI2NChl bGYsIGVsZi0+ZWhkciwgZTMyLmVfaWRlbnRbRUlfREFUQV0pOwogCisgICAgZWxmLT5pdGVyYXRp b25fZGVhY2N1bXVsYXRvciA9IDEwMjQqMTAyNCArCisgICAgICAgIChzaXplID4gbWF4X3NpemVf Zm9yX2RlYWNjID8gbWF4X3NpemVfZm9yX2RlYWNjIDogc2l6ZSkKKyAgICAgICAgKiBFTEZfTUFY X0lURVJBVElPTl9GQUNUT1I7ICAgICAgICAKKwogICAgIC8qIFNhbml0eSBjaGVjayBwaGRyLiAq LwogICAgIG9mZnNldCA9IGVsZl91dmFsKGVsZiwgZWxmLT5laGRyLCBlX3Bob2ZmKSArCiAgICAg ICAgIGVsZl91dmFsKGVsZiwgZWxmLT5laGRyLCBlX3BoZW50c2l6ZSkgKiBlbGZfcGhkcl9jb3Vu dChlbGYpOwpAQCAtNTQ2LDYgKzU1MSwxNSBAQCB1aW50NjRfdCBlbGZfbG9va3VwX2FkZHIoc3Ry dWN0IGVsZl9iaW5hcnkgKiBlbGYsIGNvbnN0IGNoYXIgKnN5bWJvbCkKICAgICByZXR1cm4gdmFs dWU7CiB9CiAKK2Jvb2wgZWxmX2l0ZXJfb2tfY291bnRlZChzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxm LCB1aW50NjRfdCBtYXhjb3B5c3opIHsKKyAgICBpZiAobWF4Y29weXN6ID4gZWxmLT5pdGVyYXRp b25fZGVhY2N1bXVsYXRvcikKKyAgICAgICAgZWxmX21hcmtfYnJva2VuKGVsZiwgImV4Y2Vzc2l2 ZSBpdGVyYXRpb24gLSB0b28gbXVjaCB3b3JrIHRvIHBhcnNlIik7CisgICAgaWYgKGVsZi0+YnJv a2VuKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZWxmLT5pdGVyYXRpb25fZGVhY2N1bXVs YXRvciAtPSBtYXhjb3B5c3o7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIC8qCiAgKiBMb2NhbCB2 YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGliZWxm LmggYi94ZW4vaW5jbHVkZS94ZW4vbGliZWxmLmgKaW5kZXggMWI3NjNmMy4uMjk0MjMxYSAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2xpYmVsZi5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9s aWJlbGYuaApAQCAtNTYsNiArNTYsOCBAQCB0eXBlZGVmIHZvaWQgZWxmX2xvZ19jYWxsYmFjayhz dHJ1Y3QgZWxmX2JpbmFyeSosIHZvaWQgKmNhbGxlcl9kYXRhLAogI2RlZmluZSBFTEZfTUFYX1NU UklOR19MRU5HVEggNDA5NgogI2RlZmluZSBFTEZfTUFYX1RPVEFMX05PVEVfQ09VTlQgNjU1MzYK IAorI2RlZmluZSBFTEZfTUFYX0lURVJBVElPTl9GQUNUT1IgNAorCiAvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8KIAogLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGlucHV0IGltYWdlIGFuZCBvdXRw dXQgYXJlYS4gKi8KQEAgLTIwMSw2ICsyMDMsOSBAQCBzdHJ1Y3QgZWxmX2JpbmFyeSB7CiAgICAg dWludDY0X3QgYnNkX3N5bXRhYl9wc3RhcnQ7CiAgICAgdWludDY0X3QgYnNkX3N5bXRhYl9wZW5k OwogCisgICAgLyogcHJpdmF0ZSAqLworICAgIHVpbnQ2NF90IGl0ZXJhdGlvbl9kZWFjY3VtdWxh dG9yOworICAgIAogICAgIC8qCiAgICAgICogY2FsbGVyJ3Mgb3RoZXIgYWNjZXB0YWJsZSBkZXN0 aW5hdGlvbi4KICAgICAgKiBTZXQgYnkgZWxmX3NldF94ZGVzdC4gIERvIG5vdCBzZXQgdGhlc2Ug ZGlyZWN0bHkuCkBAIC0yNjQsNiArMjY5LDE0IEBAIHVpbnQ2NF90IGVsZl9hY2Nlc3NfdW5zaWdu ZWQoc3RydWN0IGVsZl9iaW5hcnkgKmVsZiwgZWxmX3B0cnZhbCBwdHIsCiAKIHVpbnQ2NF90IGVs Zl9yb3VuZF91cChzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLCB1aW50NjRfdCBhZGRyKTsKIAorYm9v bCBlbGZfaXRlcl9va19jb3VudGVkKHN0cnVjdCBlbGZfYmluYXJ5ICplbGYsIHVpbnQ2NF90IGNv dW50KTsKKyAgLyogSXQgaXMgT0sgZm9yIGNvdW50IHRvIGJlIG91dCBieSBhIHNtYWxsaXNoIGNv bnN0YW50IGZhY3Rvci4KKyAgICogSXQgaXMgT0sgZm9yIGNvdW50IHRvIGJlIDAsIGFzIHdlIGNs YW1wIGl0IHRvIDEsIHNvIHdlCisgICAqIGNhbiB1c2UgbGVuZ3RocyBvciBzaXplcyBmcm9tIHRo ZSBpbWFnZS4gKi8KKworc3RhdGljIGlubGluZSBib29sIGVsZl9pdGVyX29rKHN0cnVjdCBlbGZf YmluYXJ5ICplbGYpCisgICAgeyByZXR1cm4gZWxmX2l0ZXJfb2tfY291bnRlZChlbGYsMSk7IH0K KwogY29uc3QgY2hhciAqZWxmX3N0cnZhbChzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLCBlbGZfcHRy dmFsIHN0YXJ0KTsKICAgLyogbWF5IHJldHVybiBOVUxMIGlmIHRoZSBzdHJpbmcgaXMgb3V0IG9m IHJhbmdlIGV0Yy4gKi8KIApAQCAtNDYzLDYgKzQ3NiwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg KmVsZl9tZW1zZXRfdW5jaGVja2VkKHZvaWQgKnMsIGludCBjLCBzaXplX3QgbikKICAgICogbWVt Y3B5LCBtZW1zZXQgYW5kIG1lbW1vdmUgdG8gdW5kZWZpbmVkIE1JU1RBS0UgdGhpbmdzLgogICAg Ki8KIAorc3RhdGljIGlubGluZSBpbnQgZWxmX3N0cmNtcF9zYWZlKHN0cnVjdCBlbGZfYmluYXJ5 ICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYSwg Y29uc3QgY2hhciAqYikgeworICAgIGVsZl9pdGVyX29rX2NvdW50ZWQoZWxmLCBzdHJsZW4oYikp OworICAgIHJldHVybiBzdHJjbXAoYSxiKTsKK30KKyAgLyogVW5saWtlIG90aGVyICpfc2FmZSBm dW5jdGlvbnMsIGVsZl9zdHJjbXBfc2FmZSBpcyBjYWxsZWQgb24KKyAgICogdmFsdWVzIGFscmVh ZHkgZXh0cmFjdGVkIGZyb20gdGhlIGltYWdlIChlZyBieSBlbGZfc3RydmFsKSwKKyAgICogYW5k IGZpeGVkIGNvbnN0YW50IHN0cmluZ3MgKHR5cGljYWxseSwgdGhlIGxhdHRlciBpcyAiYiIpLiAq LwogCiAvKiBBZHZhbmNlcyBwYXN0IGFtb3VudCBieXRlcyBvZiB0aGUgY3VycmVudCBkZXN0aW5h dGlvbiBhcmVhLiAqLwogc3RhdGljIGlubGluZSB2b2lkIEVMRl9BRFZBTkNFX0RFU1Qoc3RydWN0 IGVsZl9iaW5hcnkgKmVsZiwgdWludDY0X3QgYW1vdW50KQotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK