[PATCH] elf: Set this_idx to -1 for invalid relocations

"H.J. Lu" <[email protected]> Sun, 2 Aug 2026 06:18:23 +0800
Newsgroups gmane.comp.gnu.binutils
Message-ID <CAMe9rOpWmbqdUHmBWUbUROcNvMY8YJOUUf7CGoBU=AWysx596Q@mail.gmail.com>
--0000000000001be9d8065803b163
Content-Type: text/plain; charset="UTF-8"

When invalid relocation is reported by elf_link_read_relocs_from_section
called from lang_gc_sections:

ld: pr34448-bug_18.o: bad reloc symbol index (0xf2000005 >= 0x13) for
offset 0x4 in section `.text.get_tls[get_tls]'

the same error is reported again:

ld: pr34448-bug_18.o: bad reloc symbol index (0xf2000005 >= 0x13) for
offset 0x4 in section `.text.get_tls[get_tls]'

from lang_check_relocs since lang_gc_sections error doesn't stop linker.
Update elf_link_read_relocs_from_section to set this_idx to -1 for invalid
relocations and return false if this_idx < 0.

PR ld/34448
* elf-bfd.h (bfd_elf_section_data): Update comments for this_idx.
* elflink.c (elf_link_read_relocs_from_section): Return false if
this_idx < 0.  Set this_idx to -1 for invalid relocations.

-- 
H.J.

--0000000000001be9d8065803b163
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-elf-Set-this_idx-to-1-for-invalid-relocations.patch"
Content-Disposition: attachment; 
	filename="0001-elf-Set-this_idx-to-1-for-invalid-relocations.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_msaxmwj60>
X-Attachment-Id: f_msaxmwj60

RnJvbSBkOTM0NTI3MjkxOTMwZjI5MGQ3NGVkZmNiZGM2YjMyMDBiYzI3YTE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6
IFN1biwgMiBBdWcgMjAyNiAwNjowOToxMiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGVsZjogU2V0
IHRoaXNfaWR4IHRvIC0xIGZvciBpbnZhbGlkIHJlbG9jYXRpb25zCgpXaGVuIGludmFsaWQgcmVs
b2NhdGlvbiBpcyByZXBvcnRlZCBieSBlbGZfbGlua19yZWFkX3JlbG9jc19mcm9tX3NlY3Rpb24K
Y2FsbGVkIGZyb20gbGFuZ19nY19zZWN0aW9uczoKCmxkOiBwcjM0NDQ4LWJ1Z18xOC5vOiBiYWQg
cmVsb2Mgc3ltYm9sIGluZGV4ICgweGYyMDAwMDA1ID49IDB4MTMpIGZvciBvZmZzZXQgMHg0IGlu
IHNlY3Rpb24gYC50ZXh0LmdldF90bHNbZ2V0X3Rsc10nCgp0aGUgc2FtZSBlcnJvciBpcyByZXBv
cnRlZCBhZ2FpbjoKCmxkOiBwcjM0NDQ4LWJ1Z18xOC5vOiBiYWQgcmVsb2Mgc3ltYm9sIGluZGV4
ICgweGYyMDAwMDA1ID49IDB4MTMpIGZvciBvZmZzZXQgMHg0IGluIHNlY3Rpb24gYC50ZXh0Lmdl
dF90bHNbZ2V0X3Rsc10nCgpmcm9tIGxhbmdfY2hlY2tfcmVsb2NzIHNpbmNlIGxhbmdfZ2Nfc2Vj
dGlvbnMgZXJyb3IgZG9lc24ndCBzdG9wIGxpbmtlci4KVXBkYXRlIGVsZl9saW5rX3JlYWRfcmVs
b2NzX2Zyb21fc2VjdGlvbiB0byBzZXQgdGhpc19pZHggdG8gLTEgZm9yIGludmFsaWQKcmVsb2Nh
dGlvbnMgYW5kIHJldHVybiBmYWxzZSBpZiB0aGlzX2lkeCA8IDAuCgoJUFIgbGQvMzQ0NDgKCSog
ZWxmLWJmZC5oIChiZmRfZWxmX3NlY3Rpb25fZGF0YSk6IFVwZGF0ZSBjb21tZW50cyBmb3IgdGhp
c19pZHguCgkqIGVsZmxpbmsuYyAoZWxmX2xpbmtfcmVhZF9yZWxvY3NfZnJvbV9zZWN0aW9uKTog
UmV0dXJuIGZhbHNlIGlmCgl0aGlzX2lkeCA8IDAuICBTZXQgdGhpc19pZHggdG8gLTEgZm9yIGlu
dmFsaWQgcmVsb2NhdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBILkouIEx1IDxoamwudG9vbHNAZ21h
aWwuY29tPgotLS0KIGJmZC9lbGYtYmZkLmggfCAzICsrLQogYmZkL2VsZmxpbmsuYyB8IDYgKysr
KysrCiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm
ZiAtLWdpdCBhL2JmZC9lbGYtYmZkLmggYi9iZmQvZWxmLWJmZC5oCmluZGV4IGIzNTRmNzdmNDIx
Li4wNGM3ODEwMmJiMCAxMDA2NDQKLS0tIGEvYmZkL2VsZi1iZmQuaAorKysgYi9iZmQvZWxmLWJm
ZC5oCkBAIC0xODg5LDcgKzE4ODksOCBAQCBzdHJ1Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGEKICAg
ICAgd2l0aCB0aGlzIHNlY3Rpb24sIGlmIGFueS4gICovCiAgIHN0cnVjdCBiZmRfZWxmX3NlY3Rp
b25fcmVsb2NfZGF0YSByZWwsIHJlbGE7CiAKLSAgLyogVGhlIEVMRiBzZWN0aW9uIG51bWJlciBv
ZiB0aGlzIHNlY3Rpb24uICAqLworICAvKiBUaGUgRUxGIHNlY3Rpb24gbnVtYmVyIG9mIHRoaXMg
c2VjdGlvbi4gIEEgdmFsdWUgb2YgPCAwIG1lYW5zIHRoYXQKKyAgICAgc29tZSByZWxvY2F0aW9u
cyBpbiB0aGUgc2VjdGlvbiBhcmUgaW52YWxpZC4gICovCiAgIGludCB0aGlzX2lkeDsKIAogICAv
KiBVc2VkIGJ5IHRoZSBiYWNrZW5kIGxpbmtlciB3aGVuIGdlbmVyYXRpbmcgYSBzaGFyZWQgbGli
cmFyeSB0bwpkaWZmIC0tZ2l0IGEvYmZkL2VsZmxpbmsuYyBiL2JmZC9lbGZsaW5rLmMKaW5kZXgg
MGFmOTgzN2EyOGMuLjI2MGUwMTAzN2Y1IDEwMDY0NAotLS0gYS9iZmQvZWxmbGluay5jCisrKyBi
L2JmZC9lbGZsaW5rLmMKQEAgLTI4MDgsNiArMjgwOCwxMCBAQCBlbGZfbGlua19yZWFkX3JlbG9j
c19mcm9tX3NlY3Rpb24gKGJmZCAqYWJmZCwKICAgc2l6ZV90IG5zeW1zOwogICB2b2lkICpleHRl
cm5hbF9yZWxvY3MgPSAqZXh0ZXJuYWxfcmVsb2NzX2FkZHI7CiAKKyAgLyogUmV0dXJuIGZhbHNl
IGlmIHNvbWUgcmVsb2NhdGlvbnMgaW4gdGhlIHNlY3Rpb24gYXJlIGludmFsaWQuICAqLworICBp
ZiAoZWxmX3NlY3Rpb25fZGF0YSAoc2VjKS0+dGhpc19pZHggPCAwKQorICAgIHJldHVybiBmYWxz
ZTsKKwogICAvKiBQb3NpdGlvbiBvdXJzZWx2ZXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzZWN0aW9u
LiAgKi8KICAgaWYgKGJmZF9zZWVrIChhYmZkLCBzaGRyLT5zaF9vZmZzZXQsIFNFRUtfU0VUKSAh
PSAwKQogICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NTgsNiArMjg2Miw3IEBAIGVsZl9saW5rX3Jl
YWRfcmVsb2NzX2Zyb21fc2VjdGlvbiAoYmZkICphYmZkLAogCQkgICAiIGZvciBvZmZzZXQgJSMi
IFBSSXg2NCAiIGluIHNlY3Rpb24gYCVwQSciKSwKIAkJIGFiZmQsICh1aW50NjRfdCkgcl9zeW1u
ZHgsICh1bnNpZ25lZCBsb25nKSBuc3ltcywKIAkJICh1aW50NjRfdCkgaXJlbGEtPnJfb2Zmc2V0
LCBzZWMpOworCSAgICAgIGVsZl9zZWN0aW9uX2RhdGEgKHNlYyktPnRoaXNfaWR4ID0gLTE7CiAJ
ICAgICAgYmZkX3NldF9lcnJvciAoYmZkX2Vycm9yX2JhZF92YWx1ZSk7CiAJICAgICAgcmV0dXJu
IGZhbHNlOwogCSAgICB9CkBAIC0yODcxLDYgKzI4NzYsNyBAQCBlbGZfbGlua19yZWFkX3JlbG9j
c19mcm9tX3NlY3Rpb24gKGJmZCAqYWJmZCwKIAkgICAgICAgIiB3aGVuIHRoZSBvYmplY3QgZmls
ZSBoYXMgbm8gc3ltYm9sIHRhYmxlIiksCiAJICAgICBhYmZkLCAodWludDY0X3QpIHJfc3ltbmR4
LAogCSAgICAgKHVpbnQ2NF90KSBpcmVsYS0+cl9vZmZzZXQsIHNlYyk7CisJICBlbGZfc2VjdGlv
bl9kYXRhIChzZWMpLT50aGlzX2lkeCA9IC0xOwogCSAgYmZkX3NldF9lcnJvciAoYmZkX2Vycm9y
X2JhZF92YWx1ZSk7CiAJICByZXR1cm4gZmFsc2U7CiAJfQotLSAKMi41NS4wCgo=
--0000000000001be9d8065803b163--