• Russ Cox's avatar
    net/url: reject space in host; do not escape < > " in host · 617c93ce
    Russ Cox authored
    Host names in URLs must not use %-escaping for ASCII bytes, per RFC 3986.
    
    url.Parse has historically allowed spaces and < > " in the URL host.
    In Go 1.5, URL's String method started escaping those,
    but then Parse would rejects the escaped form.
    This CL is an attempt at some consistency between Parse and String
    as far as the accepted host characters and the encoding of host characters,
    so that if Parse succeeds, then Parse -> String -> Parse also succeeds.
    
    Allowing space seems like a mistake, so reject that in Parse.
    (Similarly, reject \t, \x01, and so on, all of which were being allowed.)
    
    Allowing < > " doesn't seem awful, so continue to do that,
    and go back to the Go 1.4 behavior of not escaping them in String.
    
    Fixes #11302.
    
    Change-Id: I0bf65b874cd936598f20694574364352a5abbe5f
    Reviewed-on: https://go-review.googlesource.com/17387Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    617c93ce
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang.org/x/net/http2/hpack Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...