diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-06-02 17:50:45 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-06-03 00:11:51 +0200 |
commit | cfd3e8f399c2bb2a7fdc51f01ddc12548b4f3892 (patch) | |
tree | 22fb75ddc49fbf04630071c51a703e52b64ff12f | |
parent | 10e02bc36a92a1d33067d72906784441d626c010 (diff) |
dedotdot: fixed output for ".." and "." only input
Found when updating test 1395, which I did to increase test coverage of
this source file...
Closes #1535
-rw-r--r-- | lib/dotdot.c | 3 | ||||
-rw-r--r-- | tests/unit/unit1395.c | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/dotdot.c b/lib/dotdot.c index ea7c8a04f..20603bcab 100644 --- a/lib/dotdot.c +++ b/lib/dotdot.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, 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 ba8e14f45..13ea97bc4 100644 --- a/tests/unit/unit1395.c +++ b/tests/unit/unit1395.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, 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++) { |