Joerg Friedrich schrieb am Montag, 18. Mai 2009 um 16:02:49 +0200:
> reopen 529256
> thanks
> 
> Hi Daniel,
> 
> I'm sorry, but I was wrong with this  patch
> debian/patches/01-path.patch.
> 
> I'm not sure what exactly was wrong with my setup, but I checked with
> cadaver and the gnome-builtin webdav client.
> 
> Please revert this patch.


So, I'm back with some more time. Done some investigation. the problem
is this:

from DAVServer
    def local2uri(self,filename):
        """ map local filename to self.baseuri """

        pnum=len(split(self.directory,"/"))
        parts=split(filename,"/")[pnum:]
        sparts="/"+joinfields(parts,"/")
        uri=urlparse.urljoin(self.baseuri,sparts)

if self.directory ends with a slash pnum is one to large  and
parts=split(filename,"/")[pnum:] results in parts=''

directory is specified while starting the davserver with -D.
with bash tabcompletion there is always a trailing slash


I think this path sanitation will do: (But I just started learning
python :-)

--- server.py.orig      2009-05-18 19:35:13.000000000 +0200
+++ server.py   2009-05-18 19:35:27.000000000 +0200
@@ -52,6 +52,7 @@
          server = BaseHTTPServer.HTTPServer):
 
     directory = directory.strip()
+    directory = directory.rstrip('/')
     host = host.strip()
    
     if not os.path.isdir(directory):



-- 
Jörg Friedrich

There are only 10 types of people:
Those who understand binary and those who don't.

Attachment: signature.asc
Description: Digital signature

Reply via email to