diff --git a/libavformat/cache.c b/libavformat/cache.c index 0746e98d3e75e004a34dd2abfc99f8392994863a..29b4a0687f0d710f21736bed6c4884f6334279b5 100644 --- a/libavformat/cache.c +++ b/libavformat/cache.c @@ -92,7 +92,7 @@ static int cache_open(URLContext *h, const char *arg, int flags) static int add_entry(URLContext *h, const unsigned char *buf, int size) { Context *c= h->priv_data; - int64_t pos; + int64_t pos = -1; int ret; CacheEntry *entry = av_malloc(sizeof(*entry)); CacheEntry *entry_ret; @@ -132,6 +132,8 @@ static int add_entry(URLContext *h, const unsigned char *buf, int size) return 0; fail: + if (pos >= 0) + ftruncate(c->fd, pos); av_free(entry); av_free(node); return ret;