From ed2334b2cac6f3c850b5fdc230c9975cb16a5deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Mon, 21 Mar 2011 22:35:32 +0100 Subject: [PATCH] Dont crash when deleting recordings and filename is not yet set. Ticket #383 --- src/dvr/dvr.h | 2 +- src/dvr/dvr_db.c | 19 ++++++++++--------- src/webui/extjs.c | 6 +++--- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/dvr/dvr.h b/src/dvr/dvr.h index f31249ff..2481d0df 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -274,7 +274,7 @@ void dvr_extra_time_pre_set(dvr_config_t *cfg, int d); void dvr_extra_time_post_set(dvr_config_t *cfg, int d); -int dvr_entry_delete(dvr_entry_t *de); +void dvr_entry_delete(dvr_entry_t *de); /** * Query interface diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index aa59112f..a8678f99 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -1161,17 +1161,18 @@ dvr_val2pri(dvr_prio_t v) return val2str(v, priotab) ?: "invalid"; } -int + +/** + * + */ +void dvr_entry_delete(dvr_entry_t *de) { - if(!unlink(de->de_filename) || errno == ENOENT) { - tvhlog(LOG_DEBUG, "dvr", "Delete recording '%s'", de->de_filename); - dvr_entry_remove(de); - return 0; - } else { - tvhlog(LOG_WARNING, "dvr", "Unable to delete recording '%s' -- %s", - de->de_filename, strerror(errno)); - return -1; + if(de->de_filename != NULL) { + if(unlink(de->de_filename) && errno != ENOENT) + tvhlog(LOG_WARNING, "dvr", "Unable to remove file '%s' from disk -- %s", + de->de_filename, strerror(errno)); } + dvr_entry_remove(de); } diff --git a/src/webui/extjs.c b/src/webui/extjs.c index 7468dea2..40495d29 100644 --- a/src/webui/extjs.c +++ b/src/webui/extjs.c @@ -764,7 +764,7 @@ extjs_dvr(http_connection_t *hc, const char *remain, void *opaque) event_t *e; dvr_entry_t *de; const char *s; - int flags = 0, retval; + int flags = 0; dvr_config_t *cfg; if(op == NULL) @@ -813,10 +813,10 @@ extjs_dvr(http_connection_t *hc, const char *remain, void *opaque) return HTTP_STATUS_BAD_REQUEST; } - retval = dvr_entry_delete(de); + dvr_entry_delete(de); out = htsmsg_create_map(); - htsmsg_add_u32(out, "success", !retval); + htsmsg_add_u32(out, "success", 1); } else if(!strcmp(op, "createEntry")) {