Re: bug in 1.8.2 with

2003-10-14 Thread Hrvoje Niksic
You're right -- that code was broken.  Thanks for the patch; I've now
applied it to CVS with the following ChangeLog entry:

2003-10-15  Philip Stadermann  <[EMAIL PROTECTED]>

* ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
elements might have been deleted.




bug in 1.8.2 with

2003-10-14 Thread Noèl Köthe
Hello,

which this download you will get a segfault.

wget --passive-ftp --limit-rate 32k -r -nc -l 50 \
-X */binary-alpha,*/binary-powerpc,*/source,*/incoming \
-R alpha.deb,powerpc.deb,diff.gz,.dsc,.orig.tar.gz \
ftp://ftp.gwdg.de/pub/x11/kde/stable/3.1.4/Debian

Philip Stadermann <[EMAIL PROTECTED]> discover this problem
and submitted the attached patch.
Its a problem with the linked list.

-- 
Noèl Köthe 
Debian GNU/Linux, www.debian.org
--- ftp.c.orig  2003-10-14 15:37:15.0 +0200
+++ ftp.c   2003-10-14 15:39:28.0 +0200
@@ -1670,22 +1670,21 @@
 static uerr_t
 ftp_retrieve_glob (struct url *u, ccon *con, int action)
 {
-  struct fileinfo *orig, *start;
+  struct fileinfo *start;
   uerr_t res;
   struct fileinfo *f;
  
 
   con->cmd |= LEAVE_PENDING;
 
-  res = ftp_get_listing (u, con, &orig);
+  res = ftp_get_listing (u, con, &start);
   if (res != RETROK)
 return res;
-  start = orig;
   /* First: weed out that do not conform the global rules given in
  opt.accepts and opt.rejects.  */
   if (opt.accepts || opt.rejects)
 {
-   f = orig;
+   f = start;
   while (f)
{
  if (f->type != FT_DIRECTORY && !acceptable (f->name))
@@ -1698,7 +1697,7 @@
}
 }
   /* Remove all files with possible harmful names */
-  f = orig;
+  f = start;
   while (f)
   {
  if (has_invalid_name(f->name))


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil