From dce2738a91dec43ad50d31b390c81e04a78451cc Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Mon, 18 Sep 2017 16:38:59 +0200 Subject: src: handle uv_async_init() failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix CHECKED_RETURN, RESOURCE_LEAK) and UNINIT Coverity warnings in MarkGarbageCollectionEnd(). PR-URL: https://github.com/nodejs/node/pull/15458 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Tobias Nießen Reviewed-By: Anna Henningsen --- src/node_perf.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/node_perf.cc') diff --git a/src/node_perf.cc b/src/node_perf.cc index 95e93259f4..f5aafbab63 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -212,13 +212,14 @@ void MarkGarbageCollectionEnd(Isolate* isolate, v8::GCCallbackFlags flags, void* data) { Environment* env = static_cast(data); - uv_async_t *async = new uv_async_t; + uv_async_t* async = new uv_async_t(); // coverity[leaked_storage] + if (uv_async_init(env->event_loop(), async, PerformanceGCCallback)) + return delete async; async->data = new PerformanceEntry::Data(env, "gc", "gc", performance_last_gc_start_mark_, PERFORMANCE_NOW(), type); - uv_async_init(env->event_loop(), async, PerformanceGCCallback); - uv_async_send(async); + CHECK_EQ(0, uv_async_send(async)); } inline void SetupGarbageCollectionTracking(Environment* env) { -- cgit v1.2.3