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 <[email protected]>
---
 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


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to