[PATCH] memcmp: fix comparison on short read
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Wed Mar 1 06:50:04 PST 2017
read() might return less than $count bytes which is only an upper limit.
The user is supposed to repeat the command to fill a buffer completely.
So use the convenience wrapper read_full in memcmp.
This fixes memcmp on /dev/nand0 on an Armada XP.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
commands/memcmp.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/commands/memcmp.c b/commands/memcmp.c
index ce044df0d935..a00fddbc825f 100644
--- a/commands/memcmp.c
+++ b/commands/memcmp.c
@@ -91,13 +91,13 @@ static int do_memcmp(int argc, char *argv[])
now = min((loff_t)RW_BUF_SIZE, count);
- r1 = read(sourcefd, mem_rw_buf, now);
+ r1 = read_full(sourcefd, mem_rw_buf, now);
if (r1 < 0) {
perror("read");
goto out;
}
- r2 = read(destfd, rw_buf1, now);
+ r2 = read_full(destfd, rw_buf1, now);
if (r2 < 0) {
perror("read");
goto out;
--
2.11.0
More information about the barebox
mailing list