[#83773] [Ruby trunk Bug#14108] Seg Fault with MinGW on svn 60769 — usa@...
Issue #14108 has been updated by usa (Usaku NAKAMURA).
9 messages
2017/11/15
[#83774] Re: [Ruby trunk Bug#14108] Seg Fault with MinGW on svn 60769
— Eric Wong <normalperson@...>
2017/11/15
usa@garbagecollect.jp wrote:
[#83775] Re: [Ruby trunk Bug#14108] Seg Fault with MinGW on svn 60769
— "U.NAKAMURA" <usa@...>
2017/11/15
Hi, Eric
[#83779] Re: [Ruby trunk Bug#14108] Seg Fault with MinGW on svn 60769
— Eric Wong <normalperson@...>
2017/11/15
"U.NAKAMURA" <usa@garbagecollect.jp> wrote:
[#83781] Re: [Ruby trunk Bug#14108] Seg Fault with MinGW on svn 60769
— "U.NAKAMURA" <usa@...>
2017/11/15
Hi, Eric,
[#83782] Re: [Ruby trunk Bug#14108] Seg Fault with MinGW on svn 60769
— Eric Wong <normalperson@...>
2017/11/15
"U.NAKAMURA" <usa@garbagecollect.jp> wrote:
[ruby-core:83784] [Ruby trunk Bug#8352] URI squeezes a sequence of slashes in merging paths when it shouldn't
From:
knu@...
Date:
2017-11-15 11:24:33 UTC
List:
ruby-core #83784
Issue #8352 has been updated by knu (Akinori MUSHA).
Addressable::URI (of the addressable gem) properly preserves sequences of slashes in a path, so it is a workaround to use it instead.
I've confirmed that `net/url` of Go, `URI` of Perl, `urlparse.urljoin` of Python2 or `java.net.URL` of Java never does this kind of unwanted normalization.
A single exception I could find, however, was `urllib.parse` of Python3. (!)
```
% python3
Python 3.6.3 (default, Nov 4 2017, 01:15:26)
[GCC 4.2.1 Compatible FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564)] on freebsd11
Type "help", "copyright", "credits" or "license" for more information.
>>> from urllib.parse import urljoin
>>> urljoin('http://example.com/foo//bar/baz', '.')
'http://example.com/foo/bar/'
```
I'm not sure if this is an intentional change from Python2, but I believe any slash in the path part should be retained.
----------------------------------------
Bug #8352: URI squeezes a sequence of slashes in merging paths when it shouldn't
https://bugs.ruby-lang.org/issues/8352#change-67822
* Author: knu (Akinori MUSHA)
* Status: Open
* Priority: Normal
* Assignee: akira (akira yamada)
* Target version:
* ruby -v: ruby 2.1.0dev (2013-05-01 trunk 40540) [x86_64-freebsd9]
* Backport:
----------------------------------------
RFC 2396 (on which the library currently is based) or RFC 3986 says nothing about a sequence of slashes in the path part except for parsing rules when a URI (path) starts with two slashes.
It should be perfectly valid to have a slash right after another, and there is no reason to "normalize" a sequence of slashes into a single slash, which uri actually does in merging paths:
~~~
URI.parse('http://example.com/foo//bar/')+'.'
=> #<URI::HTTP:0x0000080303d2b0 URL:http://example.com/foo/bar/>
~~~
Fixing this may be as easy as changing the regexp in URI::Generic#split_path from %r{/+} to %r{/}, but I wonder how the impact of incompatibility it may introduce would be.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>