Skip to content

Commit aded597

Browse files
bnoordhuisMylesBorins
authored andcommitted
src: handle uv_async_init() failure
Fix CHECKED_RETURN, RESOURCE_LEAK) and UNINIT Coverity warnings in MarkGarbageCollectionEnd(). PR-URL: #15458 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
1 parent d202c05 commit aded597

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/node_perf.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,13 +212,14 @@ void MarkGarbageCollectionEnd(Isolate* isolate,
212212
v8::GCCallbackFlags flags,
213213
void* data) {
214214
Environment* env = static_cast<Environment*>(data);
215-
uv_async_t *async = new uv_async_t;
215+
uv_async_t* async = new uv_async_t(); // coverity[leaked_storage]
216+
if (uv_async_init(env->event_loop(), async, PerformanceGCCallback))
217+
return delete async;
216218
async->data =
217219
new PerformanceEntry::Data(env, "gc", "gc",
218220
performance_last_gc_start_mark_,
219221
PERFORMANCE_NOW(), type);
220-
uv_async_init(env->event_loop(), async, PerformanceGCCallback);
221-
uv_async_send(async);
222+
CHECK_EQ(0, uv_async_send(async));
222223
}
223224

224225
inline void SetupGarbageCollectionTracking(Environment* env) {

0 commit comments

Comments
 (0)