From 3566489ee43a348f41bb0fd9c779f1064956ea82 Mon Sep 17 00:00:00 2001 From: Roman Rashchupkin Date: Thu, 25 Jan 2018 10:18:33 +0300 Subject: [PATCH 12/89] Fix kpatch_process_init/kpatch_coroutines_free --- src/kpatch_coro.c | 7 ++++--- src/kpatch_process.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/kpatch_coro.c b/src/kpatch_coro.c index ff485fc..45d4a0b 100644 --- a/src/kpatch_coro.c +++ b/src/kpatch_coro.c @@ -622,7 +622,8 @@ void kpatch_coroutines_free(struct kpatch_process *proc) if (proc->coro.unwd) unw_destroy_addr_space(proc->coro.unwd); - list_for_each_entry_safe(c, tmp, &proc->coro.coros, list) { - kpatch_coro_free(c); - } + if (!list_empty(&proc->coro.coros)) + list_for_each_entry_safe(c, tmp, &proc->coro.coros, list) { + kpatch_coro_free(c); + } } diff --git a/src/kpatch_process.c b/src/kpatch_process.c index d394925..2f85373 100644 --- a/src/kpatch_process.c +++ b/src/kpatch_process.c @@ -1121,10 +1121,10 @@ kpatch_process_init(kpatch_process_t *proc, list_init(&proc->vmaholes); proc->num_objs = 0; - if (process_get_comm(proc)) - goto out_unlock; if (kpatch_coroutines_init(proc)) goto out_unlock; + if (process_get_comm(proc)) + goto out_unlock; return 0; -- 2.23.0