Handle reading outside EOF.
[bertos.git] / bertos / fs / battfs.c
index c29cc8e1733657f829a362ba402ea60ca56f1b2e..119085907637112386c7ef5094722166e981e127 100644 (file)
@@ -566,10 +566,7 @@ static bool getNewPage(struct BattFsSuper *disk, pgcnt_t new_pos, inode_t inode,
        new_hdr->pgoff =  pgoff;
        new_hdr->fill = 0;
        new_hdr->seq = 0;
-       if (!setBufferHdr(disk, new_hdr))
-               return false;
-       else
-               return true;
+       return setBufferHdr(disk, new_hdr);
 }
 
 /**
@@ -668,7 +665,7 @@ static size_t battfs_read(struct KFile *fd, void *_buf, size_t size)
        pgaddr_t addr_offset;
        pgaddr_t read_len;
 
-       size = MIN((kfile_off_t)size, fd->size - fd->seek_pos);
+       size = MIN((kfile_off_t)size, MAX(fd->size - fd->seek_pos, 0));
 
        while (size)
        {