cmd_dd:if read nbyte less than bs,must write nbyte

if a file size is 10
use dd if=a of=b bs = 8
b file size will 16, is a error
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
This commit is contained in:
anjiahao 2022-02-21 17:39:09 +08:00 committed by Alan Carvalho de Assis
parent 283b1a4dfc
commit 4680a25a8c

View File

@ -102,7 +102,7 @@ static int dd_write(FAR struct dd_s *dd)
written = 0;
do
{
nbytes = write(dd->outfd, buffer, dd->sectsize - written);
nbytes = write(dd->outfd, buffer, dd->nbytes - written);
if (nbytes < 0)
{
FAR struct nsh_vtbl_s *vtbl = dd->vtbl;
@ -114,7 +114,7 @@ static int dd_write(FAR struct dd_s *dd)
written += nbytes;
buffer += nbytes;
}
while (written < dd->sectsize);
while (written < dd->nbytes);
return OK;
}