Bug 1345153 - Suppress valgrind warnings for PR_SetEnv in SetupCrashReporterDirectory. r?njn
MozReview-Commit-ID: 4vV2EHsgTVT
--- a/build/valgrind/cross-architecture.sup
+++ b/build/valgrind/cross-architecture.sup
@@ -30,16 +30,24 @@
Memcheck:Leak
fun:malloc
...
fun:_Z12ToNewCStringRK10nsACString
fun:_ZN13CrashReporter14SetupExtraDataEP7nsIFileRK10nsACString
...
}
{
+ PR_SetEnv requires its argument to be leaked, but does not appear on stacks. (See bug 1345153.)
+ Memcheck:Leak
+ fun:malloc
+ ...
+ fun:_ZN13CrashReporterL27SetupCrashReporterDirectoryEP7nsIFilePKcS3_PS1_
+ ...
+}
+{
We purposely leak the StatisticsReporter object
Memcheck:Leak
fun:malloc
fun:moz_xmalloc
fun:operator new
fun:_Z21XRE_CreateStatsObjectv
...
}
--- a/toolkit/crashreporter/nsExceptionHandler.cpp
+++ b/toolkit/crashreporter/nsExceptionHandler.cpp
@@ -1988,16 +1988,17 @@ SetupCrashReporterDirectory(nsIFile* aAp
dirEnv.append(*directoryPath);
delete directoryPath;
#if defined(XP_WIN32)
_wputenv(dirEnv.c_str());
#else
XP_CHAR* str = new XP_CHAR[dirEnv.size() + 1];
strncpy(str, dirEnv.c_str(), dirEnv.size() + 1);
+ // |PR_SetEnv| requires str to leak.
PR_SetEnv(str);
#endif
if (aDirectory) {
directory.forget(aDirectory);
}
return NS_OK;