Crashlog: Limit iterations of calls to bfd_find_inliner_info
This commit is contained in:
@@ -599,7 +599,8 @@ class CrashLogUnix : public CrashLog {
|
|||||||
}
|
}
|
||||||
#if defined(WITH_BFD)
|
#if defined(WITH_BFD)
|
||||||
if (ok && bfd_info.found && bfd_info.abfd) {
|
if (ok && bfd_info.found && bfd_info.abfd) {
|
||||||
while (bfd_find_inliner_info(bfd_info.abfd, &file_name, &func_name, &line_num)) {
|
uint iteration_limit = 32;
|
||||||
|
while (iteration_limit-- && bfd_find_inliner_info(bfd_info.abfd, &file_name, &func_name, &line_num)) {
|
||||||
if (func_name) {
|
if (func_name) {
|
||||||
int status = -1;
|
int status = -1;
|
||||||
char *demangled = nullptr;
|
char *demangled = nullptr;
|
||||||
|
@@ -554,7 +554,8 @@ char *CrashLogWindows::AppendDecodedStacktrace(char *buffer, const char *last) c
|
|||||||
const char *file_name = nullptr;
|
const char *file_name = nullptr;
|
||||||
const char *func_name = nullptr;
|
const char *func_name = nullptr;
|
||||||
uint line_num = 0;
|
uint line_num = 0;
|
||||||
while (bfd_find_inliner_info(bfd_info.abfd, &file_name, &func_name, &line_num)) {
|
uint iteration_limit = 32;
|
||||||
|
while (iteration_limit-- && bfd_find_inliner_info(bfd_info.abfd, &file_name, &func_name, &line_num)) {
|
||||||
buffer += seprintf(buffer, last, "\n[inlined]%*s", (int)(19 + (sizeof(void *) * 2)), "");
|
buffer += seprintf(buffer, last, "\n[inlined]%*s", (int)(19 + (sizeof(void *) * 2)), "");
|
||||||
if (func_name) {
|
if (func_name) {
|
||||||
int status = -1;
|
int status = -1;
|
||||||
|
Reference in New Issue
Block a user