OSDN Git Service

udp: add missing mutex unlock
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 20 Oct 2012 21:31:32 +0000 (23:31 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 20 Oct 2012 21:31:32 +0000 (23:31 +0200)
Fixes CID703688
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/udp.c

index 433f961..c6f0a1f 100644 (file)
@@ -766,8 +766,10 @@ static int udp_read(URLContext *h, uint8_t *buf, int size)
                 int64_t t = av_gettime() + 100000;
                 struct timespec tv = { .tv_sec  =  t / 1000000,
                                        .tv_nsec = (t % 1000000) * 1000 };
-                if (pthread_cond_timedwait(&s->cond, &s->mutex, &tv) < 0)
+                if (pthread_cond_timedwait(&s->cond, &s->mutex, &tv) < 0) {
+                    pthread_mutex_unlock(&s->mutex);
                     return AVERROR(errno == ETIMEDOUT ? EAGAIN : errno);
+                }
                 nonblock = 1;
             }
         } while( 1);