X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fio%2Fkfile_block.c;h=e3bcdd3917fc1a21c6461701972900a17ffb7663;hb=470f5cb37d5adce8fa5efd0092b2885528d7fb32;hp=57c6f8d32fcf895636789d726bfeb6aa974b26b9;hpb=fa9b44a5be11d39c0eaaf768e540baa70dabb689;p=bertos.git diff --git a/bertos/io/kfile_block.c b/bertos/io/kfile_block.c index 57c6f8d3..e3bcdd39 100644 --- a/bertos/io/kfile_block.c +++ b/bertos/io/kfile_block.c @@ -32,6 +32,9 @@ * * \brief KFile interface over a KBlock. * + * \author Francesco Sacchi + * \author Daniele Basile + * */ #include "kfile_block.h" @@ -59,6 +62,8 @@ INLINE KFileBlock * KFILEBLOCK_CAST(KFile *fd) while (size) \ { \ block_idx_t id = (fd)->seek_pos / fb->blk->blk_size; \ + if (id >= fb->blk->blk_cnt) \ + break; \ size_t offset = (fd)->seek_pos % fb->blk->blk_size; \ size_t count = MIN(size, (size_t)(fb->blk->blk_size - offset)); \ size_t ret_len = kblock_##dir(fb->blk, id, buf, offset, count); \