diff --git a/libavdevice/iec61883.c b/libavdevice/iec61883.c index b29aad1d48..01e52899ef 100644 --- a/libavdevice/iec61883.c +++ b/libavdevice/iec61883.c @@ -392,9 +392,12 @@ static int iec61883_read_header(AVFormatContext *context) #if THREADS dv->thread_loop = 1; - pthread_mutex_init(&dv->mutex, NULL); - pthread_cond_init(&dv->cond, NULL); - pthread_create(&dv->receive_task_thread, NULL, iec61883_receive_task, dv); + if (pthread_mutex_init(&dv->mutex, NULL)) + goto fail; + if (pthread_cond_init(&dv->cond, NULL)) + goto fail; + if (pthread_create(&dv->receive_task_thread, NULL, iec61883_receive_task, dv)) + goto fail; #endif return 0;