]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tvh thread: do not crash when mutex==NULL (magic check failed), fixes #5435
authorJaroslav Kysela <perex@perex.cz>
Sat, 15 Dec 2018 15:29:27 +0000 (16:29 +0100)
committerJaroslav Kysela <perex@perex.cz>
Sat, 15 Dec 2018 15:29:27 +0000 (16:29 +0100)
src/tvh_thread.c

index 7840400f7600718136e749579ab632a1671f6fb6..b460276663d88b74478aff99ff25a1c88bf5801d 100644 (file)
@@ -475,9 +475,11 @@ tvh_thread_mutex_failed
 
   htsbuf_queue_init(&q, 0);
   htsbuf_qprintf(&q, "REASON: %s (%s:%d)\n", reason, filename, lineno);
-  htsbuf_qprintf(&q, "mutex %p locked in: %s:%i (thread %ld)\n", mutex, mutex->filename, mutex->lineno, mutex->tid);
-  LIST_FOREACH(w, &mutex->waiters, link)
-    htsbuf_qprintf(&q, "mutex %p   waiting in: %s:%i (thread %ld)\n", mutex, w->filename, w->lineno, w->tid);
+  if (mutex) {
+    htsbuf_qprintf(&q, "mutex %p locked in: %s:%i (thread %ld)\n", mutex, mutex->filename, mutex->lineno, mutex->tid);
+    LIST_FOREACH(w, &mutex->waiters, link)
+      htsbuf_qprintf(&q, "mutex %p   waiting in: %s:%i (thread %ld)\n", mutex, w->filename, w->lineno, w->tid);
+  }
   TAILQ_FOREACH(m, &thrwatch_mutexes, link) {
     if (m == mutex) continue;
     htsbuf_qprintf(&q, "mutex %p other in: %s:%i (thread %ld)\n", m, m->filename, m->lineno, m->tid);