summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2017-03-01 15:50:04 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2017-03-02 08:39:58 +0100
commite0ff988ad865f3370ddeb8e75eefd9ed27d6641b (patch)
tree59c2471a2a2023a1a2b11dfc76a7dc78b4859677 /commands
parent019606ddc30b6795d83f863977c5ad0ef68ee296 (diff)
downloadbarebox-e0ff988ad865f3370ddeb8e75eefd9ed27d6641b.tar.gz
barebox-e0ff988ad865f3370ddeb8e75eefd9ed27d6641b.tar.xz
memcmp: fix comparison on short read
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@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands')
-rw-r--r--commands/memcmp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/commands/memcmp.c b/commands/memcmp.c
index 7be0033f55..981c8cb38d 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;