From: Adam Sutton Date: Sat, 16 Feb 2013 19:31:24 +0000 (+0000) Subject: Issue #1622 - timeshift: remove post double list removal X-Git-Tag: v3.9~169 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dace3778559f705254afde27dcd492db34ac8ab2;p=thirdparty%2Ftvheadend.git Issue #1622 - timeshift: remove post double list removal --- diff --git a/src/timeshift/timeshift_filemgr.c b/src/timeshift/timeshift_filemgr.c index cf6906e23..5ce488e07 100644 --- a/src/timeshift/timeshift_filemgr.c +++ b/src/timeshift/timeshift_filemgr.c @@ -161,7 +161,7 @@ void timeshift_filemgr_remove { if (tsf->fd != -1) close(tsf->fd); - tvhlog(LOG_DEBUG, "timeshift", "ts %d remove %s\n", ts->id, tsf->path); + tvhlog(LOG_DEBUG, "timeshift", "ts %d remove %s", ts->id, tsf->path); TAILQ_REMOVE(&ts->files, tsf, link); atomic_add_u64(×hift_total_size, -tsf->size); timeshift_reaper_remove(tsf); @@ -216,6 +216,7 @@ timeshift_file_t *timeshift_filemgr_get ( timeshift_t *ts, int create ) if (d > (ts->max_time+5)) { if (!tsf_hd->refcount) { timeshift_filemgr_remove(ts, tsf_hd, 0); + tsf_hd = NULL; } else { tvhlog(LOG_DEBUG, "timeshift", "ts %d buffer full", ts->id); ts->full = 1; @@ -228,12 +229,12 @@ timeshift_file_t *timeshift_filemgr_get ( timeshift_t *ts, int create ) atomic_pre_add_u64(×hift_total_size, 0) >= timeshift_max_size) { /* Remove the last file (if we can) */ - if (!tsf_hd->refcount) { + if (tsf_hd && !tsf_hd->refcount) { timeshift_filemgr_remove(ts, tsf_hd, 0); /* Full */ } else { - tvhlog(LOG_DEBUG, "timshift", "ts %d buffer full", ts->id); + tvhlog(LOG_DEBUG, "timeshift", "ts %d buffer full", ts->id); ts->full = 1; } }