From: Ji-hoon Lee Date: Wed, 2 Dec 2020 10:27:32 +0000 (+0900) Subject: Enable heap tracer and disallow free'ing unmanaged chunks X-Git-Tag: accepted/tizen/6.0/unified/20201204.221249~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F19%2F248819%2F1;p=platform%2Fcore%2Fuifw%2Fmulti-assistant-service.git Enable heap tracer and disallow free'ing unmanaged chunks Change-Id: If153dcbe74fc218c1c06228e14a10019dbaaf9b3 --- diff --git a/plugins/wakeup-manager/src/heap_tracer.cpp b/plugins/wakeup-manager/src/heap_tracer.cpp index acf5bc6..fc24d84 100644 --- a/plugins/wakeup-manager/src/heap_tracer.cpp +++ b/plugins/wakeup-manager/src/heap_tracer.cpp @@ -18,7 +18,8 @@ const bool HEAP_TRACER_LOG_ENABLED = false ; #define DESCRIPTION_LENGTH 255 -//#define USE_HEAP_TRACER +#define USE_HEAP_TRACER +//#define ALLOW_FREE_UNMANAGED //#define RECORD_ALL_HISTORY void* vm_calloc(size_t nmemb, size_t size, const char *fmt, ...) @@ -60,14 +61,24 @@ void vm_free(void *ptr, const char *fmt, ...) va_list argptr; va_start(argptr, fmt); + bool managed = true; char description[DESCRIPTION_LENGTH]; vsnprintf(description, sizeof(description), fmt, argptr); if (false == _tracer.Delete(ptr, description)) { + managed = false; _tracer.Find(ptr); } - va_end(argptr); +#ifdef ALLOW_FREE_UNMANAGED + free(ptr); +#else + if (managed) { + free(ptr); + } #endif + va_end(argptr); +#else free(ptr); +#endif } else { LOGD("Trying to free a null pointer"); }