From 8e0892b2f234fcb0306ae8d68883add7443d1fd5 Mon Sep 17 00:00:00 2001 From: SPRESENSE <41312067+SPRESENSE@users.noreply.github.com> Date: Thu, 19 Aug 2021 12:38:13 +0900 Subject: [PATCH] nshlib: Fix write buffer position in nsh cp command The iobuffer for write buffer position need to be update if write API cannot write data at once. --- nshlib/nsh_fscmds.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nshlib/nsh_fscmds.c b/nshlib/nsh_fscmds.c index a52be8020..42815d29c 100644 --- a/nshlib/nsh_fscmds.c +++ b/nshlib/nsh_fscmds.c @@ -587,10 +587,11 @@ int cmd_cp(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) { int nbytesread; int nbyteswritten; + char *iobuffer = vtbl->iobuffer; do { - nbytesread = read(rdfd, vtbl->iobuffer, IOBUFFERSIZE); + nbytesread = read(rdfd, iobuffer, IOBUFFERSIZE); if (nbytesread == 0) { /* End of file */ @@ -621,10 +622,11 @@ int cmd_cp(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) do { - nbyteswritten = write(wrfd, vtbl->iobuffer, nbytesread); + nbyteswritten = write(wrfd, iobuffer, nbytesread); if (nbyteswritten >= 0) { nbytesread -= nbyteswritten; + iobuffer += nbyteswritten; } else {