]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_operhlp: Check for backslashes in get_url_file_name
authorJay Satiro <raysatiro@yahoo.com>
Sun, 7 Feb 2016 09:49:07 +0000 (04:49 -0500)
committerJay Satiro <raysatiro@yahoo.com>
Mon, 8 Feb 2016 08:14:04 +0000 (03:14 -0500)
Extract the filename from the last slash or backslash. Prior to this
change backslashes could be part of the filename.

This change needed for the curl tool built for Cygwin. Refer to the
CYGWIN addendum in advisory 20160127B.

Bug: https://curl.haxx.se/docs/adv_20160127B.html

src/tool_operhlp.c

index fb344f65dcb35d198a73fe82aac1de745289df14..b43dc95483966d0b7293b0a2c5590426a41318ea 100644 (file)
@@ -129,7 +129,7 @@ char *add_file_name_to_url(CURL *curl, char *url, const char *filename)
  */
 CURLcode get_url_file_name(char **filename, const char *url)
 {
-  const char *pc;
+  const char *pc, *pc2;
 
   *filename = NULL;
 
@@ -139,7 +139,11 @@ CURLcode get_url_file_name(char **filename, const char *url)
     pc += 3;
   else
     pc = url;
+
+  pc2 = strrchr(pc, '\\');
   pc = strrchr(pc, '/');
+  if(pc2 && (!pc || pc < pc2))
+    pc = pc2;
 
   if(pc)
     /* duplicate the string beyond the slash */