Hi, I have found an serious problem when using 'scp -rp'. The usage of the static buffer "namebuf" together with calling `sink()' recursively results in overwriting the buffer np points to. This in turn results in a broken call to `ulimits()' and `chmod'. This patch solves the problem: Index: scp.c ==================================================================RCS file: /cvs/openssh_cvs/scp.c,v retrieving revision 1.56 diff -u -p -r1.56 scp.c --- scp.c 2001/02/18 03:55:16 1.56 +++ scp.c 2001/02/19 09:31:27 @@ -802,16 +802,16 @@ sink(argc, argv) } vect[0] = xstrdup(np); sink(1, vect); - if (vect[0]) - xfree(vect[0]); if (setimes) { setimes = 0; - if (utimes(np, tv) < 0) + if (utimes(vect[0], tv) < 0) run_err("%s: set times: %s", - np, strerror(errno)); + vect[0], strerror(errno)); } if (mod_flag) - (void) chmod(np, mode); + (void) chmod(vect[0], mode); + if (vect[0]) + xfree(vect[0]); continue; } omode = mode; Corinna -- Corinna Vinschen Cygwin Developer Red Hat, Inc. mailto:vinschen at redhat.com