From 7f1f80deed773457b474c04e6dd41a890ab4284a Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 30 Nov 1999 11:53:42 +0000 Subject: [PATCH] Avoid recursing into . and .. when in -r mode git-svn-id: svn://svn.tartarus.org/sgt/putty@332 cda61777-01e9-0310-a592-d414129be87e --- scp.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/scp.c b/scp.c index 299f6fd0..ac232fa5 100644 --- a/scp.c +++ b/scp.c @@ -277,10 +277,25 @@ static void source(char *src) } if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { - if (recursive) - rsource(src); - else + if (recursive) { + /* + * Avoid . and .. directories. + */ + char *p; + p = strrchr(src, '/'); + if (!p) + p = strrchr(src, '\\'); + if (!p) + p = src; + else + p++; + if (!strcmp(p, ".") || !strcmp(p, "..")) + /* skip . and .. */; + else + rsource(src); + } else { run_err("%s: not a regular file", src); + } return; } -- 2.11.0