downloadbuffer: close file before trying to remove

On Windows, the file handles must be closed before you can delete a file.
Also, it would cause an error if you try to close an already closed handle.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/814>
This commit is contained in:
Doug Nazar 2021-05-06 23:00:57 -04:00
parent 135f517ea3
commit c71805c565

View file

@ -963,15 +963,17 @@ gst_download_buffer_close_temp_location_file (GstDownloadBuffer * dlbuf)
GST_DEBUG_OBJECT (dlbuf, "closing sparse file");
gst_sparse_file_free (dlbuf->file);
dlbuf->file = NULL;
/* fd was closed by gst_sparse_file_free's fclose() */
dlbuf->temp_fd = -1;
if (dlbuf->temp_remove) {
if (remove (dlbuf->temp_location) < 0) {
GST_WARNING_OBJECT (dlbuf, "Failed to remove temporary file %s: %s",
dlbuf->temp_location, g_strerror (errno));
}
}
gst_sparse_file_free (dlbuf->file);
close (dlbuf->temp_fd);
dlbuf->file = NULL;
}
static void