Sophie

Sophie

distrib > Mandriva > 10.0 > i586 > by-pkgid > 1288f7bc74fff958eb9849b1dd9cbf59 > files > 6

gftp-2.0.16-4.1.100mdk.src.rpm

Index: lib/protocols.c
===================================================================
RCS file: /cvs/gnome/gftp/lib/protocols.c,v
retrieving revision 1.122
diff -u -r1.122 protocols.c
--- lib/protocols.c	21 Dec 2004 01:25:40 -0000	1.122
+++ lib/protocols.c	19 Jan 2005 01:49:39 -0000
@@ -595,6 +595,7 @@
 gftp_get_next_file (gftp_request * request, const char *filespec,
                     gftp_file * fle)
 {
+  char *slashpos, *newfile;
   int fd, ret;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
@@ -612,6 +613,26 @@
     {
       gftp_file_destroy (fle, 0);
       ret = request->get_next_file (request, fle, fd);
+      if (fle->file != NULL && (slashpos = strrchr (fle->file, '/')) != NULL)
+        {
+          if (*(slashpos + 1) == '\0')
+            {
+              gftp_file_destroy (fle);
+              continue;
+            }
+
+          *slashpos = '\0';
+          newfile = g_strdup (slashpos + 1);
+
+          if (strcmp (fle->file, request->directory) != 0)
+            request->logging_function (gftp_logging_error, request,
+                                       _("Warning: Stripping path off of file '%s'. The stripped path (%s) doesn't match the current directory (%s)\n"),
+                                       newfile, fle->file, request->directory,
+                                       g_strerror (errno));
+          
+          g_free (fle->file);
+          fle->file = newfile;
+        }
 
       if (ret >= 0 && fle->file != NULL)
         fle->utf8_file = gftp_string_to_utf8 (request, fle->file);