Verify pointer readability in PowerPC NextStackFrame() PiperOrigin-RevId: 947879027 Change-Id: Id5af133d637a1f4591f65681d316a86c6307ccd2
diff --git a/absl/debugging/internal/stacktrace_powerpc-inl.inc b/absl/debugging/internal/stacktrace_powerpc-inl.inc index ade4edf..f446655 100644 --- a/absl/debugging/internal/stacktrace_powerpc-inl.inc +++ b/absl/debugging/internal/stacktrace_powerpc-inl.inc
@@ -92,6 +92,13 @@ } if ((uintptr_t)new_sp % kStackAlignment != 0) return nullptr; + // Verify readability before using new_sp. + if (!STRICT_UNWINDING && new_sp != nullptr && + !absl::debugging_internal::AddressIsReadable( + StacktracePowerPCGetLRPtr(new_sp))) { + return nullptr; + } + #if defined(__linux__) enum StackTraceKernelSymbolStatus { kNotInitialized = 0, kAddressValid, kAddressInvalid };