Skip to content

Commit c232606

Browse files
committed
events: fix for G104 (CWE-703)
Reported by gosec. G104 (CWE-703): Errors unhandled. (Confidence: HIGH, Severity: LOW) This commit handles the previously ignored errors.
1 parent eeb6694 commit c232606

File tree

3 files changed

+41
-28
lines changed

3 files changed

+41
-28
lines changed

cmd/event-logger/app/options.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,10 @@ func (o *Options) Run(stopCh <-chan struct{}) error {
182182
return err
183183
}
184184

185-
eventLogger := config.New()
185+
eventLogger, err := config.New()
186+
if err != nil {
187+
return err
188+
}
186189

187190
eventLogger.Run(stopCh)
188191

pkg/events/events_logger.go

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
)
1818

1919
// NewEventInformerFuncForNamespace returns function which creates new event informer for a given namespace.
20-
func NewEventInformerFuncForNamespace(origin, namespace string) kubeinformersinterfaces.NewInformerFunc {
20+
func NewEventInformerFuncForNamespace(namespace string) kubeinformersinterfaces.NewInformerFunc {
2121
return func(clientset kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
2222
watchlist := cache.NewListWatchFromClient(
2323
clientset.CoreV1().RESTClient(),
@@ -31,24 +31,30 @@ func NewEventInformerFuncForNamespace(origin, namespace string) kubeinformersint
3131
resyncPeriod,
3232
cache.Indexers{},
3333
)
34-
informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
35-
AddFunc: func(obj interface{}) {
36-
if isV1Event(obj) {
37-
v1Event := obj.(*v1.Event)
38-
printV1Event(v1Event, origin)
39-
}
40-
},
41-
UpdateFunc: func(_ interface{}, newObject interface{}) {
42-
if isV1Event(newObject) {
43-
v1Event := newObject.(*v1.Event)
44-
printV1Event(v1Event, origin)
45-
}
46-
},
47-
})
34+
4835
return informer
4936
}
5037
}
5138

39+
func addEventHandler(informer cache.SharedIndexInformer, origin string) error {
40+
_, err := informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
41+
AddFunc: func(obj interface{}) {
42+
if isV1Event(obj) {
43+
v1Event := obj.(*v1.Event)
44+
printV1Event(v1Event, origin)
45+
}
46+
},
47+
UpdateFunc: func(_ interface{}, newObject interface{}) {
48+
if isV1Event(newObject) {
49+
v1Event := newObject.(*v1.Event)
50+
printV1Event(v1Event, origin)
51+
}
52+
},
53+
})
54+
55+
return err
56+
}
57+
5258
func isV1Event(obj interface{}) bool {
5359
_, ok := obj.(*v1.Event)
5460
return ok

pkg/events/gardener_event_watcher.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,31 +30,35 @@ type GardenerEventWatcher struct {
3030
}
3131

3232
// New returns new GardenerEventWatcherConfig
33-
func (e *GardenerEventWatcherConfig) New() *GardenerEventWatcher {
33+
func (e *GardenerEventWatcherConfig) New() (*GardenerEventWatcher, error) {
3434
for indx, namespace := range e.SeedEventWatcherConfig.Namespaces {
35-
_ = e.SeedKubeInformerFactories[indx].InformerFor(&v1.Event{},
36-
NewEventInformerFuncForNamespace(
37-
"seed",
38-
namespace,
39-
),
35+
informer := e.SeedKubeInformerFactories[indx].InformerFor(
36+
&v1.Event{},
37+
NewEventInformerFuncForNamespace(namespace),
4038
)
39+
if err := addEventHandler(informer, "seed"); err != nil {
40+
return nil, err
41+
}
4142
}
4243

4344
if e.ShootEventWatcherConfig.Kubeconfig != "" {
4445
for indx, namespace := range e.ShootEventWatcherConfig.Namespaces {
45-
_ = e.ShootKubeInformerFactories[indx].InformerFor(&v1.Event{},
46-
NewEventInformerFuncForNamespace(
47-
"shoot",
48-
namespace,
49-
),
46+
informer := e.ShootKubeInformerFactories[indx].InformerFor(
47+
&v1.Event{},
48+
NewEventInformerFuncForNamespace(namespace),
5049
)
50+
if err := addEventHandler(informer, "shoot"); err != nil {
51+
return nil, err
52+
}
5153
}
5254
}
5355

54-
return &GardenerEventWatcher{
56+
watcher := &GardenerEventWatcher{
5557
SeedKubeInformerFactories: e.SeedKubeInformerFactories,
5658
ShootKubeInformerFactories: e.ShootKubeInformerFactories,
5759
}
60+
61+
return watcher, nil
5862
}
5963

6064
// Run start the GardenerEventWatcher lifecycle

0 commit comments

Comments
 (0)