[libbluray-devel] Check file_seek() return value
hpi1
git at videolan.org
Thu Dec 5 12:44:54 CET 2013
libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Tue Dec 3 10:51:00 2013 +0200| [8d84586aaf2331594f41adbdbdf1af5864985252] | committer: hpi1
Check file_seek() return value
> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=8d84586aaf2331594f41adbdbdf1af5864985252
---
src/libbluray/bluray.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
index 8b93706..8a426aa 100644
--- a/src/libbluray/bluray.c
+++ b/src/libbluray/bluray.c
@@ -534,7 +534,11 @@ static int _open_m2ts(BLURAY *bd, BD_STREAM *st)
int64_t clip_size = file_size(st->fp);
if (clip_size > 0) {
- file_seek(st->fp, st->clip_block_pos, SEEK_SET);
+ if (file_seek(st->fp, st->clip_block_pos, SEEK_SET) < 0) {
+ BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to seek clip %s!\n", st->clip->name);
+ _close_m2ts(st);
+ return 0;
+ }
st->clip_size = clip_size;
st->int_buf_off = 6144;
@@ -565,6 +569,7 @@ static int _open_m2ts(BLURAY *bd, BD_STREAM *st)
}
BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Clip %s empty!\n", st->clip->name);
+ _close_m2ts(st);
}
BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to open clip %s!\n", st->clip->name);
@@ -630,7 +635,10 @@ static int _read_block(BLURAY *bd, BD_STREAM *st, uint8_t *buf)
/* skip broken unit */
st->clip_block_pos += len;
st->clip_pos += len;
- file_seek(st->fp, st->clip_block_pos, SEEK_SET);
+
+ if (file_seek(st->fp, st->clip_block_pos, SEEK_SET) < 0) {
+ BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to seek clip %s!\n", st->clip->name);
+ }
return 0;
}
@@ -733,7 +741,9 @@ static int64_t _seek_stream(BLURAY *bd, BD_STREAM *st,
st->clip_pos = (uint64_t)clip_pkt * 192;
st->clip_block_pos = (st->clip_pos / 6144) * 6144;
- file_seek(st->fp, st->clip_block_pos, SEEK_SET);
+ if (file_seek(st->fp, st->clip_block_pos, SEEK_SET) < 0) {
+ BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to seek clip %s!\n", st->clip->name);
+ }
st->int_buf_off = 6144;
More information about the libbluray-devel
mailing list