Re: [PATCH] segmentation fault when do ls on local directory
"Alexander V. Lukyanov" <[email protected]> Mon, 26 Mar 2007 10:56:15 +0400
| Newsgroups | gmane.network.lftp.devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Mar 26, 2007 at 10:00:09AM +0800, Liu Yubao wrote:
> Someone at a BBS found lftp on Debian Sid (lftp v3.5.9) gets a segmentation
> fault when do ls on local directory:
>
> DirList::~DirList()
> {
> delete buf;
> - if(args)
> - delete args;
> }
This patch leads to a memory leak in other protocols. A better fix is
attached. Thanks for report!
--
Alexander.
diff
(text/plain, 701 B)
Index: LocalAccess.cc
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/LocalAccess.cc,v
retrieving revision 1.53
diff -u -p -r1.53 LocalAccess.cc
--- LocalAccess.cc 13 Mar 2007 11:14:07 -0000 1.53
+++ LocalAccess.cc 26 Mar 2007 06:41:11 -0000
@@ -670,12 +670,12 @@ DirList *LocalAccess::MakeDirList(ArgV *
#include "ArgV.h"
LocalDirList::LocalDirList(ArgV *a,const char *cwd)
- : DirList(a)
+ : DirList(0)
{
fg_data=0;
a->setarg(0,"ls");
a->insarg(1,"-l");
- InputFilter *f=new InputFilter(a);
+ InputFilter *f=new InputFilter(a); // a is consumed.
f->SetCwd(cwd);
ubuf=new IOBufferFDStream(f,IOBuffer::GET);
}