]> granicus.if.org Git - curl/commitdiff
dedotdot: fixed output for ".." and "." only input
authorDaniel Stenberg <daniel@haxx.se>
Fri, 2 Jun 2017 15:50:45 +0000 (17:50 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 2 Jun 2017 22:11:51 +0000 (00:11 +0200)
Found when updating test 1395, which I did to increase test coverage of
this source file...

Closes #1535

lib/dotdot.c
tests/unit/unit1395.c

index ea7c8a04f6bbf627932c57cdd6e820cf687bf130..20603bcab72b5088ff33777d9afc36a24dbfa1d2 100644 (file)
@@ -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 {
index ba8e14f45e3a29b34146f215abd9a02e636270e4..13ea97bc41abc6ba369df6f39f4dc65370823741 100644 (file)
@@ -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++) {