Skip to content

Commit f8a5c0d

Browse files
authored
Merge pull request openshift#21 from openshift-cherrypick-robot/cherry-pick-19-to-release-5.1
[release-5.1] LOG-1401: use safe object casting to avoid panic
2 parents 4b1babc + 895aea3 commit f8a5c0d

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

eventrouter.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,27 @@ func (er *EventRouter) Run(stopCh <-chan struct{}) {
131131

132132
// addEvent is called when an event is created, or during the initial list
133133
func (er *EventRouter) addEvent(obj interface{}) {
134-
e := obj.(*v1.Event)
134+
e, ok := obj.(*v1.Event)
135+
if !ok {
136+
glog.Error("Given object '%v' not v1.Event", obj)
137+
return
138+
}
135139
prometheusEvent(e)
136140
er.eSink.UpdateEvents(e, nil)
137141
}
138142

139143
// updateEvent is called any time there is an update to an existing event
140144
func (er *EventRouter) updateEvent(objOld interface{}, objNew interface{}) {
141-
eOld := objOld.(*v1.Event)
142-
eNew := objNew.(*v1.Event)
145+
eOld, ok := objOld.(*v1.Event)
146+
if !ok {
147+
glog.Error("Given object '%v' not v1.Event", objOld)
148+
return
149+
}
150+
eNew, ok := objNew.(*v1.Event)
151+
if !ok {
152+
glog.Error("Given object '%v' not v1.Event", objNew)
153+
return
154+
}
143155
prometheusEvent(eNew)
144156
er.eSink.UpdateEvents(eNew, eOld)
145157
}
@@ -194,7 +206,11 @@ func prometheusEvent(event *v1.Event) {
194206

195207
// deleteEvent should only occur when the system garbage collects events via TTL expiration
196208
func (er *EventRouter) deleteEvent(obj interface{}) {
197-
e := obj.(*v1.Event)
209+
e, ok := obj.(*v1.Event)
210+
if !ok {
211+
glog.Error("Given object '%v' not v1.Event", obj)
212+
return
213+
}
198214
// NOTE: This should *only* happen on TTL expiration there
199215
// is no reason to push this to a sink
200216
glog.V(5).Infof("Event Deleted from the system:\n%v", e)

0 commit comments

Comments
 (0)