diff --git a/avoid-exceed-int-range.patch b/avoid-exceed-int-range.patch new file mode 100644 index 0000000000000000000000000000000000000000..c8966990d7317efbdb563b4119a0a54563552af8 --- /dev/null +++ b/avoid-exceed-int-range.patch @@ -0,0 +1,33 @@ +From 85158d45ec66c34f5903a15c3b74600a925703ef Mon Sep 17 00:00:00 2001 +From: zhangyiru +Date: Thu, 14 Oct 2021 22:16:15 +0800 +Subject: [PATCH] avoid display problem if memleak exceeds range of int +if memleak exceeds range of int, heap checker result is incorrect, so +change it to size_t +--- + src/heap-profile-table.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) +diff --git a/src/heap-profile-table.cc b/src/heap-profile-table.cc +index c3ce41c..1001fb3 100644 +--- a/src/heap-profile-table.cc ++++ b/src/heap-profile-table.cc +@@ -517,7 +517,7 @@ HeapProfileTable::Snapshot* HeapProfileTable::NonLiveSnapshot( + // Information kept per unique bucket seen + struct HeapProfileTable::Snapshot::Entry { + int count; +- int bytes; ++ size_t bytes; + Bucket* bucket; + Entry() : count(0), bytes(0) { } + +@@ -592,7 +592,7 @@ void HeapProfileTable::Snapshot::ReportLeaks(const char* checker_name, + for (int i = 0; i < to_report; i++) { + const Entry& e = entries[i]; + base::RawPrinter printer(buffer, kBufSize); +- printer.Printf("Leak of %d bytes in %d objects allocated from:\n", ++ printer.Printf("Leak of %" PRIuS " bytes in %d objects allocated from:\n", + e.bytes, e.count); + for (int j = 0; j < e.bucket->depth; j++) { + const void* pc = e.bucket->stack[j]; +-- +2.27.0 diff --git a/gperftools.spec b/gperftools.spec index 78d92a0a7d65f582c6a88439befe70222ecce62a..a689126204eda1f6f0ecf9bc54427ce5a1b03eed 100644 --- a/gperftools.spec +++ b/gperftools.spec @@ -1,6 +1,6 @@ Name: gperftools Version: 2.8.1 -Release: 3 +Release: 4 Summary: high-performance malloc and performance analysis tools License: BSD @@ -12,6 +12,7 @@ Patch9000: issue-1122-fix-bus-error-on-aarch64.patch Patch9001: skip-arm-in-stacktrace_unittest.patch #https://github.com/gperftools/gperftools/issues/890 Patch9002: skip-heapchecker-in-arm-arch.patch +Patch9003: avoid-exceed-int-range.patch BuildRequires: autoconf automake gcc-c++ BuildRequires: libtool libunwind-devel perl-generators @@ -106,6 +107,9 @@ LD_LIBRARY_PATH=./.libs make check %{_mandir}/man1/*.1.gz %changelog +* Tue Nov 9 2021 zhangyiru - 2.8.1-4 +- avoid exceed int range when use heapchecker + * Wed Oct 20 2021 zhangyiru - 2.8.1-3 - enable make check && skip four arm testcases. the reason is that arm do not have fully functional heap checker and