Skip to content

Commit 3b9fbe2

Browse files
Address gosec findings
1 parent 73505c4 commit 3b9fbe2

File tree

14 files changed

+39
-30
lines changed

14 files changed

+39
-30
lines changed

.golangci.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,3 @@ linters:
55
- misspell
66
disable:
77
- errcheck
8-
9-
linters-settings:
10-
gosec:
11-
excludes:
12-
- G101 # Potential hardcoded credentials

cmd/shp/main.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ var hiddenLogFlags = []string{
3535
}
3636

3737
func main() {
38-
initGoFlags()
38+
if err := initGoFlags(); err != nil {
39+
fmt.Fprintf(os.Stderr, "ERROR: %v\n", err)
40+
os.Exit(1)
41+
}
3942
initPFlags()
4043

4144
streams := genericclioptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr}
@@ -48,7 +51,7 @@ func main() {
4851

4952
// initGoFlags initializes the flag sets for klog.
5053
// Any flags for "-h" or "--help" are ignored because pflag will show the usage later with all subcommands.
51-
func initGoFlags() {
54+
func initGoFlags() error {
5255
flagset := goflag.NewFlagSet(ApplicationName, goflag.ContinueOnError)
5356
goflag.CommandLine = flagset
5457
klog.InitFlags(flagset)
@@ -59,7 +62,7 @@ func initGoFlags() {
5962
args = append(args, arg)
6063
}
6164
}
62-
flagset.Parse(args)
65+
return flagset.Parse(args)
6366
}
6467

6568
// initPFlags initializes the pflags used by Cobra subcommands.

pkg/shp/cmd/build/list.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,5 @@ func (c *ListCommand) Run(params *params.Params, io *genericclioptions.IOStreams
7979
fmt.Fprintf(writer, columnTemplate, b.Name, b.Spec.Output.Image, message)
8080
}
8181

82-
writer.Flush()
83-
84-
return nil
82+
return writer.Flush()
8583
}

pkg/shp/cmd/build/run_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func TestStartBuildRunFollowLog(t *testing.T) {
9090
},
9191
}
9292

93-
for _, test := range tests {
93+
for i, test := range tests {
9494
name := "testpod"
9595
containerName := "container"
9696
pod := &corev1.Pod{
@@ -144,7 +144,7 @@ func TestStartBuildRunFollowLog(t *testing.T) {
144144
cmd.Cmd().ExecuteC()
145145
pm := genericclioptions.NewConfigFlags(true)
146146
if len(test.to) > 0 {
147-
pm.Timeout = &test.to
147+
pm.Timeout = &tests[i].to
148148
}
149149
failureDuration := 1 * time.Millisecond
150150
param := params.NewParamsForTest(kclientset, shpclientset, pm, metav1.NamespaceDefault, &failureDuration, &failureDuration)

pkg/shp/cmd/buildrun/list.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,5 @@ func (c *ListCommand) Run(params *params.Params, _ *genericclioptions.IOStreams)
9090
fmt.Fprintf(writer, columnTemplate, name, status, age)
9191
}
9292

93-
writer.Flush()
94-
95-
return nil
93+
return writer.Flush()
9694
}

pkg/shp/cmd/buildrun/logs_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func TestStreamBuildRunFollowLogs(t *testing.T) {
124124
},
125125
}
126126

127-
for _, test := range tests {
127+
for i, test := range tests {
128128
name := "testpod"
129129
containerName := "container"
130130
pod := &corev1.Pod{
@@ -178,7 +178,7 @@ func TestStreamBuildRunFollowLogs(t *testing.T) {
178178
cmd.Cmd().ExecuteC()
179179
pm := genericclioptions.NewConfigFlags(true)
180180
if len(test.to) > 0 {
181-
pm.Timeout = &test.to
181+
pm.Timeout = &tests[i].to
182182
}
183183
param := params.NewParamsForTest(kclientset, shpclientset, pm, metav1.NamespaceDefault, nil, nil)
184184

pkg/shp/cmd/follower/follow.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func (f *Follower) OnNoPodEventsYet(podList *corev1.PodList) {
220220
f.Log(fmt.Sprintf("BuildRun %q log following has not observed any pod events yet.\n", f.buildRun.Name))
221221
if podList != nil && len(podList.Items) > 0 {
222222
f.Log(fmt.Sprintf("BuildRun %q's Pod completed before the log following's watch was established.\n", f.buildRun.Name))
223-
f.OnEvent(&podList.Items[0])
223+
f.OnEvent(&podList.Items[0]) // #nosec G104 there is nothing we must handle here, the error is logged in the function already
224224
return
225225
}
226226
brClient := f.buildClientset.ShipwrightV1alpha1().BuildRuns(f.buildRun.Namespace)

pkg/shp/flags/flags.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const (
2929
// SourceContextDirFlag command-line flag.
3030
SourceContextDirFlag = "source-context-dir"
3131
// SourceCredentialsSecretFlag command-line flag.
32-
SourceCredentialsSecretFlag = "source-credentials-secret"
32+
SourceCredentialsSecretFlag = "source-credentials-secret" // #nosec G101
3333
// SourceBundleImageFlag command-line flag
3434
SourceBundleImageFlag = "source-bundle-image"
3535
// SourceBundlePruneFlag command-line flag
@@ -45,7 +45,7 @@ const (
4545
// OutputInsecure command-line flag.
4646
OutputInsecureFlag = "output-insecure"
4747
// OutputCredentialsSecretFlag command-line flag.
48-
OutputCredentialsSecretFlag = "output-credentials-secret"
48+
OutputCredentialsSecretFlag = "output-credentials-secret" // #nosec G101
4949
// ServiceAccountNameFlag command-line flag.
5050
ServiceAccountNameFlag = "sa-name"
5151
// ServiceAccountGenerateFlag command-line flag.

pkg/shp/params/params.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,12 +136,11 @@ func (p *Params) ShipwrightClientSet() (buildclientset.Interface, error) {
136136
return p.buildClientset, nil
137137
}
138138

139-
// Namespace returns kubernetes namespace with alle the overrides
139+
// Namespace returns kubernetes namespace with all the overrides
140140
// from command line and kubernetes config
141141
func (p *Params) Namespace() string {
142142
if len(p.namespace) == 0 {
143143
clientConfig := p.configFlags.ToRawKubeConfigLoader()
144-
clientConfig.ClientConfig()
145144
p.namespace, _, _ = clientConfig.Namespace()
146145

147146
}

pkg/shp/streamer/tar.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,17 @@ func (t *Tar) skipPath(fpath string, stat fs.FileInfo) bool {
3737
// Create the actual tar by inspecting all files in source path, skipping some.
3838
func (t *Tar) Create(w io.Writer) error {
3939
tw := tar.NewWriter(w)
40-
filepath.Walk(t.src, func(fpath string, stat fs.FileInfo, err error) error {
40+
if err := filepath.Walk(t.src, func(fpath string, stat fs.FileInfo, err error) error {
4141
if err != nil {
4242
return err
4343
}
4444
if t.skipPath(fpath, stat) {
4545
return nil
4646
}
4747
return writeFileToTar(tw, t.src, fpath, stat)
48-
})
48+
}); err != nil {
49+
return err
50+
}
4951
return tw.Close()
5052
}
5153

@@ -99,6 +101,6 @@ func (t *Tar) tarSize() error {
99101
return nil
100102
})
101103

102-
t.Size = size+size*1/100
104+
t.Size = size + size*1/100
103105
return err
104106
}

pkg/shp/streamer/util.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ func writeFileToTar(tw *tar.Writer, src, fpath string, stat fs.FileInfo) error {
2424
return err
2525
}
2626

27+
// #nosec G304 intentionally opening file from variable
2728
f, err := os.Open(fpath)
2829
if err != nil {
2930
return err

pkg/shp/tail/tail.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,17 @@ func (t *Tail) Start(ns, podName, container string) {
4848
fmt.Fprintln(t.stderr, err)
4949
return
5050
}
51-
defer stream.Close()
51+
defer func() {
52+
if err := stream.Close(); err != nil {
53+
fmt.Fprintf(t.stderr, "Failed to close stream: %v", err)
54+
}
55+
}()
5256

5357
go func() {
5458
<-t.stopCh
55-
stream.Close()
59+
if err := stream.Close(); err != nil {
60+
fmt.Fprintf(t.stderr, "Failed to close stream: %v", err)
61+
}
5662
}()
5763

5864
containerName := strings.TrimPrefix(container, "step-")

test/mock/fake_clientset.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package mock
33
import (
44
"bytes"
55
"io"
6+
"log"
67
"net/http"
78

89
corev1 "k8s.io/api/core/v1"
@@ -58,7 +59,9 @@ func (f *FakeClientset) roundTripperFn(req *http.Request) (*http.Response, error
5859
// bootstrap instantiate the basic elements of the clientset.
5960
func (f *FakeClientset) bootstrap() {
6061
f.scheme = runtime.NewScheme()
61-
f.scheme.AddIgnoredConversionType(&metav1.TypeMeta{}, &metav1.TypeMeta{})
62+
if err := f.scheme.AddIgnoredConversionType(&metav1.TypeMeta{}, &metav1.TypeMeta{}); err != nil {
63+
log.Fatal(err)
64+
}
6265
f.scheme.AddKnownTypes(corev1.SchemeGroupVersion, &corev1.Pod{}, &metav1.Status{})
6366

6467
f.codecs = serializer.NewCodecFactory(f.scheme)

test/stub/client.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package stub
22

33
import (
4+
"log"
5+
46
buildv1alpha1 "github.com/shipwright-io/build/pkg/apis/build/v1alpha1"
57

68
"k8s.io/apimachinery/pkg/runtime"
@@ -11,6 +13,8 @@ import (
1113
// NewFakeClient creates a fake client with Shipwright's Build scheme.
1214
func NewFakeClient() dynamic.Interface {
1315
scheme := runtime.NewScheme()
14-
buildv1alpha1.SchemeBuilder.AddToScheme(scheme)
16+
if err := buildv1alpha1.SchemeBuilder.AddToScheme(scheme); err != nil {
17+
log.Fatal(err)
18+
}
1519
return fake.NewSimpleDynamicClient(scheme)
1620
}

0 commit comments

Comments
 (0)