diff --git "a/sdk/lib/fslib/vfatlib/check/io.c" "b/sdk/lib/fslib/vfatlib/check/io.c" index 01fb707e004..3dc107e1efb 100644 --- "a/sdk/lib/fslib/vfatlib/check/io.c" +++ "b/sdk/lib/fslib/vfatlib/check/io.c" @@ -374,6 +374,9 @@ void fs_write(off_t pos, int size, void *data) memcpy((char *)scratch + seek_delta, data, size); } + /* Seek back to the beginning of our read/write */ + if (lseek(fd, seekpos_aligned, 0) != seekpos_aligned) pdie("Seek to %lld",seekpos_aligned); + /* Write it back */ if ((did = write(fd, scratch, readsize_aligned)) == (int)readsize_aligned) {