================ @@ -53,8 +53,21 @@ template <typename A> class EHHeaderParser { template <typename A> bool EHHeaderParser<A>::decodeEHHdr(A &addressSpace, pint_t ehHdrStart, - pint_t ehHdrEnd, EHHeaderInfo &ehHdrInfo) { + size_t ehHdrSize, EHHeaderInfo &ehHdrInfo) { pint_t p = ehHdrStart; + pint_t ehHdrEnd = ehHdrStart + ehHdrSize; + + // Ensure that we don't read data beyond the end of .eh_frame_hdr + if (ehHdrSize < 4) { ---------------- compnerd wrote:
I wonder if we can keep the `eHdrEnd` and then just use the computation here of: ```c++ if (eHdrEnd - eHdrStart < 4) { ``` I think that giving the region is kinda nice and we need that value anyway. https://github.com/llvm/llvm-project/pull/68815 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits