On Wed, 09/19 21:35, Fei Li wrote: > To avoid the segmentation fault in qemu_thread_join(), just directly > return when the QemuThread *thread was failed to be created in both > qemu-thread-posix.c and qemu-thread-win32.c.
Per English grammar, I think "when the QemuThread *thread failed to be created in either qemu-thread-posix.c or qemu-thread-win32.c" sounds better. > > Signed-off-by: Fei Li <f...@suse.com> > --- > util/qemu-thread-posix.c | 3 +++ > util/qemu-thread-win32.c | 2 +- > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c > index dfa66ff2fb..289af4fab5 100644 > --- a/util/qemu-thread-posix.c > +++ b/util/qemu-thread-posix.c > @@ -562,6 +562,9 @@ void *qemu_thread_join(QemuThread *thread) > int err; > void *ret; > > + if (!thread->thread) { > + return NULL; > + } > err = pthread_join(thread->thread, &ret); > if (err) { > error_exit(err, __func__); > diff --git a/util/qemu-thread-win32.c b/util/qemu-thread-win32.c > index 4a363ca675..1a27e1cf6f 100644 > --- a/util/qemu-thread-win32.c > +++ b/util/qemu-thread-win32.c > @@ -366,7 +366,7 @@ void *qemu_thread_join(QemuThread *thread) > HANDLE handle; > > data = thread->data; > - if (data->mode == QEMU_THREAD_DETACHED) { > + if (data == NULL || data->mode == QEMU_THREAD_DETACHED) { > return NULL; > } > > -- > 2.13.7 > Reviewed-by: Fam Zheng <f...@redhat.com>