labath accepted this revision. labath added inline comments. This revision is now accepted and ready to land.
================ Comment at: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:2663 + // the actual range check below. + if (addend < 0 && static_cast<uint32_t>(std::abs(addend)) > value) { + LLDB_LOGF(log, "Debug info relocation overflow: 0x%" PRIx64, ---------------- ================ Comment at: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:2660 + // Implicit addend is stored inline as a signed value. + int32_t addend = *reinterpret_cast<int32_t *>(dst); + // The sum must be positive. This extra check prevents UB from overflow in ---------------- sgraenitz wrote: > IIUC we'd want to account for an endianness difference between debugger and > target (in theory). However, non of the other cases seems to do it, so I > didn't start with it either. We probably should. What we also should do (and what other cases seem to get mostly right) is avoid dereferencing type-punned pointers (use memcpy to read). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147642/new/ https://reviews.llvm.org/D147642 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits