4a48a7d [release-branch.go1.15] cmd/go: don't lookup the path for CC when invoking cgo

4 files Authored by Jay Conrod 3 years ago, Committed by Dmitri Shuralyov 3 years ago,
    [release-branch.go1.15] cmd/go: don't lookup the path for CC when invoking cgo
    
    Previously, if CC was a path without separators (like gcc or clang),
    we'd look it up in PATH in cmd/go using internal/execabs.LookPath,
    then pass the resolved path to cgo in CC.
    
    This caused a regression: if the directory in PATH containing CC has a
    space, cgo splits it and interprets it as multiple arguments.
    
    With this change, cmd/go no longer resolves CC before invoking
    cgo. cgo does the path lookup on each invocation. This reverts the
    security fix CL 284780, but that was redundant with the addition of
    internal/execabs (CL 955304), which still protects us.
    
    NOTE: This CL includes a related test fix from CL 286292.
    
    Fixes #43860
    
    Change-Id: I65d91a1e303856df8653881eb6e2e75a3bf95c49
    Reviewed-on: https://go-review.googlesource.com/c/go/+/285873
    Trust: Jay Conrod <jayconrod@google.com>
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Go Bot <gobot@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    (cherry picked from commit a2cef9b544708ecae983ed8836ee2425a28aab68)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/285954
    Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>