diff mbox

mtd-utils: nanddump: write requested length only

Message ID 1387328586-24356-1-git-send-email-bisson.gary@gmail.com
State Accepted, archived
Headers show

Commit Message

Gary Bisson Dec. 18, 2013, 1:03 a.m. UTC
nanddump was always writing a whole page of data into the output
discarding the length actually requested. This patch allows to
write only the remaining length if oob is omitted. In case oob
is needed, it makes sense to copy the entire page.
---
 nanddump.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/nanddump.c b/nanddump.c
index 4ee7ed4..300aca6 100644
--- a/nanddump.c
+++ b/nanddump.c
@@ -445,8 +445,14 @@  int main(int argc, char * const argv[])
 						pretty_buf, PRETTY_BUF_LEN, true, canonical, ofs + i);
 				write(ofd, pretty_buf, strlen(pretty_buf));
 			}
-		} else
-			write(ofd, readbuf, bs);
+		} else {
+			/* Write requested length if oob is omitted */
+			size_t size_left = end_addr - ofs;
+			if (omitoob && (size_left < bs))
+				write(ofd, readbuf, size_left);
+			else
+				write(ofd, readbuf, bs);
+		}
 
 		if (omitoob)
 			continue;