diff --git a/lib/dotdot.c b/lib/dotdot.c index ea7c8a04f6..20603bcab7 100644 --- a/lib/dotdot.c +++ b/lib/dotdot.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -147,6 +147,7 @@ char *Curl_dedotdotify(const char *input) else if(!strcmp(".", clone) || !strcmp("..", clone)) { *clone=0; + *out=0; } else { diff --git a/tests/unit/unit1395.c b/tests/unit/unit1395.c index ba8e14f45e..13ea97bc41 100644 --- a/tests/unit/unit1395.c +++ b/tests/unit/unit1395.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -65,6 +65,13 @@ UNITTEST_START { "/", "/" }, { "", "" }, { "/.../", "/.../" }, + { "./moo", "moo" }, + { "../moo", "moo" }, + { "/.", "/" }, + { "/..", "/" }, + { "/moo/..", "/" }, + { "..", "" }, + { ".", "" }, }; for(i=0; i < sizeof(pairs)/sizeof(pairs[0]); i++) {