From 5dccbbd87604665e896472d52f3351c14c24d2b3 Mon Sep 17 00:00:00 2001 From: Marcus Prebble Date: Mon, 5 Oct 2015 17:32:54 +0200 Subject: [PATCH] mtd_read: Take the buffer offset into account when reading Subsequent calls to read() within the loop will now no longer overwrite the existing contents of buf. --- lib/libmtd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libmtd.c b/lib/libmtd.c index 60b4782..bf6d71f 100644 --- a/lib/libmtd.c +++ b/lib/libmtd.c @@ -1072,10 +1072,10 @@ int mtd_read(const struct mtd_dev_info *mtd, int fd, int eb, int offs, mtd->mtd_num, seek); while (rd < len) { - ret = read(fd, buf, len); + ret = read(fd, buf + rd, len - rd); if (ret < 0) return sys_errmsg("cannot read %d bytes from mtd%d (eraseblock %d, offset %d)", - len, mtd->mtd_num, eb, offs); + len - rd, mtd->mtd_num, eb, offs + rd); rd += ret; } -- 2.1.4