On 29.04.2004 23:36, Joerg Heinicke wrote:

"/../" results in "/../" instead of "/" and I don't know ...

http://www.ietf.org/rfc/rfc2396.txt


5.2. Resolving Relative References to Absolute Form

6) a) All but the last segment of the base URI's path component is
      copied to the buffer.  In other words, any characters after the
      last (right-most) slash character, if any, are excluded.

   b) The reference's path component is appended to the buffer
      string.

   c) All occurrences of "./", where "." is a complete path segment,
      are removed from the buffer string.

   d) If the buffer string ends with "." as a complete path segment,
      that "." is removed.

   e) All occurrences of "<segment>/../", where <segment> is a
      complete path segment not equal to "..", are removed from the
      buffer string.  Removal of these path segments is performed
      iteratively, removing the leftmost matching pattern on each
      iteration, until no matching pattern remains.

   f) If the buffer string ends with "<segment>/..", where <segment>
      is a complete path segment not equal to "..", that
      "<segment>/.." is removed.

   g) If the resulting buffer string still begins with one or more
      complete path segments of "..", then the reference is
      considered to be in error.  Implementations may handle this
      error by retaining these components in the resolved path (i.e.,
      treating them as part of the final URI), by removing them from
      the resolved path (i.e., discarding relative levels above the
      root), or by avoiding traversal of the reference.

   h) The remaining buffer string is the reference URI's new path
      component.

g) means it's an error, but may be handled as /../ or / - jakarta.commons.io.FilenameUtils' null in the sense of notifying an error is also correct. Hmm ...

Joerg

Reply via email to