From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [PATCH 3/8] libelf: loop safety: Call elf_iter_ok[_counted] in every loop Date: Fri, 9 Dec 2016 15:44:44 +0000 Message-ID: <1481298289-13546-4-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 SW4gZXZlcnkgYGZvcicgb3IgYHdoaWxlJyBsb29wLCBlaXRoZXIgY2FsbCBlbGZfaXRlcl9vaywg b3IgZXhwbGFpbgp3aHkgaXQncyBub3QgbmVjZXNzYXJ5LiAgVGhpcyBpcyBwYXJ0IG9mIGNvbXBy ZWhlbnNpdmUgZGVmZW5jZSBhZ2FpbnN0Cm91dCBvZiBjb250cm9sIGxvb3BzLgoKU2lnbmVkLW9m Zi1ieTogSWFuIEphY2tzb24gPElhbi5KYWNrc29uQGV1LmNpdHJpeC5jb20+Ci0tLQogeGVuL2Nv bW1vbi9saWJlbGYvbGliZWxmLWRvbWluZm8uYyB8IDIyICsrKysrKysrKysrKystLS0tLS0tLS0K IHhlbi9jb21tb24vbGliZWxmL2xpYmVsZi1sb2FkZXIuYyAgfCAgOCArKysrLS0tLQogeGVuL2Nv bW1vbi9saWJlbGYvbGliZWxmLXRvb2xzLmMgICB8ICA2ICsrKy0tLQogMyBmaWxlcyBjaGFuZ2Vk LCAyMCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL2xpYmVsZi9saWJlbGYtZG9taW5mby5jIGIveGVuL2NvbW1vbi9saWJlbGYvbGliZWxmLWRv bWluZm8uYwppbmRleCA3ZjRhNmEwLi5iMTM5ZTMyIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2xp YmVsZi9saWJlbGYtZG9taW5mby5jCisrKyBiL3hlbi9jb21tb24vbGliZWxmL2xpYmVsZi1kb21p bmZvLmMKQEAgLTQzLDEwICs0MywxMyBAQCBlbGZfZXJyb3JzdGF0dXMgZWxmX3hlbl9wYXJzZV9m ZWF0dXJlcyhzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLAogICAgIGlmICggZmVhdHVyZXMgPT0gTlVM TCApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgZm9yICggcG9zID0gMDsgZmVhdHVyZXNbcG9z XSAhPSAnXDAnOyBwb3MgKz0gbGVuICkKKyAgICBmb3IgKCBwb3MgPSAwOworICAgICAgICAgIGVs Zl9pdGVyX29rX2NvdW50ZWQoZWxmLCBzaXplb2YoZmVhdHVyZSkpICYmCisgICAgICAgICAgICAg IGZlYXR1cmVzW3Bvc10gIT0gJ1wwJzsKKyAgICAgICAgICBwb3MgKz0gbGVuICkKICAgICB7CiAg ICAgICAgIGVsZl9tZW1zZXRfdW5jaGVja2VkKGZlYXR1cmUsIDAsIHNpemVvZihmZWF0dXJlKSk7 Ci0gICAgICAgIGZvciAoIGxlbiA9IDA7OyBsZW4rKyApCisgICAgICAgIGZvciAoIGxlbiA9IDA7 OyBsZW4rKyApIC8qIGNhbid0IGRvIG1vcmUgdGhhbiBzaXplb2YoZmVhdHVyZSkgKi8KICAgICAg ICAgewogICAgICAgICAgICAgaWYgKCBsZW4gPj0gc2l6ZW9mKGZlYXR1cmUpLTEgKQogICAgICAg ICAgICAgICAgIGJyZWFrOwpAQCAtNjAsNyArNjMsNyBAQCBlbGZfZXJyb3JzdGF0dXMgZWxmX3hl bl9wYXJzZV9mZWF0dXJlcyhzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLAogICAgICAgICAgICAgZmVh dHVyZVtsZW5dID0gZmVhdHVyZXNbcG9zICsgbGVuXTsKICAgICAgICAgfQogCi0gICAgICAgIGZv ciAoIGkgPSAwOyBpIDwgZWxmX3hlbl9mZWF0dXJlczsgaSsrICkKKyAgICAgICAgZm9yICggaSA9 IDA7IGVsZl9pdGVyX29rKGVsZikgJiYgaSA8IGVsZl94ZW5fZmVhdHVyZXM7IGkrKyApCiAgICAg ICAgIHsKICAgICAgICAgICAgIGlmICggIWVsZl94ZW5fZmVhdHVyZV9uYW1lc1tpXSApCiAgICAg ICAgICAgICAgICAgY29udGludWU7CkBAIC0yMzYsNyArMjM5LDcgQEAgc3RhdGljIHVuc2lnbmVk IGVsZl94ZW5fcGFyc2Vfbm90ZXMoc3RydWN0IGVsZl9iaW5hcnkgKmVsZiwKICAgICBwYXJtcy0+ ZWxmX25vdGVfc3RhcnQgPSBzdGFydDsKICAgICBwYXJtcy0+ZWxmX25vdGVfZW5kICAgPSBlbmQ7 CiAgICAgZm9yICggbm90ZSA9IEVMRl9NQUtFX0hBTkRMRShlbGZfbm90ZSwgcGFybXMtPmVsZl9u b3RlX3N0YXJ0KTsKLSAgICAgICAgICBFTEZfSEFORExFX1BUUlZBTChub3RlKSA8IHBhcm1zLT5l bGZfbm90ZV9lbmQ7CisgICAgICAgICAgZWxmX2l0ZXJfb2soZWxmKSAmJiBFTEZfSEFORExFX1BU UlZBTChub3RlKSA8IHBhcm1zLT5lbGZfbm90ZV9lbmQ7CiAgICAgICAgICAgbm90ZSA9IGVsZl9u b3RlX25leHQoZWxmLCBub3RlKSApCiAgICAgewogI2lmZGVmIF9fWEVOX18KQEAgLTI3MywxMSAr Mjc2LDEyIEBAIGVsZl9lcnJvcnN0YXR1cyBlbGZfeGVuX3BhcnNlX2d1ZXN0X2luZm8oc3RydWN0 IGVsZl9iaW5hcnkgKmVsZiwKIAogICAgIGggPSBwYXJtcy0+Z3Vlc3RfaW5mbzsKICNkZWZpbmUg U1RBUihoKSAoZWxmX2FjY2Vzc191bnNpZ25lZChlbGYsIChoKSwgMCwgMSkpCi0gICAgd2hpbGUg KCBTVEFSKGgpICkKKyAgICB3aGlsZSAoIGVsZl9pdGVyX29rX2NvdW50ZWQoZWxmLCBzaXplb2Yo bmFtZSkgKyBzaXplb2YodmFsdWUpKSAmJgorICAgICAgICAgICAgU1RBUihoKSApCiAgICAgewog ICAgICAgICBlbGZfbWVtc2V0X3VuY2hlY2tlZChuYW1lLCAwLCBzaXplb2YobmFtZSkpOwogICAg ICAgICBlbGZfbWVtc2V0X3VuY2hlY2tlZCh2YWx1ZSwgMCwgc2l6ZW9mKHZhbHVlKSk7Ci0gICAg ICAgIGZvciAoIGxlbiA9IDA7OyBsZW4rKywgaCsrICkKKyAgICAgICAgZm9yICggbGVuID0gMDs7 IGxlbisrLCBoKysgKSAvKiBjb3ZlcmVkIGJ5IGl0ZXJfb2tfY291bnRlZCBhYm92ZSAqLwogICAg ICAgICB7CiAgICAgICAgICAgICBpZiAoIGxlbiA+PSBzaXplb2YobmFtZSktMSApCiAgICAgICAg ICAgICAgICAgYnJlYWs7CkBAIC0yOTEsNyArMjk1LDcgQEAgZWxmX2Vycm9yc3RhdHVzIGVsZl94 ZW5fcGFyc2VfZ3Vlc3RfaW5mbyhzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLAogICAgICAgICAgICAg aWYgKCBTVEFSKGgpID09ICc9JyApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaCsr OwotICAgICAgICAgICAgICAgIGZvciAoIGxlbiA9IDA7OyBsZW4rKywgaCsrICkKKyAgICAgICAg ICAgICAgICBmb3IgKCBsZW4gPSAwOzsgbGVuKyssIGgrKyApIC8qIGNvdmVyZWQgYnkgaXRlcl9v a19jb3VudGVkICovCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpZiAo IGxlbiA+PSBzaXplb2YodmFsdWUpLTEgKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CkBAIC01MDQsNyArNTA4LDcgQEAgZWxmX2Vycm9yc3RhdHVzIGVsZl94ZW5fcGFyc2Uoc3RydWN0 IGVsZl9iaW5hcnkgKmVsZiwKIAogICAgIC8qIEZpbmQgYW5kIHBhcnNlIGVsZiBub3Rlcy4gKi8K ICAgICBjb3VudCA9IGVsZl9waGRyX2NvdW50KGVsZik7Ci0gICAgZm9yICggaSA9IDA7IGkgPCBj b3VudDsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgZWxmX2l0ZXJfb2soZWxmKSAmJiBpIDwgY291 bnQ7IGkrKyApCiAgICAgewogICAgICAgICBwaGRyID0gZWxmX3BoZHJfYnlfaW5kZXgoZWxmLCBp KTsKICAgICAgICAgaWYgKCAhZWxmX2FjY2Vzc19vayhlbGYsIEVMRl9IQU5ETEVfUFRSVkFMKHBo ZHIpLCAxKSApCkBAIC01MzcsNyArNTQxLDcgQEAgZWxmX2Vycm9yc3RhdHVzIGVsZl94ZW5fcGFy c2Uoc3RydWN0IGVsZl9iaW5hcnkgKmVsZiwKICAgICBpZiAoIHhlbl9lbGZub3RlcyA9PSAwICkK ICAgICB7CiAgICAgICAgIGNvdW50ID0gZWxmX3NoZHJfY291bnQoZWxmKTsKLSAgICAgICAgZm9y ICggaSA9IDE7IGkgPCBjb3VudDsgaSsrICkKKyAgICAgICAgZm9yICggaSA9IDE7IGVsZl9pdGVy X29rKGVsZikgJiYgaSA8IGNvdW50OyBpKysgKQogICAgICAgICB7CiAgICAgICAgICAgICBzaGRy ID0gZWxmX3NoZHJfYnlfaW5kZXgoZWxmLCBpKTsKICAgICAgICAgICAgIGlmICggIWVsZl9hY2Nl c3Nfb2soZWxmLCBFTEZfSEFORExFX1BUUlZBTChzaGRyKSwgMSkgKQpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9saWJlbGYvbGliZWxmLWxvYWRlci5jIGIveGVuL2NvbW1vbi9saWJlbGYvbGliZWxm LWxvYWRlci5jCmluZGV4IDAwNDc5YWYuLjY4YzkwMjEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v bGliZWxmL2xpYmVsZi1sb2FkZXIuYworKysgYi94ZW4vY29tbW9uL2xpYmVsZi9saWJlbGYtbG9h ZGVyLmMKQEAgLTg1LDcgKzg1LDcgQEAgZWxmX2Vycm9yc3RhdHVzIGVsZl9pbml0KHN0cnVjdCBl bGZfYmluYXJ5ICplbGYsIGNvbnN0IGNoYXIgKmltYWdlX2lucHV0LCBzaXplX3QKIAogICAgIC8q IEZpbmQgc3ltYm9sIHRhYmxlIGFuZCBzeW1ib2wgc3RyaW5nIHRhYmxlLiAqLwogICAgIGNvdW50 ID0gZWxmX3NoZHJfY291bnQoZWxmKTsKLSAgICBmb3IgKCBpID0gMTsgaSA8IGNvdW50OyBpKysg KQorICAgIGZvciAoIGkgPSAxOyBlbGZfaXRlcl9vayhlbGYpICYmIGkgPCBjb3VudDsgaSsrICkK ICAgICB7CiAgICAgICAgIHNoZHIgPSBlbGZfc2hkcl9ieV9pbmRleChlbGYsIGkpOwogICAgICAg ICBpZiAoICFlbGZfYWNjZXNzX29rKGVsZiwgRUxGX0hBTkRMRV9QVFJWQUwoc2hkciksIDEpICkK QEAgLTQyNSw3ICs0MjUsNyBAQCBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKiBOQjogdGhpcyBfbXVzdF8g YmUgZG9uZSBvbmUgYnkgb25lLCBhbmQgdGFraW5nIHRoZSBiaXRuZXNzIGludG8gYWNjb3VudCwK ICAgICAgKiBzbyB0aGF0IHRoZSBndWVzdCBjYW4gdHJlYXQgdGhpcyBhcyBhbiBhcnJheSBvZiB0 eXBlIEVsZnszMi82NH1fU2hkci4KICAgICAgKi8KLSAgICBmb3IgKCBpID0gMDsgaSA8IEVMRl9C U0RTWU1fU0VDVElPTlM7IGkrKyApCisgICAgZm9yICggaSA9IDA7IGVsZl9pdGVyX29rKGVsZikg JiYgaSA8IEVMRl9CU0RTWU1fU0VDVElPTlM7IGkrKyApCiAgICAgewogICAgICAgICByYyA9IGVs Zl9sb2FkX2ltYWdlKGVsZiwgaGVhZGVyX2Jhc2UgKyBoZWFkZXJfc2l6ZSArIHNoZHJfc2l6ZSAq IGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxGX1JFQUxQVFIyUFRSVkFMKCZoZWFk ZXIuZWxmX2hlYWRlci5zZWN0aW9uW2ldKSwKQEAgLTQ1Myw3ICs0NTMsNyBAQCB2b2lkIGVsZl9w YXJzZV9iaW5hcnkoc3RydWN0IGVsZl9iaW5hcnkgKmVsZikKICAgICB1bnNpZ25lZCBpLCBjb3Vu dDsKIAogICAgIGNvdW50ID0gZWxmX3BoZHJfY291bnQoZWxmKTsKLSAgICBmb3IgKCBpID0gMDsg aSA8IGNvdW50OyBpKysgKQorICAgIGZvciAoIGkgPSAwOyBlbGZfaXRlcl9vayhlbGYpICYmIGkg PCBjb3VudDsgaSsrICkKICAgICB7CiAgICAgICAgIHBoZHIgPSBlbGZfcGhkcl9ieV9pbmRleChl bGYsIGkpOwogICAgICAgICBpZiAoICFlbGZfYWNjZXNzX29rKGVsZiwgRUxGX0hBTkRMRV9QVFJW QUwocGhkciksIDEpICkKQEAgLTQ5MCw3ICs0OTAsNyBAQCBlbGZfZXJyb3JzdGF0dXMgZWxmX2xv YWRfYmluYXJ5KHN0cnVjdCBlbGZfYmluYXJ5ICplbGYpCiAgICAgdWludDY0X3QgcmVtYWluX2Fs bG93X2NvcHkgPSAodWludDY0X3QpZWxmLT5kZXN0X3NpemUgKiAyOwogCiAgICAgY291bnQgPSBl bGZfcGhkcl9jb3VudChlbGYpOwotICAgIGZvciAoIGkgPSAwOyBpIDwgY291bnQ7IGkrKyApCisg ICAgZm9yICggaSA9IDA7IGVsZl9pdGVyX29rKGVsZikgJiYgaSA8IGNvdW50OyBpKysgKQogICAg IHsKICAgICAgICAgcGhkciA9IGVsZl9waGRyX2J5X2luZGV4KGVsZiwgaSk7CiAgICAgICAgIGlm ICggIWVsZl9hY2Nlc3Nfb2soZWxmLCBFTEZfSEFORExFX1BUUlZBTChwaGRyKSwgMSkgKQpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9saWJlbGYvbGliZWxmLXRvb2xzLmMgYi94ZW4vY29tbW9uL2xp YmVsZi9saWJlbGYtdG9vbHMuYwppbmRleCBhOWVkYjZhLi41NmRhYjYzIDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL2xpYmVsZi9saWJlbGYtdG9vbHMuYworKysgYi94ZW4vY29tbW9uL2xpYmVsZi9s aWJlbGYtdG9vbHMuYwpAQCAtMTUzLDcgKzE1Myw3IEBAIEVMRl9IQU5ETEVfREVDTChlbGZfc2hk cikgZWxmX3NoZHJfYnlfbmFtZShzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLCBjb25zdCBjaGFyICpu CiAgICAgRUxGX0hBTkRMRV9ERUNMKGVsZl9zaGRyKSBzaGRyOwogICAgIGNvbnN0IGNoYXIgKnNu YW1lOwogCi0gICAgZm9yICggaSA9IDE7IGkgPCBjb3VudDsgaSsrICkKKyAgICBmb3IgKCBpID0g MTsgZWxmX2l0ZXJfb2soZWxmKSAmJiBpIDwgY291bnQ7IGkrKyApCiAgICAgewogICAgICAgICBz aGRyID0gZWxmX3NoZHJfYnlfaW5kZXgoZWxmLCBpKTsKICAgICAgICAgaWYgKCAhZWxmX2FjY2Vz c19vayhlbGYsIEVMRl9IQU5ETEVfUFRSVkFMKHNoZHIpLCAxKSApCkBAIC0yMTQsNyArMjE0LDcg QEAgY29uc3QgY2hhciAqZWxmX3N0cnZhbChzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLCBlbGZfcHRy dmFsIHN0YXJ0KQogICAgICAgICBpZiAoICFlbGZfYWNjZXNzX3Vuc2lnbmVkKGVsZiwgc3RhcnQs IGxlbmd0aCwgMSkgKQogICAgICAgICAgICAgLyogb2sgKi8KICAgICAgICAgICAgIHJldHVybiBF TEZfVU5TQUZFX1BUUihzdGFydCk7Ci0gICAgICAgIGlmICggbGVuZ3RoID49IEVMRl9NQVhfU1RS SU5HX0xFTkdUSCApCisgICAgICAgIGlmICggIWVsZl9pdGVyX29rKGVsZikgfHwgbGVuZ3RoID49 IEVMRl9NQVhfU1RSSU5HX0xFTkdUSCApCiAgICAgICAgIHsKICAgICAgICAgICAgIGVsZl9tYXJr X2Jyb2tlbihlbGYsICJleGNlc3NpdmVseSBsb25nIHN0cmluZyIpOwogICAgICAgICAgICAgcmV0 dXJuIE5VTEw7CkBAIC0yNjIsNyArMjYyLDcgQEAgRUxGX0hBTkRMRV9ERUNMKGVsZl9zeW0pIGVs Zl9zeW1fYnlfbmFtZShzdHJ1Y3QgZWxmX2JpbmFyeSAqZWxmLCBjb25zdCBjaGFyICpzeW0KICAg ICB1aW50NjRfdCBpbmZvLCBuYW1lOwogICAgIGNvbnN0IGNoYXIgKnN5bV9uYW1lOwogCi0gICAg Zm9yICggOyBwdHIgPCBlbmQ7IHB0ciArPSBlbGZfc2l6ZShlbGYsIHN5bSkgKQorICAgIGZvciAo IDsgZWxmX2l0ZXJfb2soZWxmKSAmJiBwdHIgPCBlbmQ7IHB0ciArPSBlbGZfc2l6ZShlbGYsIHN5 bSkgKQogICAgIHsKICAgICAgICAgc3ltID0gRUxGX01BS0VfSEFORExFKGVsZl9zeW0sIHB0cik7 CiAgICAgICAgIGluZm8gPSBlbGZfdXZhbChlbGYsIHN5bSwgc3RfaW5mbyk7Ci0tIAoyLjEuNAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=