On Mon, Aug 18, 2008 at 02:44:31PM +1000, Paul Wickham wrote:
> <--- got a packet, length=1676, type=104(NAME), id=8
> ---- file name count=15
> drw-rw-rw   1 root       root             0 Aug 18 11:48 .
> drw-rw-rw   1 root       root             0 Aug 18 11:48 ..

I suspect the rest of 15 file entries were invalid in some way.
Please apply this patch and redo the ls with debug 10.

--
   Alexander.
Index: SFtp.cc
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/SFtp.cc,v
retrieving revision 1.80
diff -u -p -r1.80 SFtp.cc
--- SFtp.cc     16 May 2008 08:45:01 -0000      1.80
+++ SFtp.cc     19 Aug 2008 08:18:35 -0000
@@ -1912,7 +1912,7 @@ void SFtp::Request_RENAME::Pack(Buffer *
 
 const char *SFtp::utf8_to_lc(const char *s)
 {
-   if(!recv_translate)
+   if(!recv_translate || !s)
       return s;
 
    recv_translate->ResetTranslation();
@@ -1925,7 +1925,7 @@ const char *SFtp::utf8_to_lc(const char 
 }
 const char *SFtp::lc_to_utf8(const char *s)
 {
-   if(!send_translate)
+   if(!send_translate || !s)
       return s;
 
    send_translate->ResetTranslation();
@@ -1947,6 +1947,10 @@ FileInfo *SFtp::MakeFileInfo(const NameA
 {
    const FileAttrs *a=&na->attrs;
    const char *name=utf8_to_lc(na->name);
+   const char *longname=utf8_to_lc(na->longname);
+
+   
LogNote(10,"NameAttrs(name=\"%s\",type=%d,longname=\"%s\")\n",name?name:"",a->type,longname?longname:"");
+
    if(!name || !name[0])
       return 0;
    if(strchr(name,'/'))
@@ -1961,8 +1965,8 @@ FileInfo *SFtp::MakeFileInfo(const NameA
    case SSH_FILEXFER_TYPE_SYMLINK:  fi->SetType(fi->SYMLINK);   break;
    default: return 0;
    }
-   if(na->longname)
-      fi->SetLongName(utf8_to_lc(na->longname));
+   if(longname)
+      fi->SetLongName(longname);
    if(a->flags&SSH_FILEXFER_ATTR_SIZE)
       fi->SetSize(a->size);
    if(a->flags&SSH_FILEXFER_ATTR_UIDGID)

Reply via email to