bug-inetutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-inetutils] inetutils 1.9.1-4: ftp "get" command occasionally du


From: Mats Erik Andersson
Subject: Re: [bug-inetutils] inetutils 1.9.1-4: ftp "get" command occasionally dumps core,
Date: Sat, 31 Aug 2013 03:59:57 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

fredag den 30 augusti 2013 klockan 17:30 skrev Mister Me detta:
> --
> Mats Erik Andersson, Fri, 30 Aug 2013 21:07:40 +0200
> >
> > The only error I could achieve was to issue the same command so late that
> > the connection had timed out already, which provoked a segmentation fault,
> > but only after after the message "Passive mode refused.\nNot connected.".
> > Thus your core dump should be unrelated.
> 
> OK. Well, on the plus side, at least that's one bug you can reproduce. :)
> 
> I'll go grab the sources and build it here.  Let me know how you want me to
> instrument it and I'll do so and let you know what I find.

I have found that my segmentation fault appears only
when a macro was executed and the client has been
disconnected. The minute patch below resolves my issue.
It is taken against present day development HEAD, but
should fit inetutils-1.9.1 with a simple "-p1" shaving.

Some ideas:

   ftp.archlinux.org is throtteling the connection.
   Could it be that your macro is taking so long
   time that the connection times out, and then
   my problem is relevant also to your setting?
   Could vsftpd fail at update its timer?

   Positioning of printf-probes could preferable 
   be done close to "c_handler" and "connected"
   as well as loops in their vicinity. This would
   suggest that "ftp/domacro.c" and "ftp/main.c"
   are the most relevant files.

Let me boldly say that I appreciate very much your
help and interest in repairing GNU Inetutils.

Best regards,
  Mats E A

diff --git a/ftp/domacro.c b/ftp/domacro.c
index 9cad900..f0d31a0 100644
--- a/ftp/domacro.c
+++ b/ftp/domacro.c
@@ -153,6 +153,7 @@ domacro (int argc, char *argv[])
            {
              printf ("Not connected.\n");
              code = -1;
+             return;
            }
          else
            {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]