diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2017-03-01 15:50:04 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-03-02 08:39:58 +0100 |
commit | e0ff988ad865f3370ddeb8e75eefd9ed27d6641b (patch) | |
tree | 59c2471a2a2023a1a2b11dfc76a7dc78b4859677 /commands | |
parent | 019606ddc30b6795d83f863977c5ad0ef68ee296 (diff) | |
download | barebox-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.c | 4 |
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; |