Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Jul 2015 11:13:15 +0000
From:      "emaste (Ed Maste)" <phabric-noreply@FreeBSD.org>
To:        freebsd-toolchain@freebsd.org
Subject:   [Differential] [Updated, 62 lines] D2338: readelf: avoid division by zero for files with invalid sh_entsize
Message-ID:  <7c59257489905e00b12a6a1519c33dd8@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-qcsywqhy33xvasn2kx4a-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-qcsywqhy33xvasn2kx4a-req@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_7c59257489905e00b12a6a1519c33dd8
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: 8bit

emaste updated this revision to Diff 7069.
emaste added a comment.
This revision now requires review to proceed.

Add a `get_ent_count` helper to check for 0 entsize instead of expanding the check inline everywhere.


CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D2338?vs=4930&id=7069

REVISION DETAIL
  https://reviews.freebsd.org/D2338

AFFECTED FILES
  contrib/elftoolchain/readelf/readelf.c

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: emaste, brooks
Cc: brooks, freebsd-toolchain-list

--b1_7c59257489905e00b12a6a1519c33dd8
Content-Type: text/x-patch; charset=utf-8; name="D2338.7069.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D2338.7069.patch"

ZGlmZiAtLWdpdCBhL2NvbnRyaWIvZWxmdG9vbGNoYWluL3JlYWRlbGYvcmVhZGVsZi5jIGIvY29u
dHJpYi9lbGZ0b29sY2hhaW4vcmVhZGVsZi9yZWFkZWxmLmMKLS0tIGEvY29udHJpYi9lbGZ0b29s
Y2hhaW4vcmVhZGVsZi9yZWFkZWxmLmMKKysrIGIvY29udHJpYi9lbGZ0b29sY2hhaW4vcmVhZGVs
Zi9yZWFkZWxmLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNp
bmNsdWRlIDxzeXMvcXVldWUuaD4KICNpbmNsdWRlIDxhci5oPgorI2luY2x1ZGUgPGFzc2VydC5o
PgogI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8ZHdhcmYuaD4KICNpbmNsdWRlIDxlcnIu
aD4KQEAgLTMxNCw2ICszMTUsNyBAQAogc3RhdGljIGNvbnN0IGNoYXIgKmR3YXJmX3JlZ25hbWUo
c3RydWN0IHJlYWRlbGYgKnJlLCB1bnNpZ25lZCBpbnQgbnVtKTsKIHN0YXRpYyBzdHJ1Y3QgZHVt
cG9wICpmaW5kX2R1bXBvcChzdHJ1Y3QgcmVhZGVsZiAqcmUsIHNpemVfdCBzaSwKICAgICBjb25z
dCBjaGFyICpzbiwgaW50IG9wLCBpbnQgdCk7CitzdGF0aWMgaW50IGdldF9lbnRfY291bnQoc3Ry
dWN0IHNlY3Rpb24gKnMsIGludCAqZW50X2NvdW50KTsKIHN0YXRpYyBjaGFyICpnZXRfcmVnb2Zm
X3N0cihzdHJ1Y3QgcmVhZGVsZiAqcmUsIER3YXJmX0hhbGYgcmVnLAogICAgIER3YXJmX0FkZHIg
b2ZmKTsKIHN0YXRpYyBjb25zdCBjaGFyICpnZXRfc3RyaW5nKHN0cnVjdCByZWFkZWxmICpyZSwg
aW50IHN0cnRhYiwgc2l6ZV90IG9mZik7CkBAIC0yOTAwLDYgKzI5MDIsMjQgQEAKICN1bmRlZglT
VF9DVEwKIH0KIAorLyoKKyAqIFJldHVybiBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgZ2l2ZW4g
c2VjdGlvbi4gV2UnZCBwcmVmZXIgZW50X2NvdW50IGJlIGEKKyAqIHNpemVfdCAqLCBidXQgbGli
ZWxmIEFQSXMgYWxyZWFkeSB1c2UgaW50IGZvciBzZWN0aW9uIGluZGljZXMuCisgKi8KK3N0YXRp
YyBpbnQKK2dldF9lbnRfY291bnQoc3RydWN0IHNlY3Rpb24gKnMsIGludCAqZW50X2NvdW50KQor
eworCWlmIChzLT5lbnRzaXplID09IDApIHsKKwkJd2FybngoInNlY3Rpb24gJXMgaGFzIGVudHJ5
IHNpemUgMCIsIHMtPm5hbWUpOworCQlyZXR1cm4gKDApOworCX0gZWxzZSBpZiAocy0+c3ogLyBz
LT5lbnRzaXplID4gSU5UX01BWCkgeworCQl3YXJueCgic2VjdGlvbiAlcyBoYXMgaW52YWxpZCBz
ZWN0aW9uIGNvdW50Iiwgcy0+bmFtZSk7CisJCXJldHVybiAoMCk7CisJfQorCSplbnRfY291bnQg
PSAoaW50KShzLT5zeiAvIHMtPmVudHNpemUpOworCXJldHVybiAoMSk7Cit9CisKIHN0YXRpYyB2
b2lkCiBkdW1wX2R5bmFtaWMoc3RydWN0IHJlYWRlbGYgKnJlKQogewpAQCAtMjkyOCw4ICsyOTQ4
LDggQEAKIAogCQkvKiBEZXRlcm1pbmUgdGhlIGFjdHVhbCBudW1iZXIgb2YgdGFibGUgZW50cmll
cy4gKi8KIAkJbmVudHJpZXMgPSAwOwotCQlqbWF4ID0gKGludCkgKHMtPnN6IC8gcy0+ZW50c2l6
ZSk7Ci0KKwkJaWYgKCFnZXRfZW50X2NvdW50KHMsICZqbWF4KSkKKwkJCWNvbnRpbnVlOwogCQlm
b3IgKGogPSAwOyBqIDwgam1heDsgaisrKSB7CiAJCQlpZiAoZ2VsZl9nZXRkeW4oZCwgaiwgJmR5
bikgIT0gJmR5bikgewogCQkJCXdhcm54KCJnZWxmX2dldGR5biBmYWlsZWQ6ICVzIiwKQEAgLTMx
NzUsNyArMzE5NSw5IEBACiAJCWVsc2UKIAkJCXByaW50ZigiJS0xMnMgJS0xMnMgJS0xOXMgJS0x
NnMgJXNcbiIsIFJFTF9IRFIpOwogCX0KLQlsZW4gPSBkLT5kX3NpemUgLyBzLT5lbnRzaXplOwor
CWFzc2VydChkLT5kX3NpemUgPT0gcy0+c3opOworCWlmICghZ2V0X2VudF9jb3VudChzLCAmbGVu
KSkKKwkJcmV0dXJuOwogCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogCQlpZiAoZ2VsZl9n
ZXRyZWwoZCwgaSwgJnIpICE9ICZyKSB7CiAJCQl3YXJueCgiZ2VsZl9nZXRyZWwgZmFpbGVkOiAl
cyIsIGVsZl9lcnJtc2coLTEpKTsKQEAgLTMyMzEsNyArMzI1Myw5IEBACiAJCWVsc2UKIAkJCXBy
aW50ZigiJS0xMnMgJS0xMnMgJS0xOXMgJS0xNnMgJXNcbiIsIFJFTEFfSERSKTsKIAl9Ci0JbGVu
ID0gZC0+ZF9zaXplIC8gcy0+ZW50c2l6ZTsKKwlhc3NlcnQoZC0+ZF9zaXplID09IHMtPnN6KTsK
KwlpZiAoIWdldF9lbnRfY291bnQocywgJmxlbikpCisJCXJldHVybjsKIAlmb3IgKGkgPSAwOyBp
IDwgbGVuOyBpKyspIHsKIAkJaWYgKGdlbGZfZ2V0cmVsYShkLCBpLCAmcikgIT0gJnIpIHsKIAkJ
CXdhcm54KCJnZWxmX2dldHJlbCBmYWlsZWQ6ICVzIiwgZWxmX2Vycm1zZygtMSkpOwpAQCAtMzI5
Niw3ICszMzIwLDcgQEAKIAlFbGZfRGF0YSAqZDsKIAlHRWxmX1N5bSBzeW07CiAJY29uc3QgY2hh
ciAqbmFtZTsKLQlpbnQgZWxmZXJyLCBzdGFiLCBqOworCWludCBlbGZlcnIsIHN0YWIsIGosIGxl
bjsKIAogCXMgPSAmcmUtPnNsW2ldOwogCXN0YWIgPSBzLT5saW5rOwpAQCAtMzMwOSwxMiArMzMz
MywxNCBAQAogCX0KIAlpZiAoZC0+ZF9zaXplIDw9IDApCiAJCXJldHVybjsKKwlpZiAoIWdldF9l
bnRfY291bnQocywgJmxlbikpCisJCXJldHVybjsKIAlwcmludGYoIlN5bWJvbCB0YWJsZSAoJXMp
Iiwgcy0+bmFtZSk7Ci0JcHJpbnRmKCIgY29udGFpbnMgJWp1IGVudHJpZXM6XG4iLCBzLT5zeiAv
IHMtPmVudHNpemUpOworCXByaW50ZigiIGNvbnRhaW5zICVkIGVudHJpZXM6XG4iLCBsZW4pOwog
CXByaW50ZigiJTdzJTlzJTE0cyU1cyU4cyU2cyU5cyU1c1xuIiwgIk51bToiLCAiVmFsdWUiLCAi
U2l6ZSIsICJUeXBlIiwKIAkgICAgIkJpbmQiLCAiVmlzIiwgIk5keCIsICJOYW1lIik7CiAKLQlm
b3IgKGogPSAwOyAodWludDY0X3QpaiA8IHMtPnN6IC8gcy0+ZW50c2l6ZTsgaisrKSB7CisJZm9y
IChqID0gMDsgaiA8IGxlbjsgaisrKSB7CiAJCWlmIChnZWxmX2dldHN5bShkLCBqLCAmc3ltKSAh
PSAmc3ltKSB7CiAJCQl3YXJueCgiZ2VsZl9nZXRzeW0gZmFpbGVkOiAlcyIsIGVsZl9lcnJtc2co
LTEpKTsKIAkJCWNvbnRpbnVlOwpAQCAtMzM1Miw3ICszMzc4LDcgQEAKIAlFbGZfRGF0YSAqZDsK
IAlzdHJ1Y3Qgc2VjdGlvbiAqczsKIAl1aW50NjRfdCBkeW5fb2ZmOwotCWludCBlbGZlcnIsIGk7
CisJaW50IGVsZmVyciwgaSwgbGVuOwogCiAJLyoKIAkgKiBJZiAtRCBpcyBzcGVjaWZpZWQsIG9u
bHkgZHVtcCB0aGUgc3ltYm9sIHRhYmxlIHNwZWNpZmllZCBieQpAQCAtMzM3Nyw4ICszNDAzLDEw
IEBACiAJCX0KIAkJaWYgKGQtPmRfc2l6ZSA8PSAwKQogCQkJcmV0dXJuOworCQlpZiAoIWdldF9l
bnRfY291bnQocywgJmxlbikpCisJCQlyZXR1cm47CiAKLQkJZm9yIChpID0gMDsgKHVpbnQ2NF90
KWkgPCBzLT5zeiAvIHMtPmVudHNpemU7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBp
KyspIHsKIAkJCWlmIChnZWxmX2dldGR5bihkLCBpLCAmZHluKSAhPSAmZHluKSB7CiAJCQkJd2Fy
bngoImdlbGZfZ2V0ZHluIGZhaWxlZDogJXMiLCBlbGZfZXJybXNnKC0xKSk7CiAJCQkJY29udGlu
dWU7CkBAIC0zNTY2LDcgKzM1OTQsOCBAQAogCW1hc2t3b3JkcyA9IGJ1ZlsyXTsKIAlidWYgKz0g
NDsKIAlkcyA9ICZyZS0+c2xbcy0+bGlua107Ci0JZHluc3ltY291bnQgPSBkcy0+c3ogLyBkcy0+
ZW50c2l6ZTsKKwlpZiAoIWdldF9lbnRfY291bnQoZHMsICZkeW5zeW1jb3VudCkpCisJCXJldHVy
bjsKIAluY2hhaW4gPSBkeW5zeW1jb3VudCAtIHN5bW5keDsKIAlpZiAoZC0+ZF9zaXplICE9IDQg
KiBzaXplb2YodWludDMyX3QpICsgbWFza3dvcmRzICoKIAkgICAgKHJlLT5lYyA9PSBFTEZDTEFT
UzMyID8gc2l6ZW9mKHVpbnQzMl90KSA6IHNpemVvZih1aW50NjRfdCkpICsKQEAgLTM5OTUsNyAr
NDAyNCw3IEBACiAJY2hhciB0YnVmWzIwXTsKIAlFbGZfRGF0YSAqZDsKIAlFbGZfTGliICpsaWI7
Ci0JaW50IGksIGosIGssIGVsZmVyciwgZmlyc3Q7CisJaW50IGksIGosIGssIGVsZmVyciwgZmly
c3QsIGxlbjsKIAogCWZvciAoaSA9IDA7IChzaXplX3QpIGkgPCByZS0+c2hudW07IGkrKykgewog
CQlzID0gJnJlLT5zbFtpXTsKQEAgLTQwMTIsOCArNDA0MSwxMCBAQAogCQlpZiAoZC0+ZF9zaXpl
IDw9IDApCiAJCQljb250aW51ZTsKIAkJbGliID0gZC0+ZF9idWY7CisJCWlmICghZ2V0X2VudF9j
b3VudChzLCAmbGVuKSkKKwkJCWNvbnRpbnVlOwogCQlwcmludGYoIlxuTGlicmFyeSBsaXN0IHNl
Y3Rpb24gJyVzJyAiLCBzLT5uYW1lKTsKLQkJcHJpbnRmKCJjb250YWlucyAlanUgZW50cmllczpc
biIsIHMtPnN6IC8gcy0+ZW50c2l6ZSk7CisJCXByaW50ZigiY29udGFpbnMgJWQgZW50cmllczpc
biIsIGxlbik7CiAJCXByaW50ZigiJTEycyUyNHMlMThzJTEwcyU2c1xuIiwgIkxpYnJhcnkiLCAi
VGltZSBTdGFtcCIsCiAJCSAgICAiQ2hlY2tzdW0iLCAiVmVyc2lvbiIsICJGbGFncyIpOwogCQlm
b3IgKGogPSAwOyAodWludDY0X3QpIGogPCBzLT5zeiAvIHMtPmVudHNpemU7IGorKykgewpAQCAt
NDM5OCw3ICs0NDI5LDcgQEAKIGR1bXBfbWlwc19yZWdpbmZvKHN0cnVjdCByZWFkZWxmICpyZSwg
c3RydWN0IHNlY3Rpb24gKnMpCiB7CiAJRWxmX0RhdGEgKmQ7Ci0JaW50IGVsZmVycjsKKwlpbnQg
ZWxmZXJyLCBsZW47CiAKIAkodm9pZCkgZWxmX2Vycm5vKCk7CiAJaWYgKChkID0gZWxmX3Jhd2Rh
dGEocy0+c2NuLCBOVUxMKSkgPT0gTlVMTCkgewpAQCAtNDQxMCw5ICs0NDQxLDEwIEBACiAJfQog
CWlmIChkLT5kX3NpemUgPD0gMCkKIAkJcmV0dXJuOworCWlmICghZ2V0X2VudF9jb3VudChzLCAm
bGVuKSkKKwkJcmV0dXJuOwogCi0JcHJpbnRmKCJcblNlY3Rpb24gJyVzJyBjb250YWlucyAlanUg
ZW50cmllczpcbiIsIHMtPm5hbWUsCi0JICAgIHMtPnN6IC8gcy0+ZW50c2l6ZSk7CisJcHJpbnRm
KCJcblNlY3Rpb24gJyVzJyBjb250YWlucyAlZCBlbnRyaWVzOlxuIiwgcy0+bmFtZSwgbGVuKTsK
IAlkdW1wX21pcHNfb2RrX3JlZ2luZm8ocmUsIGQtPmRfYnVmLCBkLT5kX3NpemUpOwogfQogCgo=


--b1_7c59257489905e00b12a6a1519c33dd8--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7c59257489905e00b12a6a1519c33dd8>