When copy file by rcp command, if the file > 2GB, it will not work. On host(Ubuntu 12.04.4 LTS): root@wl:/build#du -sh file2_2G_h.img 2.1G file2_2G_h.img root@wl:/build#$rcp file2_2G_h.img root@target_ip:/media/sda4/test rcp: lost connection
On target(inetutils has installed): root@17287:/media/sda4/test1# rcp root@host_ip:/build/file2_2G_h.img . rcp: rcp[970]: segfault at 22 ip 000000391dc47ec7 sp 00007ffd858e2d50 error 4 in libc-2.18.so[391dc00000+1a3000] Segmentation fault The cause is that it used incorrect data type on file size in sink() of rcp. The patch also references the follow link: https://bugzilla.redhat.com/attachment.cgi?id=89423 Signed-off-by: wlkang2...@126.com Signed-off-by: Wenlin Kang <wenlin.k...@windriver.com> --- src/rcp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rcp.c b/src/rcp.c index 21f55b6..bafa35f 100644 --- a/src/rcp.c +++ b/src/rcp.c @@ -876,9 +876,9 @@ sink (int argc, char *argv[]) enum { YES, NO, DISPLAYED } wrerr; BUF *bp; - off_t i, j; + off_t i, j, size; int amt, count, exists, first, mask, mode, ofd, omode; - int setimes, size, targisdir, wrerrno; + int setimes, targisdir, wrerrno; char ch, *cp, *np, *targ, *vect[1], buf[BUFSIZ]; const char *why; -- 1.7.9.5