From owner-freebsd-toolchain@freebsd.org Fri Jul 24 18:01:09 2015 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81B219AA85E for ; Fri, 24 Jul 2015 18:01:09 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) by mx1.freebsd.org (Postfix) with ESMTP id 67EA91F4D for ; Fri, 24 Jul 2015 18:01:09 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.isc.freebsd.org (Postfix, from userid 1346) id 57DB8F62D; Fri, 24 Jul 2015 18:01:09 +0000 (UTC) Date: Fri, 24 Jul 2015 18:01:09 +0000 To: freebsd-toolchain@freebsd.org From: "emaste (Ed Maste)" Reply-to: D2338+334+aa8d418be5da1de7@FreeBSD.org Subject: [Differential] [Closed] D2338: readelf: avoid division by zero for files with invalid sh_entsize Message-ID: <627afc60ec88d368400d3ad626d694d0@localhost.localdomain> X-Priority: 3 Thread-Topic: D2338: readelf: avoid division by zero for files with invalid sh_entsize X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: In-Reply-To: References: Thread-Index: ZmMzNDdkZjZhNjRlYTVmZjk2ZjhhYzllZGEwIFWyfWU= Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_627afc60ec88d368400d3ad626d694d0" X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Jul 2015 18:01:09 -0000 --b1_627afc60ec88d368400d3ad626d694d0 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit This revision was automatically updated to reflect the committed changes. Closed by commit rS285845: readelf: avoid division by zero on section entry size (authored by emaste). CHANGED PRIOR TO COMMIT https://reviews.freebsd.org/D2338?vs=7069&id=7269#toc REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D2338?vs=7069&id=7269 REVISION DETAIL https://reviews.freebsd.org/D2338 AFFECTED FILES head/contrib/elftoolchain/readelf/readelf.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: emaste, brooks Cc: brooks, freebsd-toolchain-list --b1_627afc60ec88d368400d3ad626d694d0 Content-Type: text/x-patch; charset=utf-8; name="D2338.7269.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D2338.7269.patch" ZGlmZiAtLWdpdCBhL2hlYWQvY29udHJpYi9lbGZ0b29sY2hhaW4vcmVhZGVsZi9yZWFkZWxmLmMg Yi9oZWFkL2NvbnRyaWIvZWxmdG9vbGNoYWluL3JlYWRlbGYvcmVhZGVsZi5jCi0tLSBhL2hlYWQv Y29udHJpYi9lbGZ0b29sY2hhaW4vcmVhZGVsZi9yZWFkZWxmLmMKKysrIGIvaGVhZC9jb250cmli L2VsZnRvb2xjaGFpbi9yZWFkZWxmL3JlYWRlbGYuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1 ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHN5cy9xdWV1ZS5oPgogI2luY2x1ZGUgPGFyLmg+ CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxkd2Fy Zi5oPgogI2luY2x1ZGUgPGVyci5oPgpAQCAtMzE0LDYgKzMxNSw3IEBACiBzdGF0aWMgY29uc3Qg Y2hhciAqZHdhcmZfcmVnbmFtZShzdHJ1Y3QgcmVhZGVsZiAqcmUsIHVuc2lnbmVkIGludCBudW0p Owogc3RhdGljIHN0cnVjdCBkdW1wb3AgKmZpbmRfZHVtcG9wKHN0cnVjdCByZWFkZWxmICpyZSwg c2l6ZV90IHNpLAogICAgIGNvbnN0IGNoYXIgKnNuLCBpbnQgb3AsIGludCB0KTsKK3N0YXRpYyBp bnQgZ2V0X2VudF9jb3VudChzdHJ1Y3Qgc2VjdGlvbiAqcywgaW50ICplbnRfY291bnQpOwogc3Rh dGljIGNoYXIgKmdldF9yZWdvZmZfc3RyKHN0cnVjdCByZWFkZWxmICpyZSwgRHdhcmZfSGFsZiBy ZWcsCiAgICAgRHdhcmZfQWRkciBvZmYpOwogc3RhdGljIGNvbnN0IGNoYXIgKmdldF9zdHJpbmco c3RydWN0IHJlYWRlbGYgKnJlLCBpbnQgc3RydGFiLCBzaXplX3Qgb2ZmKTsKQEAgLTI5MDEsNiAr MjkwMywyNCBAQAogI3VuZGVmCVNUX0NUTAogfQogCisvKgorICogUmV0dXJuIG51bWJlciBvZiBl bnRyaWVzIGluIHRoZSBnaXZlbiBzZWN0aW9uLiBXZSdkIHByZWZlciBlbnRfY291bnQgYmUgYQor ICogc2l6ZV90ICosIGJ1dCBsaWJlbGYgQVBJcyBhbHJlYWR5IHVzZSBpbnQgZm9yIHNlY3Rpb24g aW5kaWNlcy4KKyAqLworc3RhdGljIGludAorZ2V0X2VudF9jb3VudChzdHJ1Y3Qgc2VjdGlvbiAq cywgaW50ICplbnRfY291bnQpCit7CisJaWYgKHMtPmVudHNpemUgPT0gMCkgeworCQl3YXJueCgi c2VjdGlvbiAlcyBoYXMgZW50cnkgc2l6ZSAwIiwgcy0+bmFtZSk7CisJCXJldHVybiAoMCk7CisJ fSBlbHNlIGlmIChzLT5zeiAvIHMtPmVudHNpemUgPiBJTlRfTUFYKSB7CisJCXdhcm54KCJzZWN0 aW9uICVzIGhhcyBpbnZhbGlkIHNlY3Rpb24gY291bnQiLCBzLT5uYW1lKTsKKwkJcmV0dXJuICgw KTsKKwl9CisJKmVudF9jb3VudCA9IChpbnQpKHMtPnN6IC8gcy0+ZW50c2l6ZSk7CisJcmV0dXJu ICgxKTsKK30KKwogc3RhdGljIHZvaWQKIGR1bXBfZHluYW1pYyhzdHJ1Y3QgcmVhZGVsZiAqcmUp CiB7CkBAIC0yOTI5LDggKzI5NDksOCBAQAogCiAJCS8qIERldGVybWluZSB0aGUgYWN0dWFsIG51 bWJlciBvZiB0YWJsZSBlbnRyaWVzLiAqLwogCQluZW50cmllcyA9IDA7Ci0JCWptYXggPSAoaW50 KSAocy0+c3ogLyBzLT5lbnRzaXplKTsKLQorCQlpZiAoIWdldF9lbnRfY291bnQocywgJmptYXgp KQorCQkJY29udGludWU7CiAJCWZvciAoaiA9IDA7IGogPCBqbWF4OyBqKyspIHsKIAkJCWlmIChn ZWxmX2dldGR5bihkLCBqLCAmZHluKSAhPSAmZHluKSB7CiAJCQkJd2FybngoImdlbGZfZ2V0ZHlu IGZhaWxlZDogJXMiLApAQCAtMzE3Niw3ICszMTk2LDkgQEAKIAkJZWxzZQogCQkJcHJpbnRmKCIl LTEycyAlLTEycyAlLTE5cyAlLTE2cyAlc1xuIiwgUkVMX0hEUik7CiAJfQotCWxlbiA9IGQtPmRf c2l6ZSAvIHMtPmVudHNpemU7CisJYXNzZXJ0KGQtPmRfc2l6ZSA9PSBzLT5zeik7CisJaWYgKCFn ZXRfZW50X2NvdW50KHMsICZsZW4pKQorCQlyZXR1cm47CiAJZm9yIChpID0gMDsgaSA8IGxlbjsg aSsrKSB7CiAJCWlmIChnZWxmX2dldHJlbChkLCBpLCAmcikgIT0gJnIpIHsKIAkJCXdhcm54KCJn ZWxmX2dldHJlbCBmYWlsZWQ6ICVzIiwgZWxmX2Vycm1zZygtMSkpOwpAQCAtMzIzMiw3ICszMjU0 LDkgQEAKIAkJZWxzZQogCQkJcHJpbnRmKCIlLTEycyAlLTEycyAlLTE5cyAlLTE2cyAlc1xuIiwg UkVMQV9IRFIpOwogCX0KLQlsZW4gPSBkLT5kX3NpemUgLyBzLT5lbnRzaXplOworCWFzc2VydChk LT5kX3NpemUgPT0gcy0+c3opOworCWlmICghZ2V0X2VudF9jb3VudChzLCAmbGVuKSkKKwkJcmV0 dXJuOwogCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogCQlpZiAoZ2VsZl9nZXRyZWxhKGQs IGksICZyKSAhPSAmcikgewogCQkJd2FybngoImdlbGZfZ2V0cmVsIGZhaWxlZDogJXMiLCBlbGZf ZXJybXNnKC0xKSk7CkBAIC0zMjk3LDcgKzMzMjEsNyBAQAogCUVsZl9EYXRhICpkOwogCUdFbGZf U3ltIHN5bTsKIAljb25zdCBjaGFyICpuYW1lOwotCWludCBlbGZlcnIsIHN0YWIsIGo7CisJaW50 IGVsZmVyciwgc3RhYiwgaiwgbGVuOwogCiAJcyA9ICZyZS0+c2xbaV07CiAJc3RhYiA9IHMtPmxp bms7CkBAIC0zMzEwLDEyICszMzM0LDE0IEBACiAJfQogCWlmIChkLT5kX3NpemUgPD0gMCkKIAkJ cmV0dXJuOworCWlmICghZ2V0X2VudF9jb3VudChzLCAmbGVuKSkKKwkJcmV0dXJuOwogCXByaW50 ZigiU3ltYm9sIHRhYmxlICglcykiLCBzLT5uYW1lKTsKLQlwcmludGYoIiBjb250YWlucyAlanUg ZW50cmllczpcbiIsIHMtPnN6IC8gcy0+ZW50c2l6ZSk7CisJcHJpbnRmKCIgY29udGFpbnMgJWQg ZW50cmllczpcbiIsIGxlbik7CiAJcHJpbnRmKCIlN3MlOXMlMTRzJTVzJThzJTZzJTlzJTVzXG4i LCAiTnVtOiIsICJWYWx1ZSIsICJTaXplIiwgIlR5cGUiLAogCSAgICAiQmluZCIsICJWaXMiLCAi TmR4IiwgIk5hbWUiKTsKIAotCWZvciAoaiA9IDA7ICh1aW50NjRfdClqIDwgcy0+c3ogLyBzLT5l bnRzaXplOyBqKyspIHsKKwlmb3IgKGogPSAwOyBqIDwgbGVuOyBqKyspIHsKIAkJaWYgKGdlbGZf Z2V0c3ltKGQsIGosICZzeW0pICE9ICZzeW0pIHsKIAkJCXdhcm54KCJnZWxmX2dldHN5bSBmYWls ZWQ6ICVzIiwgZWxmX2Vycm1zZygtMSkpOwogCQkJY29udGludWU7CkBAIC0zMzUzLDcgKzMzNzks NyBAQAogCUVsZl9EYXRhICpkOwogCXN0cnVjdCBzZWN0aW9uICpzOwogCXVpbnQ2NF90IGR5bl9v ZmY7Ci0JaW50IGVsZmVyciwgaTsKKwlpbnQgZWxmZXJyLCBpLCBsZW47CiAKIAkvKgogCSAqIElm IC1EIGlzIHNwZWNpZmllZCwgb25seSBkdW1wIHRoZSBzeW1ib2wgdGFibGUgc3BlY2lmaWVkIGJ5 CkBAIC0zMzc4LDggKzM0MDQsMTAgQEAKIAkJfQogCQlpZiAoZC0+ZF9zaXplIDw9IDApCiAJCQly ZXR1cm47CisJCWlmICghZ2V0X2VudF9jb3VudChzLCAmbGVuKSkKKwkJCXJldHVybjsKIAotCQlm b3IgKGkgPSAwOyAodWludDY0X3QpaSA8IHMtPnN6IC8gcy0+ZW50c2l6ZTsgaSsrKSB7CisJCWZv ciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogCQkJaWYgKGdlbGZfZ2V0ZHluKGQsIGksICZkeW4p ICE9ICZkeW4pIHsKIAkJCQl3YXJueCgiZ2VsZl9nZXRkeW4gZmFpbGVkOiAlcyIsIGVsZl9lcnJt c2coLTEpKTsKIAkJCQljb250aW51ZTsKQEAgLTM1NjcsNyArMzU5NSw4IEBACiAJbWFza3dvcmRz ID0gYnVmWzJdOwogCWJ1ZiArPSA0OwogCWRzID0gJnJlLT5zbFtzLT5saW5rXTsKLQlkeW5zeW1j b3VudCA9IGRzLT5zeiAvIGRzLT5lbnRzaXplOworCWlmICghZ2V0X2VudF9jb3VudChkcywgJmR5 bnN5bWNvdW50KSkKKwkJcmV0dXJuOwogCW5jaGFpbiA9IGR5bnN5bWNvdW50IC0gc3ltbmR4Owog CWlmIChkLT5kX3NpemUgIT0gNCAqIHNpemVvZih1aW50MzJfdCkgKyBtYXNrd29yZHMgKgogCSAg ICAocmUtPmVjID09IEVMRkNMQVNTMzIgPyBzaXplb2YodWludDMyX3QpIDogc2l6ZW9mKHVpbnQ2 NF90KSkgKwpAQCAtMzk5Niw3ICs0MDI1LDcgQEAKIAljaGFyIHRidWZbMjBdOwogCUVsZl9EYXRh ICpkOwogCUVsZl9MaWIgKmxpYjsKLQlpbnQgaSwgaiwgaywgZWxmZXJyLCBmaXJzdDsKKwlpbnQg aSwgaiwgaywgZWxmZXJyLCBmaXJzdCwgbGVuOwogCiAJZm9yIChpID0gMDsgKHNpemVfdCkgaSA8 IHJlLT5zaG51bTsgaSsrKSB7CiAJCXMgPSAmcmUtPnNsW2ldOwpAQCAtNDAxMyw4ICs0MDQyLDEw IEBACiAJCWlmIChkLT5kX3NpemUgPD0gMCkKIAkJCWNvbnRpbnVlOwogCQlsaWIgPSBkLT5kX2J1 ZjsKKwkJaWYgKCFnZXRfZW50X2NvdW50KHMsICZsZW4pKQorCQkJY29udGludWU7CiAJCXByaW50 ZigiXG5MaWJyYXJ5IGxpc3Qgc2VjdGlvbiAnJXMnICIsIHMtPm5hbWUpOwotCQlwcmludGYoImNv bnRhaW5zICVqdSBlbnRyaWVzOlxuIiwgcy0+c3ogLyBzLT5lbnRzaXplKTsKKwkJcHJpbnRmKCJj b250YWlucyAlZCBlbnRyaWVzOlxuIiwgbGVuKTsKIAkJcHJpbnRmKCIlMTJzJTI0cyUxOHMlMTBz JTZzXG4iLCAiTGlicmFyeSIsICJUaW1lIFN0YW1wIiwKIAkJICAgICJDaGVja3N1bSIsICJWZXJz aW9uIiwgIkZsYWdzIik7CiAJCWZvciAoaiA9IDA7ICh1aW50NjRfdCkgaiA8IHMtPnN6IC8gcy0+ ZW50c2l6ZTsgaisrKSB7CkBAIC00Mzk5LDcgKzQ0MzAsNyBAQAogZHVtcF9taXBzX3JlZ2luZm8o c3RydWN0IHJlYWRlbGYgKnJlLCBzdHJ1Y3Qgc2VjdGlvbiAqcykKIHsKIAlFbGZfRGF0YSAqZDsK LQlpbnQgZWxmZXJyOworCWludCBlbGZlcnIsIGxlbjsKIAogCSh2b2lkKSBlbGZfZXJybm8oKTsK IAlpZiAoKGQgPSBlbGZfcmF3ZGF0YShzLT5zY24sIE5VTEwpKSA9PSBOVUxMKSB7CkBAIC00NDEx LDkgKzQ0NDIsMTAgQEAKIAl9CiAJaWYgKGQtPmRfc2l6ZSA8PSAwKQogCQlyZXR1cm47CisJaWYg KCFnZXRfZW50X2NvdW50KHMsICZsZW4pKQorCQlyZXR1cm47CiAKLQlwcmludGYoIlxuU2VjdGlv biAnJXMnIGNvbnRhaW5zICVqdSBlbnRyaWVzOlxuIiwgcy0+bmFtZSwKLQkgICAgcy0+c3ogLyBz LT5lbnRzaXplKTsKKwlwcmludGYoIlxuU2VjdGlvbiAnJXMnIGNvbnRhaW5zICVkIGVudHJpZXM6 XG4iLCBzLT5uYW1lLCBsZW4pOwogCWR1bXBfbWlwc19vZGtfcmVnaW5mbyhyZSwgZC0+ZF9idWYs IGQtPmRfc2l6ZSk7CiB9CiAKCg== --b1_627afc60ec88d368400d3ad626d694d0--