Dont crash when deleting recordings and filename is not yet set. Ticket #383

This commit is contained in:
Andreas Öman 2011-03-21 22:35:32 +01:00
parent 1dd7dd9018
commit ed2334b2ca
3 changed files with 14 additions and 13 deletions

View file

@ -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

View file

@ -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);
}

View file

@ -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")) {