diff options
Diffstat (limited to 'misc')
| -rw-r--r-- | misc/metainfo.c | 2 | ||||
| -rw-r--r-- | misc/stream.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/misc/metainfo.c b/misc/metainfo.c index 104b927..c69f64b 100644 --- a/misc/metainfo.c +++ b/misc/metainfo.c @@ -279,7 +279,7 @@ mi_test_files(const char *files) int pcount = 0; if (!benc_isdct(fdct)) return 0; - if (benc_dget_int(fdct, "length") <= 0) + if (benc_dget_int(fdct, "length") < 0) return 0; if ((plst = benc_dget_lst(fdct, "path")) == NULL) return 0; diff --git a/misc/stream.c b/misc/stream.c index 6f9492e..32a2512 100644 --- a/misc/stream.c +++ b/misc/stream.c @@ -83,6 +83,8 @@ bts_get(struct bt_stream *bts, off_t off, uint8_t *buf, size_t len) boff = 0; while (boff < len) { if (bts->fd == -1) { + while (bts->files[bts->index].length == 0) + bts->index++; err = bts->fd_cb(bts->files[bts->index].path, &bts->fd, bts->fd_arg); if (err != 0) @@ -125,6 +127,8 @@ bts_put(struct bt_stream *bts, off_t off, const uint8_t *buf, size_t len) boff = 0; while (boff < len) { if (bts->fd == -1) { + while (bts->files[bts->index].length == 0) + bts->index++; err = bts->fd_cb(bts->files[bts->index].path, &bts->fd, bts->fd_arg); if (err != 0) |