delete created file when fallocate fails

master
Jose M. Guisado 2022-09-28 17:22:50 +02:00
parent db4f4980c5
commit ec5b9dc003
1 changed files with 12 additions and 0 deletions

View File

@ -241,6 +241,17 @@ static int tip_client_get_payload(struct tip_client *cli)
return 1;
}
static int delete_file(const char *filename)
{
if (unlink(filename) < 0) {
syslog(LOG_ERR, "cannot delete file %s: %s",
filename, strerror(errno));
return -1;
}
return 0;
}
static int tip_client_head_hdr(struct tip_client *cli)
{
char *ptr;
@ -277,6 +288,7 @@ static int tip_client_head_hdr(struct tip_client *cli)
if (fallocate(cli->fd, 0, 0, cli->content_len) < 0) {
syslog(LOG_ERR, "failed to allocate room for file %s: %s",
filename, strerror(errno));
delete_file(filename);
return -1;
}