Opened 20 years ago
Closed 20 years ago
#1705 closed defect (fixed)
Attachment fail on Win32 without normalization of env.path
Reported by: | Owned by: | Christopher Lenz | |
---|---|---|---|
Priority: | high | Milestone: | 0.9 |
Component: | general | Version: | devel |
Severity: | normal | Keywords: | |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
I think that the value of Environment.path should be normalized nortation like 'c:\trac\project' not 'c:/trac/project' on windows environment. This style like 'c:/dir/dir' is usual in httpd.conf but it would cuase unexpected result of os.path.commonprefix() used in attachment.py. Thus adding attachement would fail.
Index: env.py =================================================================== --- env.py (revision 1846) +++ env.py (working copy) @@ -78,7 +78,7 @@ except ImportError: pass - self.path = path + self.path = os.path.normpath(path) self.__cnx_pool = None if create: self.create(db_str)
Attachments (0)
Change History (4)
comment:1 by , 20 years ago
Milestone: | → 0.9 |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 20 years ago
comment:3 by , 20 years ago
Priority: | normal → high |
---|
Maybe a TracError would be usefull. I think many people get shock if their configuration that was working fine for month stops working after doing an update.
Index: attachment.py =================================================================== --- attachment.py (revision 1862) +++ attachment.py (working copy) @@ -122,7 +122,10 @@ # attachments directory attachments_dir = os.path.join(self.env.path, 'attachments') commonprefix = os.path.commonprefix([attachments_dir, self.path]) - assert commonprefix == attachments_dir + if not commonprefix == attachments_dir: + raise TracError('Common prefix (%s) of attachments_dir (%s) and self.path (%s) not ok' % + (commonprefix,attachments_dir,self.path), + 'Attachment failed. Check TracEnv!' ); if not os.access(self.path, os.F_OK): os.makedirs(self.path)
comment:4 by , 20 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I had to make a quick fix for this, in preparation for other changes in attachment.py. I didn't modify env.py as suggested by the reporter, but instead fixed that particular failure in attachment.py: That way, it's less likely to introduce unwanted side-effects…
(see [1865])
#1719 has been marked as a duplicate of this ticket.