• Ben Burkert's avatar
    net/http: ignore response body when forbidden by status code · 2da8a16c
    Ben Burkert authored
    A 1XX, 204, or 304 response may not include a response body according
    to RFC 7230, section 3.3.3. If a buggy server returns a 204 or 304
    response with a body that is chunked encoded, the invalid body is
    currently made readable in the Response. This can lead to data races due
    to the transport connection's read loop which does not wait for the body
    EOF when the response status is 204 or 304.
    
    The correct behavior is to ignore the body on a 204 or 304 response, and
    treat the body data as the beginning of the next request on the
    connection.
    
    Updates #22330.
    
    Change-Id: I89a457ceb783b6f66136d5bf9be0a9b0a04fa955
    Reviewed-on: https://go-review.googlesource.com/71910Reviewed-by: 's avatarTom Bergan <tombergan@google.com>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Tom Bergan <tombergan@google.com>
    2da8a16c
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...
context 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...
plugin 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 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...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash 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...