Tags:
create new tag
view all tags
There's a bug in the routine TWiki::getTWikiLib. It doesn't normalize more than one relative parent directory (eg, a /../ in the path). For example, if TWiki.pm is found in /foo/bar/baz/../../ then this routine will return /foo/bar/../ not the expected /foo/ .

The line to fix is, #516 in the 20011201 release of file lib/TWiki.pm:

    $twikiLibDir =~ s|([\\/])[^\\/]+[\\/]\.\.[\\/]|$1|go;

should be

    while ( $twikiLibDir =~ s|([\\/])[^\\/]+[\\/]\.\.[\\/]|$1|o);

I think the /g flag is iterative rather than recursive (at least that's what I think it tries to say on the perlop manpage - example with putting commas into a number).

-- SlavaKozlov - 26 Feb 2002

I've set this to BugReport since that's what it is.

-- RichardDonkin - 26 Mar 2002

I got a syntax error when I had applied the above patch, but the following worked:

    while ( $twikiLibDir =~ s|([\\/])[^\\/]+[\\/]\.\.[\\/]|$1|o) {};

I'm using Perl version 5.005_03

-- MikeLees - 04 Jun 2002

Fixed and in TWikiAlphaRelease.

-- PeterThoeny - 05 Jun 2002


Category: TWikiPatches
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r4 - 2002-06-05 - PeterThoeny
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.