Nigel Tao [Fri, 21 Sep 2012 19:54:32 +0000 (05:54 +1000)]
[release-branch.go1] image/jpeg: send a correct Start Of Scan (SOS) header.
««« backport 4a67b1f1e771
image/jpeg: send a correct Start Of Scan (SOS) header.
Section B.2.3 of http://www.w3.org/Graphics/JPEG/itu-t81.pdf discusses
the End of spectral selection (Se) byte.
Apparently many JPEG decoders ignore the Se byte (or let it through
with a warning), but some configurations reject them. For example,
http://download.blender.org/source/chest/blender_2.03_tree/jpeg/jcmaster.c
has these lines:
if (Ss != 0 || Se != DCTSIZE2-1 || Ah != 0 || Al != 0)
ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno);
Shenghou Ma [Fri, 21 Sep 2012 19:54:29 +0000 (05:54 +1000)]
[release-branch.go1] math, runtime: use a NaN that matches gcc's
««« backport 1f62df249175
math, runtime: use a NaN that matches gcc's
our old choice is not working properly at least on VFPv2 in
ARM1136JF-S (it's not preserved across float64->float32 conversions).
[release-branch.go1] cmd/gc: accept switches on comparable arrays.
««« backport d68605d10a6b
cmd/gc: accept switches on comparable arrays.
The compiler is incorrectly rejecting switches on arrays of
comparable types. It also doesn't catch incomparable structs
when typechecking the switch, leading to unreadable errors
during typechecking of the generated code.
Shenghou Ma [Fri, 21 Sep 2012 19:54:22 +0000 (05:54 +1000)]
[release-branch.go1] cmd/cgo: use 1 as last entry for __cgodebug_data
««« backport aeaab9df5600
cmd/cgo: use 1 as last entry for __cgodebug_data
LLVM-based gcc will place all-zero data in a zero-filled
section, but our debug/macho can't handle that.
Fixes #3821.
[release-branch.go1] syscall: workaround accept() bug on Darwin
««« backport 0eae95b0307a
syscall: workaround accept() bug on Darwin
Darwin kernels have a bug in accept() where error result from
an internal call is not checked and socket is accepted instead
of ECONNABORTED error. However, such sockets have no sockaddr,
which results in EAFNOSUPPORT error from anyToSockaddr, making
Go http servers running on Mac OS X easily susceptible to
denial of service from simple port scans with nmap.
Fixes #3849.
If a factored import group has a blank line, assume it is dividing
separate groups of imports (e.g. standard library vs. site-specific).
import (
"bytes"
"io"
"mycorp/package"
)
The most common case is inserting new standard library imports,
which are usually (stylistically) the first group, so we should drop
"net" in the above example immediately after "io".
Since this logic is getting non-trivial, add a test.
Shenghou Ma [Fri, 21 Sep 2012 19:54:16 +0000 (05:54 +1000)]
[release-branch.go1] log/syslog: don't append \n if there is one
««« backport 6556a8d85dd6
log/syslog: don't append \n if there is one
pkg log already appends a linefeed to the log message,
so log/syslog doesn't need to append another.
R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/6441048
Ian Lance Taylor [Fri, 21 Sep 2012 19:54:14 +0000 (05:54 +1000)]
[release-branch.go1] runtime: ignore signal 33 == SIGSETXID on GNU/Linux
««« backport bfa4e1f1027f
runtime: ignore signal 33 == SIGSETXID on GNU/Linux
When a cgo program calls setuid, setgid, etc., the GNU/Linux
pthread library sends signal SIGSETXID to each thread to tell
it to update its UID info. If Go is permitted to intercept
the default SIGSETXID signal handler, the program will hang.
This patch tells the runtime package to not try to intercept
SIGSETXID on GNU/Linux. This will be odd if a Go program
wants to try to use that signal, but it means that cgo
programs that call setuid, etc., won't hang.
Robert Griesemer [Fri, 21 Sep 2012 19:54:14 +0000 (05:54 +1000)]
[release-branch.go1] go/printer: don't crash if ast.FuncType.Params is nil
««« backport 7f6a0510d3c9
go/printer: don't crash if ast.FuncType.Params is nil
The go/ast comment for FuncType.Params says that the field may be nil.
Make sure the printer accepts such a value. The go/parser always sets
the field (to provide parenthesis position information), but a program
creating a Go AST from scatch may not.
Added corresponding test case.
Fixes #3870.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6448060
Rob Pike [Fri, 21 Sep 2012 19:54:11 +0000 (05:54 +1000)]
[release-branch.go1] text/template: fix bug in map indexing
««« backport 0748cd92ed76
text/template: fix bug in map indexing
If the key is not present, return value of the type of the element
not the type of the key. Also fix a test that should have caught this case.
Rob Pike [Fri, 21 Sep 2012 19:54:11 +0000 (05:54 +1000)]
[release-branch.go1] encoding/gob: revert 6348067, which broke compatibility
««« backport 3357d8d34ab8
encoding/gob: revert 6348067, which broke compatibility
Add commentary to explain better what's going on, but the
code change is a simple one-line reversal to the previous
form.
OpenSSL requires that RSA signatures be exactly the same byte-length
as the modulus. Currently it'll reject ~1/256 of our signatures: those
that end up a byte shorter.
Fixes #3796.
R=golang-dev, edsrzf, r
CC=golang-dev
https://golang.org/cl/6352093
David G. Andersen [Fri, 21 Sep 2012 19:54:01 +0000 (05:54 +1000)]
[release-branch.go1] pkg: Removing duplicated words ("of of", etc.), mostly from comments.
««« backport ce3a981ad1ef
pkg: Removing duplicated words ("of of", etc.), mostly from comments.
Ran 'double.pl' on the pkg tree to identify doubled words.
One change to an error string return in x509; the rest are in comments.
Thanks to Matt Jibson for the idea.
««« backport 100ddb84c85d
misc/chrome/gophertool: fix manifest
according to http://code.google.com/chrome/extensions/browserAction.html,
it should use "default_popup" instead of "popup".
David G. Andersen [Fri, 21 Sep 2012 19:53:57 +0000 (05:53 +1000)]
[release-branch.go1] math/big: Remove unnecessary test from nat.go multiplication
««« backport c533f48701cb
math/big: Remove unnecessary test from nat.go multiplication
The switch at the beginning of the function already ensures n > 1,
so testing for n < 2 is redundant.
[release-branch.go1] cmd/dist: Make windows.c's fatal() print to stderr
««« backport 3f7501fdb220
cmd/dist: Make windows.c's fatal() print to stderr
Generating env.bat using dist env -wp > env.bat failed silently
if case of an error, because the message was redirected to env.bat.
Verbose messages still go to stdout, causing problems, but that's
a seperate change.
Made errprintf() identical to xprintf(), except for the output handle.
Yes, it's duplicate code, but most of the function is unpacking
the argument list and preparing it for WriteFile(), which has to be
done anyway.
Robert Griesemer [Fri, 21 Sep 2012 19:53:53 +0000 (05:53 +1000)]
[release-branch.go1] go spec: clean up section on selectors
««« backport eb24cee7f21b
go spec: clean up section on selectors
- point out difference between selectors and qualified identifiers
- differentiate between illegal selectors and run-time panics
- use "indirect" as opposed to "dereference" consistently
- add extra links
Fixes #3779.
R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6326059
go/build section "Build Constraints", first paragraph said:
"... they must be appear near the top of the file ..."
fixed to:
"... they must appear near the top of the file ..."
Amir Mohammad Saied [Fri, 21 Sep 2012 19:53:49 +0000 (05:53 +1000)]
[release-branch.go1] misc/chrome/gophertool: Support for manifest version 1 is being phased out.
««« backport 0f017230e6b4
misc/chrome/gophertool: Support for manifest version 1 is being phased out.
Manifest version 1 was deprecated in Chrome 18, and support will be phased
out according to the schedule available at:
http://code.google.com/chrome/extensions/manifestVersion.html
This can only happen if the hash function we're using is getting
far more than it's fair share of collisions, but that has happened
to us repeatedly as we've expanded the allowed use cases for
hash tables (issue 1544, issue 2609, issue 2630, issue 2883, issue 3695).
Maybe this will help the next time we try something new.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6306083
David G. Andersen [Fri, 21 Sep 2012 19:53:44 +0000 (05:53 +1000)]
[release-branch.go1] net/rpc: fix typo in documentation, clarify semantics of error return
««« backport ef713d7587f2
net/rpc: fix typo in documentation, clarify semantics of error return
Several of my students were confused by trying to use both the error
return and a reply return, so I figured it was worth explicitly clarifying
that returning an error overrides the reply.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6327051