[libbluray-devel] disc: fix handling of read errors when caching files
hpi1
git at videolan.org
Sun May 15 15:44:39 CEST 2016
libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Sun May 15 16:11:58 2016 +0300| [d90bbc27c9eeefdb2a31522e0ad901301459ff6f] | committer: hpi1
disc: fix handling of read errors when caching files
> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=d90bbc27c9eeefdb2a31522e0ad901301459ff6f
---
src/libbluray/disc/disc.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/libbluray/disc/disc.c b/src/libbluray/disc/disc.c
index b61281e..defa084 100644
--- a/src/libbluray/disc/disc.c
+++ b/src/libbluray/disc/disc.c
@@ -480,11 +480,9 @@ int disc_cache_bdrom_file(BD_DISC *p, const char *rel_path, const char *cache_pa
do {
uint8_t buf[16*2048];
got = file_read(fp_in, buf, sizeof(buf));
- if (got < 0) {
- /* we'll call write(fp, buf, 0) after EOF. It is used to check for errors. */
- break;
- }
- if (fp_out->write(fp_out, buf, got) != got) {
+
+ /* we'll call write(fp, buf, 0) after EOF. It is used to check for errors. */
+ if (got < 0 || fp_out->write(fp_out, buf, got) != got) {
BD_DEBUG(DBG_FILE | DBG_CRIT, "error caching file %s\n", rel_path);
file_close(fp_out);
file_close(fp_in);
More information about the libbluray-devel
mailing list