diff options
Diffstat (limited to 'apps/netutils/ftpc/ftpc_getfile.c')
-rw-r--r-- | apps/netutils/ftpc/ftpc_getfile.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/netutils/ftpc/ftpc_getfile.c b/apps/netutils/ftpc/ftpc_getfile.c index a3ea5008d..095bf2414 100644 --- a/apps/netutils/ftpc/ftpc_getfile.c +++ b/apps/netutils/ftpc/ftpc_getfile.c @@ -188,8 +188,8 @@ static int ftpc_recvbinary(FAR struct ftpc_session_s *session, err = ENOMEM; goto errout_with_err; } - - while (!feof(rinstream)) + + for (;;) { if (ftpc_waitinput(session) != 0) { @@ -201,8 +201,13 @@ static int ftpc_recvbinary(FAR struct ftpc_session_s *session, nread = fread(buf, sizeof(char), CONFIG_FTP_BUFSIZE, rinstream); if (nread <= 0) { - (void)ftpc_xfrabort(session, rinstream); - ret = ERROR; + /* nread == 0 means end of file */ + + if (nread < 0) + { + (void)ftpc_xfrabort(session, rinstream); + ret = ERROR; + } break; } |